2010-04-20 16 views
5

Tôi đang sử dụng nguồn dữ liệu JDBC weblogic và DB của tôi là Oracle 10g, bên dưới là cấu hình.Nguồn dữ liệu JDBC Weblogic cho "Không có tài nguyên hiện có trong hồ bơi" chỉ với 1 kết nối hoạt động

Nó được sử dụng để làm việc tốt nhưng đột nhiên nó bắt đầu đưa ra vấn đề, xin vui lòng xem bên dưới ngoại lệ.

WebLogic JDBC nguồn dữ liệu, java.sql.SQLException: có thể không có được XAConnection weblogic.common.resourcepool.ResourceLimitException: Không tài nguyên hiện có sẵn trong hồ bơi

<?xml version="1.0" encoding="UTF-8"?> <jdbc-data-source 

xmlns = "http: //www.bea.com/ns/weblogic/90 " xmlns: sec =" http://www.bea.com/ns/weblogic/90/security " xmlns: wls =" http: // www. bea.com/ns/weblogic/90/security/wls " xmlns: xsi =" http://www.w3.org/20 01/XMLSCHEMA cấp sơ thẩm " xsi: schemaLocation =" http://www.bea.com/ns/weblogic/920 http://www.bea.com/ns/weblogic/920.xsd "> XL-Reference-DS
jdbc: oracle: OCI: @ abc.COM oracle.jdbc.driver.OracleDriver dùng DEV_260908 mật khẩu mật khẩu dll ocijdbc10 giao thức OCI oracle.jdbc.V8Compatible đúng baseDriverClass oracle.jdbc.driver.OracleDriver
đúng SQL SELECT 1 FROM DUAL

DataJndi OnePhaseCommit

Ngoại lệ này xuất hiện trên môi trường dev nơi người dùng được kết nối chỉ là một.

Tôi biết điều này có liên quan đến kích thước tối đa của nhóm nhưng tôi cũng nghi ngờ điều này có thể do Oracle, có thể là Oracle không thể tạo kết nối.

Câu hỏi của tôi:

  1. Có bất kỳ thông số debug/khai thác gỗ để cho phép nguồn dữ liệu khai thác gỗ để tôi có thể kiểm tra số lượng kết nối mua, phát hành, và không sử dụng trong nhật ký?
  2. Làm cách nào để kiểm tra giới hạn kết nối của một người dùng cụ thể?

Trả lời

7

Có vẻ như có điều gì đó đang dần dần rò rỉ kết nối, như bạn nghi ngờ, và cuối cùng bạn đạt đến kích thước nhóm tối đa JDBC.Tôi không nghĩ rằng bạn đang nhấn giới hạn Oracle đầu tiên khi bạn nhận được một ngoại lệ ORA, và cũng sẽ không thể kết nối trực tiếp với cơ sở dữ liệu.

Bạn có thể định cấu hình nguồn dữ liệu để thu thập thông tin hồ sơ từ bảng điều khiển WebLogic; từ menu cấu trúc miền, đi tới các dịch vụ-> JDBC-> nguồn dữ liệu, chọn kết nối của bạn và chuyển đến tab chẩn đoán trong cấu hình. Nhưng bạn có thể có được một ý tưởng thô từ các số liệu thống kê cơ bản trên hồ bơi; đi đến môi trường-> máy chủ, chọn máy chủ của bạn, và nhìn vào tab JDBC dưới sự giám sát. Điều đó cho thấy các kết nối hoạt động và dấu nước cao. Nếu một trong hai là giống như kích thước poole tối đa của bạn thì đó là một dấu hiệu khá tốt bạn đang bị rò rỉ. Từ phía Oracle bạn có thể xem số phiên được phép với show parameters sessions, nhưng cũng cần phải kiểm tra show parameters processes có thể giới hạn hơn nữa (và một số trong số này là cần thiết bởi các quy trình nội bộ như pmon). Bạn có thể xem có bao nhiêu kết nối mở mà bạn có với một cái gì đó như select count(*) from v$session where username = 'DEV_260908';. Dựa trên lỗi, tôi sẽ không mong đợi rằng nó rất gần với giới hạn phiên/quá trình, nhưng phải khớp với số kết nối hoạt động từ giao diện điều khiển.

0

Máy chủ weblog không thể tìm nạp kết nối. Điều này có thể xảy ra nếu bạn đang đóng đối tượng kết nối và cố gắng sử dụng lại cùng một đối tượng kết nối.

Hy vọng điều đó sẽ hữu ích!

0

Bật WebLogic ServerTransactionTimeout.

  1. Bấm vào tên nguồn dữ liệu:

screenshot

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