Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Коннекты висят неделями  [new]
Шыфл
Member

Откуда: Прага
Сообщений: 776
Добрый день, коллеги.

Спрашивает коллега из Словакии, транслирую сюда ибо это очень странно, может кто-нибудь сталкивался?

Если коротко - после ночного обновления повисают коннекты к источнику и висят в открытом состоянии неделями (!!!) . Т.к. у источника на нас стоит лимит 10 коннектов, то через 10 дней конструкция падает, помогает только рестарт серевера. Жуть плотоядная, чесслово.

В коде много процедур, которые обращаются к источнику ODBC, который, к стати говоря, выглядит тоже весьма не ортодоксально, но работал в таком положении годами.
  	set @linkedServer = [dbo].[fce_GetValueFromVARCFG] ('linkedServer');
  	set @qadDomDomain = [dbo].[fce_GetValueFromVARCFG] ('qadDomDomain');
  	set @qadUser = [dbo].[fce_GetValueFromVARCFG] ('qadUser');
  	set @qadPass = [dbo].[fce_GetValueFromVARCFG] ('qadPass');
  	set @qadModel = [dbo].[fce_GetValueFromVARCFG] ('qadModel');
  	set @t4FINAL_M0 = [dbo].[fce_GetValueFromVARCFG] ('t4FINAL-M0');

        			set @q = 'select gltr_acc, gltr_ctr, gltr_project, gltr_correction, gltr_amt
  						from '+@t4FINAL_M0+'
  					   where gltr_tr_type<>''''YR'''' and
							 year(gltr_eff_dt)='+@Year+' and month(gltr_eff_dt)=12 and
							 left(gltr_acc,1) in (''''5'''',''''6'''') and
							 gltr_domain='''''+@qadDomDomain+'''''';
			--print @q;
			exec('
              insert into [#tmp_cFINAL12] ([ACC_ID], [CENTRE_ID], [PROJ_ID], [nCorrection], [iAMT])
              SELECT gltr_acc, gltr_ctr, gltr_project, gltr_correction, sum([gltr_amt]) as [gltr_amt]

			  from openrowset(''MSDASQL''
		,'''+@qadModel+''';'''+@qadUser+''';'''+@qadPass+'''
		,'''+@q+''')

		group by [gltr_acc], [gltr_ctr], [gltr_project], [gltr_correction];');


К сообщению приложен файл. Размер - 63Kb
27 апр 17, 13:29    [20439864]     Ответить | Цитировать Сообщить модератору
 Re: Коннекты висят неделями  [new]
aleks2
Guest
1. А нафига openrowset?
2. Linked Server создайте и коннекшн будет один.
3. А висят оне из-за connection pooling.
https://msdn.microsoft.com/en-us/library/ms254502(v=vs.110).aspx
4. О вас же заботются...
27 апр 17, 14:29    [20440263]     Ответить | Цитировать Сообщить модератору
 Re: Коннекты висят неделями  [new]
Шыфл
Member

Откуда: Прага
Сообщений: 776
aleks2
1. А нафига openrowset?
2. Linked Server создайте и коннекшн будет один.
3. А висят оне из-за connection pooling.
https://msdn.microsoft.com/en-us/library/ms254502(v=vs.110).aspx
4. О вас же заботются...


1. Так исторически сложилось в другую геологическую эпоху
2. Придётся переписать >50 процедур, я, конечно, поднаторел в самомодифицируемом коде, но как-то не хочется пока
3. Точна? В настройках ODBC стоит пулинг 60 секунд, чего ж они висят неделями? Причём openrowset'ов тьма, и в рамках одной актуализации возникает ровно 1 коннект, который потом не закрывается и висит. При следующей актуализации (через сутки) тот коннект продолжает висеть, но возникает новый. Так повторяется ровно 10 раз, а потом выкидывает ошибку подклюления, которую лечит рестарт сервера. Началось всё 2 месяца назад, никто так и не понял почему, потому что заметили только через 10 дней... С тех пор работает как часы - 3 рестарта в месяц... Хоть ты в шедулер пиши :/
4. Это не фича, это баг
27 апр 17, 15:21    [20440595]     Ответить | Цитировать Сообщить модератору
 Re: Коннекты висят неделями  [new]
invm
Member

Откуда: Москва
Сообщений: 9349
Шыфл,

Пулинг сутками не висит.

Драйвер свежее для этого OpenEdge есть?
У MSDASQL какие настройки?
27 апр 17, 15:53    [20440808]     Ответить | Цитировать Сообщить модератору
 Re: Коннекты висят неделями  [new]
aleks2
Guest
invm
Шыфл,

Пулинг сутками не висит.

Драйвер свежее для этого OpenEdge есть?
У MSDASQL какие настройки?


Если дохтур сказал "в морг" - значит в морг.

Для не верящих в малышеву:
1. 60 сек - таймаут НЕиспользуемого соединения.
2. Отключить pooling не дозволяют религиозные убеждения?
3. А там еще и трассировка ё.
27 апр 17, 18:02    [20441323]     Ответить | Цитировать Сообщить модератору
 Re: Коннекты висят неделями  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7762
Сама техника импорта данных не слишком современна. Используйте SSIS.
27 апр 17, 18:04    [20441340]     Ответить | Цитировать Сообщить модератору
 Re: Коннекты висят неделями  [new]
aleks2
Guest
Владислав Колосов
Сама техника импорта данных не слишком современна. Используйте SSIS.


Стисняюсь спросить... а энтот SSIS - он данные воздушно-капельным путем переносит или ментальным усилием?
27 апр 17, 18:13    [20441372]     Ответить | Цитировать Сообщить модератору
 Re: Коннекты висят неделями  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7762
aleks2,

если драйвер держит пул коннектов, то там ничего не спасёт, конечно, кроме настроек драйвера или его замены.
27 апр 17, 18:48    [20441459]     Ответить | Цитировать Сообщить модератору
 Re: Коннекты висят неделями  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
Хотя немного оффтоп, но все же....
У нас часть юзеров была в лок. сети, а часть - через ВПН.
ВПН иногда пропадал и коннекты этих юзеров нормально сбрасывались.
В какой-то момент что-то произошло и коннекты перестали сбрасываться. Приходилось их грохать руками.
После замены гейта проблема ушла.
Вот и поди разбери, почему так... :)
28 апр 17, 09:59    [20442531]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить