2012-04-23 1 views
5

У меня есть некоторые модульные тесты, которые говорят с Oracle-11g XE. Выполнение каждого теста по отдельности работает нормально, но когда я запускаю их всех, первые несколько проход, а остальное потерпит неудачу с этой ошибкой при попытке создать соединение с базой данных:Не удалось подключиться JDBC с ORA-12516

ORA-12516, TNS:listener could not find available handler with matching protocol stack 

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

Я попытался запустить тесты медленно, и проверка # соединений, используемых во время бега с:

select count(*) from v$session; 

# сессий всегда колеблется между 26 и 28, а предел устанавливается на 49, поэтому я не уверен, в чем проблема.

Проблема также ухудшается, если я быстро запускаю тесты. Когда я запускаю их без каких-либо дополнительных задержек, 90% сбой этой ошибки. Я спал в tearDown(), чтобы лучше понять, что происходит, и в этом случае только около 10% терпят неудачу.

ответ

0

Посмотрите на сессиях и пределах процесса в V $ параметров, а также alert.log и listener.log Ответ где-то там

3

Вы, вероятно, необходимо увеличить значение параметра ПРОЦЕССЫ. Также выполните команду «lsnrctl servcies», чтобы увидеть, отображается ли служба как заблокированная. Я напоминаю аналогичную проблему, когда слушатель умнее и подсчитывает количество подключений, запрашиваемых для этой услуги. Слушатель не узнает об отключении, пока PMON не уведомит об этом. И это может быть 5 или 10 минут спустя. Таким образом, слушатель считает, что у вас много открытых подключений, и решает быть проактивным, а не раздавать больше соединений - если иное не будет сказано PMON. Если вы увеличите параметр PROCESSES, вы можете столкнуться с количеством подключений, которое вы можете сделать в окне.

UPDATE: Эта ссылка описывает это: https://forums.oracle.com/forums/thread.jspa?threadID=360226