2012-04-23 39 views
5

Tôi có một số bài kiểm tra đơn vị nói chuyện với Oracle-11g XE. Chạy mỗi bài kiểm tra cá nhân hoạt động tốt, nhưng khi tôi chạy tất cả, những đường chuyền đầu tiên, và phần còn lại thất bại với lỗi này khi cố gắng để tạo ra các kết nối DB:Kết nối JDBC không thành công với ORA-12516

ORA-12516, TNS:listener could not find available handler with matching protocol stack 

Điều này xảy ra không có vấn đề gì để tôi chạy kiểm tra, vì vậy vấn đề dường như là tôi đang sử dụng một số loại tài nguyên trên máy chủ DB.

Tôi cố gắng chạy các bài kiểm tra chậm, và kiểm tra # kết nối được sử dụng trong thời gian chạy với:

select count(*) from v$session; 

CáC# phiên luôn dao động giữa 26 và 28, và giới hạn được thiết lập đến 49, vì vậy tôi không chắc vấn đề là gì.

Sự cố cũng trở nên tồi tệ hơn nếu tôi chạy thử nghiệm nhanh chóng. Khi tôi chạy chúng mà không có bất kỳ sự chậm trễ nào, 90% không thành công với lỗi này. Tôi đặt một giấc ngủ trong teardown() để có được một ý tưởng tốt hơn về những gì đang xảy ra, và trong trường hợp đó chỉ có khoảng 10% thất bại.

Trả lời

0

Nhìn vào các phiên họp và giới hạn quá trình trong v $ tham số và cũng alert.log và listener.log Câu trả lời là ở đâu đó ngoài kia

3

Bạn có thể cần phải tăng giá trị của tham số quy trình. Ngoài ra, hãy thực hiện lệnh "lsnrctl servcies" để xem dịch vụ có hiển thị là bị chặn không. Tôi nhớ lại một vấn đề tương tự mà người nghe đang thông minh và đếm số lượng kết nối được yêu cầu cho dịch vụ. Người nghe không tìm hiểu về việc ngắt kết nối cho đến khi PMON thông báo cho nó. Và đó có thể là 5 hoặc 10 phút sau đó. Vì vậy, người nghe nghĩ rằng bạn có nhiều kết nối mở và quyết định chủ động và không đưa ra các kết nối nữa - cho dù PMON đã nói khác đi. Nếu bạn tăng tham số PROCESSES, bạn có thể tự làm tăng số lượng kết nối bạn có thể thực hiện trong cửa sổ.

UPDATE: Liên kết này mô tả nó: https://forums.oracle.com/forums/thread.jspa?threadID=360226

Các vấn đề liên quan