Вашето многопоточно приложение отваря твърде много връзки/сесии. Следователно слушателят прекъсва и блокира нови връзки за известно време.
Първо проверете използването на вашите DB ресурси:
SELECT * FROM v$resource_limit WHERE resource_name IN ('processes','sessions');
Проверете дали вашата MAX_UTILIZATION за вашите процеси или сесии се доближава твърде много до LIMIT_VALUE. Ако да, трябва да направите едно от следните:
- Използване на групиране на DB Connection за споделяне на
Connection
обекти между нишките. Или, - Увеличете броя процеси/сесии, които Oracle може да обслужва едновременно.
Всъщност обединяването на връзки (#1) винаги трябва да се прави. Едно приложение не може да се увеличи по друг начин. Проверете Apache Commons DBCP за детайли. За #2 отворете нова SQL*Plus сесия като SYSTEM и изпълнете:
ALTER system SET processes=<n-as-per-number-of-threads> scope=spfile;
за увеличаване на паралелността на бекенда. След това РЕСТАРТИРАЙТЕ базата данни. ВАЖНО!