Aplikasi multi-utas Anda membuka terlalu banyak Koneksi/Sesi. Oleh karena itu, pendengar memutuskan dan memblokir koneksi baru untuk sementara waktu.
Periksa penggunaan sumber daya DB Anda terlebih dahulu:
SELECT * FROM v$resource_limit WHERE resource_name IN ('processes','sessions');
Periksa untuk melihat apakah MAX_UTILIZATION Anda untuk Proses atau Sesi Anda terlalu dekat dengan LIMIT_VALUE. Jika ya, Anda juga harus:
- Gunakan penyatuan Koneksi DB untuk berbagi
Connection
objek antar thread. Atau, - Meningkatkan jumlah proses/sesi yang dapat dilayani Oracle secara bersamaan.
Sebenarnya Connection Pooling (#1) harus selalu dilakukan. Aplikasi tidak dapat meningkatkan skala sebaliknya. Periksa Apache Commons DBCP untuk rincian. Untuk #2, buka sesi SQL*Plus baru sebagai SISTEM dan jalankan:
ALTER system SET processes=<n-as-per-number-of-threads> scope=spfile;
untuk meningkatkan konkurensi backend. Kemudian RESTART Basis Data. PENTING!