Я использую weblogic JDBC источник данных, и моим DB является Oracle, 10 г, ниже конфигурация.
Это раньше хорошо работало, но внезапно это начало давать проблему, посмотрите ниже исключения.
Источник данных Weblogic JDBC, java.sql. SQLException: не Может получить XAConnection weblogic.common.resourcepool. ResourceLimitException: Никакие ресурсы, в настоящее время доступные в пуле
xmlns = "http://www.bea.com/ns/weblogic/90" xmlns:sec = "http://www.bea.com/ns/weblogic/90/security" xmlns:wls = "http://www.bea.com/ns/weblogic/90/security/wls" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://www.bea.com/ns/weblogic/920 http://www.bea.com/ns/weblogic/920.xsd"> XL-Reference-DS
jdbc:oracle:oci:@abc.COM oracle.jdbc.driver. Пользователь OracleDriver протокол dll ocijdbc10 пароля password DEV_260908 oci oracle.jdbc. V8Compatible истинный baseDriverClass oracle.jdbc.driver. OracleDriver
1 100 1 истинный SQL ВЫБИРАЮТ 1 ИЗ ДВОЙНОГО
DataJndi OnePhaseCommit
Это исключение происходит в dev среду, где подключенный пользователь - только один.
Я знаю, что это связано для объединения макс. размера, но я также подозреваю, что это могло произойти из-за Oracle, могла бы быть Oracle, не может создать соединения.
Мои вопросы:
Похоже, что что-то постепенно теряет соединения, как вы, кажется, подозреваете, а вы ' re в конечном итоге достигнет максимального размера пула JDBC. Я не думаю, что вы сначала достигли пределов Oracle, так как вы получите исключение ORA, а также не сможете напрямую подключиться к базе данных.
Вы можете настроить источник данных для сбора информации профиля из консоли WebLogic; в меню структуры домена перейдите в сервисы-> JDBC-> источники данных, выберите свое соединение и перейдите на вкладку диагностики в разделе конфигурации. Но вы можете получить приблизительное представление об основных характеристиках пула; перейдите в среду-> серверы, выберите свой сервер и посмотрите вкладку JDBC под мониторингом. Это показывает активные соединения и максимальную отметку. Если какой-либо из них совпадает с вашим максимальным размером пула, это довольно хороший признак утечки.
Со стороны Oracle вы можете посмотреть количество сеансов, разрешенных с помощью show parameters sessions
, но также необходимо проверить show parameters процессов
, что может ограничить его еще больше (и некоторые из они необходимы внутренним процессам, таким как pmon
). Вы можете увидеть, сколько у вас открытых подключений, с помощью чего-то вроде select count (*) from v $ session where username = 'DEV_260908';
. Основываясь на ошибке, я бы не ожидал, что это будет очень близко к пределам сеанса / процесса, но должно соответствовать количеству активных подключений с консоли.