Как закрыть соединение Oracle с PHP на сервере Apache? Я имею в виду близко мгновенно - PullRequest
2 голосов
/ 14 апреля 2010

Обычно закрытие соединения просто выполняется с помощью oci_close($connection); или в худшем случае, когда скрипт php завершает соединение.

В моем случае, однако, я сталкиваюсь с другим поведением.

Если я получаю доступ к своему приложению, которое использует PHP 5.2.8, Apache 2.2.11 и oci8 1.2.5, , соединение сохраняется в течение нескольких минут.

На самом деле кажется, что: если я запускаю netstat -b, я вижу, что процесс httpd.exe остается со статусом ESTABLISHED в URL базы данных в течение некоторого времени (несколько минут).

Может ли кто-нибудь просветить меня об этом поведении?

P.S. Я не использую постоянные соединения.

P.P.S. Здесь задается код, используемый для подключения и закрытия (это устаревшее приложение):

соединение: вызывается функция, код которой связан с $connection = @ocilogon ( "$username", "$password", "$database" );

закрытие: ответственность за каждую разрабатываемую нами страницу, но обычно это будет oci_close($connection)

1 Ответ

0 голосов
/ 14 апреля 2010

Из документов на oci_connect() здесь (ocilogon() вызывает ту же функцию):

http://www.php.net/manual/en/oci8.connection.php

Это означает, что вы можете явно закрыть соединение через oci_close() иличто он автоматически закрывается в конце страницыЯ мог бы представить, если вы не закрываете явно, что это может занять некоторое время для тайм-аута.Возможно ли, что некоторые страницы, на которых нет вызовов oci_close(), вызывают открытые соединения, которые вы видите?

Если вы создаете отдельную страницу только с oci_connect() и oci_close() изатем выполнить его несколько раз. Видите ли вы, что количество подключений увеличивается напрямую по сравнению с тем, сколько раз вы выполняли страницу и оставались на прежнем уровне, прежде чем в конечном итоге снова вернуться вниз?остается открытым?

если вы работали в более ранних версиях, то это может быть пул резидентных подключений к базе данных Oracle 11g, но его нет в используемых вами текущих версиях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...