Vaše vícevláknová aplikace otevírá příliš mnoho připojení/relací. Posluchač tedy na chvíli ukončuje a blokuje nová připojení.
Nejprve zkontrolujte využití zdrojů DB:
SELECT * FROM v$resource_limit WHERE resource_name IN ('processes','sessions');
Zkontrolujte, zda se vaše MAX_UTILIZATION pro vaše procesy nebo relace příliš neblíží LIMIT_VALUE. Pokud ano, měli byste buď:
- Používejte sdružování připojení DB ke sdílení
Connection
objekty mezi vlákny. Nebo, - Zvyšte počet procesů/relací, které může Oracle obsluhovat současně.
Ve skutečnosti by se sdružování připojení (#1) mělo provádět vždy. Jinak se aplikace nemůže zvětšit. Zkontrolujte Apache Commons DBCP pro detaily. Pro #2 otevřete novou relaci SQL*Plus jako SYSTEM a spusťte:
ALTER system SET processes=<n-as-per-number-of-threads> scope=spfile;
zvýšit souběh backendu. Poté RESTARTUJTE databázi. DŮLEŽITÉ!