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

Откуда: Berlin
Сообщений: 185
создает ли SQL Server Agent каждый раз новое соединение?

Microsoft SQL Server 2005 - 9.00.4035.00 (X64) Nov 24 2008 16:17:31 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)
10 апр 13, 14:31    [14162046]     Ответить | Цитировать Сообщить модератору
 Re: создает ли SQL Server Agent каждый раз новое соединение?  [new]
Glory
Member

Откуда:
Сообщений: 104751
edyaN
создает ли SQL Server Agent каждый раз новое соединение?

Каждый раз когда ?
10 апр 13, 14:31    [14162052]     Ответить | Цитировать Сообщить модератору
 Re: создает ли SQL Server Agent каждый раз новое соединение?  [new]
edyaN
Member

Откуда: Berlin
Сообщений: 185
Glory,

извините, что не сформулировал мысль до конца,

если есть несколько агентов, то будет ли SQL Server Agent для каждого агента создавать новое соединение, или же у него есть пул соединений и соединение с сервером берется из пула?
10 апр 13, 14:41    [14162123]     Ответить | Цитировать Сообщить модератору
 Re: создает ли SQL Server Agent каждый раз новое соединение?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
edyaN
если есть несколько агентов


Несколько агентов?
10 апр 13, 14:42    [14162128]     Ответить | Цитировать Сообщить модератору
 Re: создает ли SQL Server Agent каждый раз новое соединение?  [new]
Glory
Member

Откуда:
Сообщений: 104751
edyaN
если есть несколько агентов,

Agent у каждого сервера всегда один
10 апр 13, 14:42    [14162129]     Ответить | Цитировать Сообщить модератору
 Re: создает ли SQL Server Agent каждый раз новое соединение?  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8880
Не проверял, но думаю что для каждого джоба (которое выполняется) будет свой коннект.
10 апр 13, 14:44    [14162146]     Ответить | Цитировать Сообщить модератору
 Re: создает ли SQL Server Agent каждый раз новое соединение?  [new]
edyaN
Member

Откуда: Berlin
Сообщений: 185
агент = задание или JOB (в моей редакции sql server это называется Auftrag)
10 апр 13, 14:45    [14162148]     Ответить | Цитировать Сообщить модератору
 Re: создает ли SQL Server Agent каждый раз новое соединение?  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8880
edyaN
агент = задание или JOB (в моей редакции sql server это называется Auftrag)

SQL Server Agent совсем-совсем не э квивалентен Job
10 апр 13, 14:46    [14162162]     Ответить | Цитировать Сообщить модератору
 Re: создает ли SQL Server Agent каждый раз новое соединение?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
edyaN,

Пул коннектов есть ни у агента, а у клиентского механизма доступа к данным. При выполнении задания, агентом будет создано новое подключение к SQL Server. Будет взято оно из пула или нет, и Агенту и Серверу всё равно. С чем связан Ваш вопрос?

Сообщение было отредактировано: 10 апр 13, 15:21
10 апр 13, 15:21    [14162411]     Ответить | Цитировать Сообщить модератору
 Re: создает ли SQL Server Agent каждый раз новое соединение?  [new]
edyaN
Member

Откуда: Berlin
Сообщений: 185
pkarklin,

вопрос связан с тем, что при выполнении одного из джобов произошла ошибка 3930:
Für die aktuelle Transaktion kann kein Commit ausgeführt werden. Sie unterstützt außerdem keine Vorgänge, die in die Protokolldatei schreiben. Führen Sie ein Rollback für die Transaktion aus. [SQLSTATE 42000] (Fehler 3930).

Я предполагаю, что это может возникнуть при установке XACT_ABORT в ON, но именно в этом агенте это не так. В нем выполняется только одна процедура (которая вызывает много других), которая не меняет эту установку для соединения, вызываемые процедуры тоже не меняют XACT_ABORT. В данной ситуации ожидался deadlock.
Но есть другие джобы которые устанавливают XACT_ABORT в ON. В связи с этим я и предположил, что Agent использовал для разных джобов одно и тоже соединение.
10 апр 13, 16:17    [14162878]     Ответить | Цитировать Сообщить модератору
 Re: создает ли SQL Server Agent каждый раз новое соединение?  [new]
Glory
Member

Откуда:
Сообщений: 104751
edyaN
В связи с этим я и предположил, что Agent использовал для разных джобов одно и тоже соединение.

Даже если Агент и использует пул соединений, то как это влияет на явные команды, которые будут выполняться в соединении ?
10 апр 13, 16:21    [14162900]     Ответить | Цитировать Сообщить модератору
 Re: создает ли SQL Server Agent каждый раз новое соединение?  [new]
edyaN
Member

Откуда: Berlin
Сообщений: 185
Glory,

если я правильно вас понял, то возможна следующая ситуация:
первый джоб меняет XACT_ABORT в ON, отрабатывает и возвращает соединение в пул, откуда его получает второй джоб с установленным XACT_ABORT. Во втором джобе есть блок try-catch, но в catch нет rollback.
10 апр 13, 16:36    [14163026]     Ответить | Цитировать Сообщить модератору
 Re: создает ли SQL Server Agent каждый раз новое соединение?  [new]
Glory
Member

Откуда:
Сообщений: 104751
edyaN
если я правильно вас понял, то возможна следующая ситуация:
первый джоб меняет XACT_ABORT в ON, отрабатывает и возвращает соединение в пул, откуда его получает второй джоб с установленным XACT_ABORT

Как раз наоборот
С чего вы решили, что повторное использование коннекта сохраняет его настройки ?

Кроме того, почему вы решили, что ошибка 3930 связана с XACT_ABORT ?
"The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction."
Какой commit при XACT_ABORT ?
10 апр 13, 16:41    [14163074]     Ответить | Цитировать Сообщить модератору
 Re: создает ли SQL Server Agent каждый раз новое соединение?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
edyaN
Für die aktuelle Transaktion kann kein Commit ausgeführt werden. Sie unterstützt außerdem keine Vorgänge, die in die Protokolldatei schreiben. Führen Sie ein Rollback für die Transaktion aus. [SQLSTATE 42000] (Fehler 3930).


У Вас ошибка в прикладной логике, например, попытка выполнить COMMIT безе анализа XACT_STATE() или модифицирующий код после того, как обработка перешла в блок CATCH и XACT_STATE() возвращает -1.

Оставьте агента в покое.
10 апр 13, 16:49    [14163158]     Ответить | Цитировать Сообщить модератору
 Re: создает ли SQL Server Agent каждый раз новое соединение?  [new]
edyaN
Member

Откуда: Berlin
Сообщений: 185
Glory
Как раз наоборот
С чего вы решили, что повторное использование коннекта сохраняет его настройки ?

Кроме того, почему вы решили, что ошибка 3930 связана с XACT_ABORT ?
"The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction."
Какой commit при XACT_ABORT ?


вы правы как всегда:
msdn
Если инструкция SET запускается в хранимой процедуре или триггере, значение параметра инструкции SET восстанавливается после того, как управление вернется из хранимой процедуры или триггера.


спасибо!
10 апр 13, 16:56    [14163205]     Ответить | Цитировать Сообщить модератору
 Re: создает ли SQL Server Agent каждый раз новое соединение?  [new]
edyaN
Member

Откуда: Berlin
Сообщений: 185
pkarklin
У Вас ошибка в прикладной логике, например, попытка выполнить COMMIT безе анализа XACT_STATE() или модифицирующий код после того, как обработка перешла в блок CATCH и XACT_STATE() возвращает -1.

Оставьте агента в покое.


именно это я и собираюсь делать.
спасибо!
10 апр 13, 16:57    [14163212]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить