Наш администратор базы данных 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.