Добрый день!
Есть приложение, написанное на PHP, в качестве СУБД используется Oracle XE. В качестве ОС - CentOS release 5.8. Apache и СУБД на одном сервере.
В приложении, в пиковый период происходит около 5 подключений в секунду, что на текущем сервере уже является проблемой. В качестве решения этой проблемы, попытался использовать DRCP, настройки использовал по умолчанию. При обращении к БД из приложения, даже визуально заметно, что время отклика приложения уменьшилось. Но после переключения, через пару дней (в период не самой большой загрузки), в апаче полезли ошибки
\r\nERROR:\r\nORA-28547: connection to server failed, probable Oracle Net admin error\r\nWarning: You are no longer connected to ORACLE.\r\n
\r\n
Подключение к pool не происходит и через sqlplus.
Сессии в БД висели с ожиданием library cache: mutex X, при этом новых сессий не появлялось. Перезапуск DRCP пула, киляние всех сессий не помогает.
В трейсе pmon-а полезли вот такие сообщения
\r\nKGX cleanup...\r\nKGX Atomic Operation Log 0x91b705e8\r\n Mutex 0x8ed53bb8(1, 0) idn 36b643cb oper EXCL\r\n Library Cache uid 1 efd 11 whr 85 slp 0\r\n oper=6 pt1=(nil) pt2=0x8c4ce9b0 pt3=(nil)\r\n pt4=(nil) pt5=(nil) ub4=0\r\nKGX cleanup...\r\nKGX Atomic Operation Log 0x91b70698\r\n Mutex 0x9033ce40(36, 0) idn a8611fa3 oper GET_EXCL\r\n Library Cache uid 1 efd 11 whr 79 slp 16383\r\n oper=0 pt1=0x9033cd10 pt2=0x8ed51f88 pt3=(nil)\r\n pt4=(nil) pt5=0x9033cdb0 ub4=1\r\nKGX cleanup...\r\nKGX Atomic Operation Log 0x91b705e8\r\n Mutex 0x8ed59c50(1, 0) idn b5f85f97 oper EXCL\r\n Library Cache uid 1 efd 11 whr 85 slp 0\r\n oper=6 pt1=(nil) pt2=0x88c4d980 pt3=(nil)\r\n pt4=(nil) pt5=(nil) ub4=0\r\nKGX cleanup...\r\nKGX Atomic Operation Log 0x91b70698\r\n Mutex 0x9033ce40(36, 0) idn a8611fa3 oper GET_EXCL\r\n
\r\n
В alert логе, ошибок не было.
Решение, это перезапуск БД через abort. (immediate не дождался)
Я почитал эту веточку.
При работе с DRCP, используем - oci_pconnect()
Подскажите, как можно локализовать проблему? Очень хочется добиться стабильной работы с использованием пула!