Ứng dụng đa luồng của bạn đang mở quá nhiều Kết nối / Phiên. Do đó, trình nghe sẽ ngừng hoạt động và chặn các kết nối mới trong một thời gian.
Kiểm tra việc sử dụng tài nguyên DB của bạn trước:
SELECT * FROM v$resource_limit WHERE resource_name IN ('processes','sessions');
Kiểm tra xem liệu MAX_UTILIZATION của bạn cho Quy trình hoặc Phiên của bạn có đang tiến quá gần đến LIMIT_VALUE hay không. Nếu có, bạn nên:
- Sử dụng gộp Kết nối DB để chia sẻ
Connection
các đối tượng giữa các luồng. Hoặc, - Tăng số lượng quy trình / phiên mà Oracle có thể phục vụ đồng thời.
Trên thực tế, Kết nối Pooling (# 1) nên luôn được thực hiện. Một ứng dụng không thể mở rộng quy mô bằng cách khác. Kiểm tra Apache Commons DBCP để biết chi tiết. Đối với # 2, hãy mở một phiên SQL * Plus mới dưới dạng HỆ THỐNG và chạy:
ALTER system SET processes=<n-as-per-number-of-threads> scope=spfile;
để tăng tính đồng thời của phụ trợ. Sau đó KHÔI PHỤC Cơ sở dữ liệu. QUAN TRỌNG!