как убить неиспользуемые соединения - PullRequest
1 голос
/ 04 августа 2011

У меня есть сеть, написанная на php (4.3.9), которая связана с базой данных оракула (10g).Пользователь может отправить запрос и посмотреть результаты.Время от времени я получал сообщение об ошибке в веб-приложении:

ociplogon (): _oci_open_server: ORA-12516: TNS: слушателю не удалось найти доступный обработчик с соответствующим стеком протоколов

пользователи не могут войти и выполнить запрос.после сброса httpd сеть переходит в нормальное состояние.

после поиска в Google я обнаружил:

  • эта ошибка вызвана тем, что достигнут максимальный предел подключений к оракулу
  • так что я думаю, что есть некоторые неиспользуемые / неиспользуемые соединения с БД и очищаются путем сброса httpd
  • пользователь подключается с помощью команды php ociplogon, которая является постоянной
  • "OCILogoff () ничего не делает намомент ... "( bugs.php.net / bug.php? id = 11234 )

, есть ли способ как очистить неиспользуемые / неработающие соединения?установить тайм-аут?

1 Ответ

1 голос
/ 04 августа 2011

Это из-за большого количества открытых соединений с БД, после выполнения указанной операции вы должны закрыть.

Просмотр oci_close Документы , чтобы узнать, как закрыть соединение OCI, и oci_connect Документы для получения дополнительной информации о подключении к OCI.

...