Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / TimeOut выполнения ХП из WebService / 7 сообщений из 7, страница 1 из 1
31.07.2006, 15:11
    #33889396
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TimeOut выполнения ХП из WebService
Всем привет.
Есть ХП, которая выполняется примерно 30 минут. Из кода .NET надо к ней обратиться. Раньше для общения с БД использовал Microsoft`овский провайдер доступа. Эта процедура обрывала свое выполнение. Вроде объяснимо, Microsoft Provider не поддерживает TimeOut и т.д... Но сейчас для этой ХП решил использовать ODP.NET, т.к. в нем можно указать TimeOut выполнения комманды. Более того, по умолчанию он там бесконечен. Но ситуация повторяется. Процедура втихомолку прекращает свое выпонение "на полуслове", никаких exception... Сессия тупо вырубается без ошибок. Естественно, ошибок в ХП нет. Запускаю из навигатора, все отрабатывает на ура. Как обойти данную проблему?
База — Oracle 10.2
ODP.NET — тоже
ХП вызывается из веб-сервиса. Собственно, на него я и грешу, т.к. та же процедура нормально отрабатывает из консольного приложения.
Буду благодарен на любые ссылки по данной тематике.
...
Рейтинг: 0 / 0
31.07.2006, 15:30
    #33889463
Dkm_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TimeOut выполнения ХП из WebService
У веб-сервиса, вроде бы, тоже TimeOut есть. Минут 5 по умолчанию.--
Абыpвалг! - сказал Linux после pyсификации
...
Рейтинг: 0 / 0
31.07.2006, 15:40
    #33889499
Max Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TimeOut выполнения ХП из WebService
Всем привет.
Есть ХП, которая выполняется примерно 30 минут. Из кода .NET надо к ней обратиться. Раньше для общения с БД использовал Microsoft`овский провайдер доступа. Эта процедура обрывала свое выполнение. Вроде объяснимо, Microsoft Provider не поддерживает TimeOut и т.д... Но сейчас для этой ХП решил использовать ODP.NET, т.к. в нем можно указать TimeOut выполнения комманды. Более того, по умолчанию он там бесконечен. Но ситуация повторяется. Процедура втихомолку прекращает свое выпонение "на полуслове", никаких exception... Сессия тупо вырубается без ошибок. Естественно, ошибок в ХП нет. Запускаю из навигатора, все отрабатывает на ура. Как обойти данную проблему?
База — Oracle 10.2
ODP.NET — тоже
ХП вызывается из веб-сервиса. Собственно, на него я и грешу, т.к. та же процедура нормально отрабатывает из консольного приложения.
Буду благодарен на любые ссылки по данной тематике.
Таймаут бывает не только у команды, но и у соединения. Установи и то и другое в 45 минут.
oConnection.ConnectionTimeOut=45*60
oCommand.CommandTimeOut=45*60
Ну и время сессии установи 60 минут
timeout="60" - это в вэбконфиге.
Есть многое на свете, друг Гораций, что непонятно нашим мудрецам.
...
Рейтинг: 0 / 0
31.07.2006, 15:42
    #33889509
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TimeOut выполнения ХП из WebService
Здравствуйте, Dkm_S, Вы писали:

D_S>У веб-сервиса, вроде бы, тоже TimeOut есть. Минут 5 по умолчанию.

D_S>
данное сообщение получено с www.gotdotnet.ru
D_S>ссылка на оригинальное сообщение


Я делаю:
myService.Timeout = System.Threading.Timeout.Infinite;
...
Рейтинг: 0 / 0
31.07.2006, 16:11
    #33889622
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TimeOut выполнения ХП из WebService
Здравствуйте, Max Pro, Вы писали:

MP>Всем привет.
MP>Есть ХП, которая выполняется примерно 30 минут. Из кода .NET надо к ней обратиться. Раньше для общения с БД использовал Microsoft`овский провайдер доступа. Эта процедура обрывала свое выполнение. Вроде объяснимо, Microsoft Provider не поддерживает TimeOut и т.д... Но сейчас для этой ХП решил использовать ODP.NET, т.к. в нем можно указать TimeOut выполнения комманды. Более того, по умолчанию он там бесконечен. Но ситуация повторяется. Процедура втихомолку прекращает свое выпонение "на полуслове", никаких exception... Сессия тупо вырубается без ошибок. Естественно, ошибок в ХП нет. Запускаю из навигатора, все отрабатывает на ура. Как обойти данную проблему?
MP>База — Oracle 10.2
MP>ODP.NET — тоже
MP>ХП вызывается из веб-сервиса. Собственно, на него я и грешу, т.к. та же процедура нормально отрабатывает из консольного приложения.
MP>Буду благодарен на любые ссылки по данной тематике.
MP>Таймаут бывает не только у команды, но и у соединения. Установи и то и другое в 45 минут.
MP>oConnection.ConnectionTimeOut=45*60
MP>oCommand.CommandTimeOut=45*60
MP>Ну и время сессии установи 60 минут
MP>timeout="60" — это в вэбконфиге.

Спасибо за совет. К сожалению на данный момент не имею возможности проверить. Меня смущает таймаут соединения. Вот что пишет Oracle в документации по ODP.NET:

Maximum time (in seconds) to wait for a free connection from the pool.
This attribute specifies the maximum amount of time (in seconds) that the Open() method can take to obtain a pooled connection before it terminates the request. This value comes into effect only if no free connection is available from the connection pool and the Max Pool Size is reached. If a free connection is not available within the specified time, an exception is thrown. Connection Timeout does not limit the time required to open new connections.

This attribute value takes effect for pooled connection requests and not for new connection requests.

Т.е., как я понимаю, в этой переменной указывается время, которое код .NET будет терпеливо ждать, пока пул не выдаст ему свободное соединение, но не время, на которое это самое соединение можно занять. Таким образом, если я уж получил соединение и начал выполнять ХП, то прервать меня не имеют права. К тому же значение по умолчания для этой переменной — 15 секунд. А у меня ХП успевает проработать примерно 20 минут. Нестыковка. А вот это:

MP>Ну и время сессии установи 60 минут
MP>timeout="60" — это в вэбконфиге.

очень интересно. Разве это должно повлиять? Мы ведь все время (не бейте за грубое сравнение) "сидим в коде сессии".
...
Рейтинг: 0 / 0
31.07.2006, 18:21
    #33890110
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TimeOut выполнения ХП из WebService
Ничего не понимаю... :crash:

Спасибо товарищу за совет:

MP>Ну и время сессии установи 60 минут
MP>timeout="60" — это в вэбконфиге.

Действительно, вроде это правильное направление. После длительных оптимизаций процедура теперь успевает выполниться за срок меньший 20 минут. Т.е., я не смог наблюдать описываемое мною поведение. Для проверки сделал длительность сессии 3 минуты. Тогда процедура как и раньше не успела выпониться. Только, "старалась выполниться" примерно минут 15, а не 3, к сожалению...
Теперь делаю так. Вызываю эту длительную процедуру в отдельном потоке. Т.е. запустился WebMethod сервиса, затем он тупо создает новый поток, в котором уже происходят длительные действия. И все равно не выходит!!!

Кто-нибудь что-то объяснить может в данной ситуации?
...
Рейтинг: 0 / 0
31.07.2006, 19:34
    #33890268
Max Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TimeOut выполнения ХП из WebService
Ну, Аноним, ты даёшь! Всё тебе на блюдечке выдал, а ты теперь потоки какие-то там придумал. Потоки в основном важны под вин, а не под вэб. В данном случае, на сколько я могу удалённо тебя понять, они (потоки) вообще тебе не нужны.
Есть многое на свете, друг Гораций, что непонятно нашим мудрецам.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / TimeOut выполнения ХП из WebService / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]