Как я могу установить MARS в “True” в менеджере соединений, если он сразу же снова переключается на “False” после закрытия свойств? Или почему это происходит?

Вопрос или проблема

Менеджер подключения записывает в таблицу. Возможно, раз в неделю возникает следующая ошибка:

Подключение занято результатами для другой команды

SSIS развернут на Microsoft SQL Server 2016 (SP3-CU1-GDR) (KB5040944) – 13.0.7037.1 (X64).

Я знаю из MARS (Несколько активных наборов результатов) – Microsoft Learn, что отсутствующий “MARS = True” приводит к ошибке. Но если я меняю “MARS” на “True” в свойствах менеджера подключения, настройка “MARS” снова меняется на “False”, как только я нажимаю “OK”, так что жирное “True” снова становится тонким “False”, когда я открываю свойства позже:

введите описание изображения здесь

Я также проверял, вызывает ли просто открытие свойств менеджера подключения установку “False”: я сохранил изменение, не открывая свойства, а затем проверил журнал Git, который показал, что изменение настройки MARS на “True” исчезает сразу после нажатия “OK”. То, что было сохранено, – это настройки по умолчанию для повторных попыток (ConnectRetryCount = 1), и мне интересно, поможет ли увеличение числа повторных попыток здесь тоже. Однако я не пробовал этого.

Мне также интересно, поможет ли принудительная установка настроек путем изменения кода xml вместо Visual Studio, но я боюсь, что это может привести к худшим последствиям, чем пакет, который мне нужно запускать вручную время от времени. Хотя это стоит попробовать, но я бы предпочел получить некоторые соображения от других, прежде чем проверять странные вещи.

Почему настройка “MARS” = “True” сразу же возвращается к “False”? Как я могу изменить ее на “True”? Должен ли я это делать, если происходит что-то подобное?

Вся строка подключения создается с помощью параметра проекта. Вот почему любое изменение в меню возвращается к настройкам этого параметра.

Вам нужно изменить этот параметр, установив MARS Connection в True, например:

Data Source=my_server;Initial Catalog=my_catalog;Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;MARS Connection=True;

Ответ или решение

Когда вы сталкиваетесь с проблемой установки переменной MARS (Multiple Active Result Sets) в подключении SSIS, которая переключается обратно на "False" после нажатия "OK", это может вызывать много вопросов и недоумений. Давайте подробно разберем вашу ситуацию и объясним, почему это происходит, а также как вы можете устранить проблему.

Причины переключения MARS на "False"

Из вашего описания видно, что настройка MARS определяется параметром проекта. Это означает, что при внесении изменений в свойства менеджера подключений ще вы возвращаетесь к исходным значениям параметра проекта при его сохранении. Если параметр проекта настроен на MARS = "False", то даже если вы попробуете изменить значение на "True" через свойства подключения, оно вернется к значению "False" из-за переопределения параметрами проекта.

Как установить MARS на "True"

Для решения этой проблемы вам необходимо внести изменения непосредственно в параметр проекта SQL. Вам нужно будет изменить строку подключения проекта, добавив к ней параметр MARS Connection, чтобы он выглядел примерно так:

Data Source=my_server;Initial Catalog=my_catalog;Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;MARS Connection=True;

Таким образом, вы устанавливаете значение MARS = "True" на уровне проекта. Это изменение должно устранить вашу проблему и предотвратить возникновение ошибки "Connection is busy with results for another command", возникающей, когда MARS отключен.

Дополнительные рекомендации

  1. Проверка параметров: Убедитесь, что в строке подключения больше нет конфликтующих параметров, которые могут отменять ваше обновление.
  2. Увеличение количества попыток соединения: Параметр ConnectRetryCount также может оказать влияние на успешность получения результата. Увеличение этого значения может помочь в случае нестабильных соединений.
  3. Редактирование XML-файла: Вы правы в своих опасениях об изменении массива пакетов (.dtsx) напрямую в XML-коде. Всегда лучше вносить изменения через интерфейс, если это возможно, чтобы избежать возможных ошибок. Если вы все же решите изменить XML напрямую, создайте резервную копию пакета перед внесением изменений.

Заключение

Проблема переключения MARS на "False" решается путем корректировки параметров проекта, определяющих строку подключения. Изменение параметров напрямую обеспечит сохранение вашего выбора. Убедитесь также, что вы тестируете изменения на тестовом окружении перед разворачиванием на продуктиве, чтобы избежать неожиданных проблем.

Если у вас возникнут дальнейшие вопросы или потребуется дополнительная поддержка, не стесняйтесь обращаться за помощью.

Оцените материал
Добавить комментарий

Капча загружается...