Uw toepassing met meerdere threads opent te veel verbindingen/sessies. Daarom valt de luisteraar weg en blokkeert hij nieuwe verbindingen voor een tijdje.
Controleer eerst uw DB-resourcegebruik:
SELECT * FROM v$resource_limit WHERE resource_name IN ('processes','sessions');
Controleer of uw MAX_UTILIZATION voor uw processen of sessies te dicht bij de LIMIT_VALUE komt. Zo ja, dan moet u ofwel:
- Gebruik DB Connection-pooling om
Connection
te delen voorwerpen tussen draden. Of, - Verhoog het aantal processen/sessies dat Oracle tegelijkertijd kan onderhouden.
Eigenlijk zou Connection Pooling (#1) altijd moeten worden gedaan. Een applicatie kan anders niet opschalen. Controleer Apache Commons DBCP voor details. Open voor #2 een nieuwe SQL*Plus-sessie als SYSTEEM en voer het volgende uit:
ALTER system SET processes=<n-as-per-number-of-threads> scope=spfile;
om de gelijktijdigheid van de backend te vergroten. HERSTART vervolgens de database. BELANGRIJK!