Наш администратор Oracle (9i) позвонил мне, чтобы сообщить, что мой веб-сервер IIS (v6) исчерпал доступные соединения.
Я создал тестовую страницу (классический ASP), которая в основном создает объекты ADODB.Connection и ADODB.Recordset, подключается к базе данных, открывает базовый набор записей, проходит по ней циклически, закрывает набор записей и соединение и устанавливает объекты в ничто. Это то, что делает большинство приложений на веб-сервере.
Во время разговора с администратором баз данных я открыл тестовую веб-страницу. Администратор БД смог увидеть, что я подключился и заметил ID (я предполагаю, что ID помогает ему отслеживать соединение). Страница закончила загрузку, поэтому метод Close для обоих объектов имел .
Администратор БД сказал, что соединение все еще отображается, даже после того, как я закрыл браузер.
В конце концов соединение разорвалось, я полагаю, потому что пул приложений перезапущен.
Итак, мой вопрос: это нормально? Должно ли соединение не разорваться после вызова метода Close или, по крайней мере, сеанс закрыт?
Я не уверен, полезно ли это или даже связано, но мы периодически видели эти ошибки в средстве просмотра событий на наших веб-серверах:
Event Type: Information
Event Source: Application Error
Event Category: (100)
Event ID: 1004
Date: 7/21/2010
Time: 7:34:20 AM
User: N/A
Computer: VMADE02
Description:
Reporting queued error: faulting application w3wp.exe, version 6.0.3790.3959, faulting module orantcp9.dll, version 9.2.0.6, fault address 0x00005741.