Различное поведение SSIS в MSSQL 2012 и 2014

Alex Molskiy
Дата: 17.04.2015 00:50:47
Для загрузки данных c sybase ASE 15.7 в MS SQL используем SSIS.

Изначально пакет был создан в VS 2010 и успешно работал на MS SQL 2012, после этого был развернут новый MS SQL 2014 и VS2013, пакет бы перенесен на новый сервер и тут была замечена одна неприятная особенность.

Пакет содержит 26 параллельных DataFlow блоков, которые используют один объект Connection Manager, который в свою очередь использует Sybase ASE ODBC драйвер.

Если запускать пакет из VS2010 и MSSQL 2012, то каждый DataFlow при работе создает одно подключение к базе Sybase и после завершения закрывает соединение, таким образом изначально создается 26 соединений, которые в процессе работы уменьшаются до 0. По мониторингу процессов видно, что все соединения создаются от процесса Devenv.exe

Если запускать этот же пакет из VS2013 и MSSQL 2014, то сразу при открытии пакета в студии, он создает 26 соединений от devenv.exe, при запуске пакета сразу создается еще 26 соединений, но уже от процесса DtsDebugHost.exe, в процессе работы от этого же процесса создается дополнительное кол-во соединений, при этом каждый раз разное, при этом 80% всех соединений находится в статусе sleep.

Вроде бы не ошибка, но проблема в том, что кол-во соединений с Sybase ограничено лицензией и выполнение пакета создает большее кол-во соединений, чем разрешено лицензией и выполнение пакета прекращается с ошибкой.

Дополнительно отмечу, что RetainSameConnection установлен в false и не играет роли в данной ситуации.

Окружение серверов полностью идентичное.

С чем связано такое поведение SSIS на 2014 сервере и можно ли как-то его заставить вести себя как в MSSQL 2012?
Критик
Дата: 17.04.2015 07:37:17
тут что у вашего Sybase ASE ODBC?
Alex Molskiy
Дата: 17.04.2015 10:15:04
Критик
тут что у вашего Sybase ASE ODBC?


Как у вас на скриншоте. Проверил, изменение параметров на поведение не влияет.

Сначала установил время = 1 сек, потом полностью отключил. Как создавались соединения в статусе sleep так и остались.
komrad
Дата: 17.04.2015 10:40:25
Alex Molskiy
Вроде бы не ошибка, но проблема в том, что кол-во соединений с Sybase ограничено лицензией и выполнение пакета создает большее кол-во соединений, чем разрешено лицензией и выполнение пакета прекращается с ошибкой.


приведите редакцию Sybase
кол-во соединений (number of user connections) регулируется в настройках сервера и требует только наличия свободной памяти, выделенной Sybase
Alex Molskiy
Дата: 17.04.2015 15:45:13
komrad
Alex Molskiy
Вроде бы не ошибка, но проблема в том, что кол-во соединений с Sybase ограничено лицензией и выполнение пакета создает большее кол-во соединений, чем разрешено лицензией и выполнение пакета прекращается с ошибкой.


приведите редакцию Sybase
кол-во соединений (number of user connections) регулируется в настройках сервера и требует только наличия свободной памяти, выделенной Sybase


Sybase ASE 15.7 Small Business Edition
Владислав Колосов
Дата: 17.04.2015 15:50:26
Сиквел на виртуалке или Sybase? Ситуация похожа на то, что коннекты рвутся. Проблема уровня транспорта, а не пакетов или серверов.
SQL2008
Дата: 17.04.2015 16:40:07
Alex Molskiy
... создается еще 26 соединений, но уже от процесса DtsDebugHost.exe, в процессе работы от этого же процесса создается дополнительное кол-во соединений, ...

Может включен какой-нибудь режим отладки?
komrad
Дата: 17.04.2015 17:13:02
Alex Molskiy
komrad
пропущено...


приведите редакцию Sybase
кол-во соединений (number of user connections) регулируется в настройках сервера и требует только наличия свободной памяти, выделенной Sybase


Sybase ASE 15.7 Small Business Edition


Max. number of concurrent connections - 256

настройте параметр на Sybase сервере и всё будет ок