2010-04-20 54 views
5

我使用的是weblogic JDBC數據源,而我的數據庫是Oracle 10g,下面是配置。Weblogic JDBC數據源僅提供1個活動連接「池中沒有可用資源」

它用於正常工作,但突然它開始給出問題,請參閱下面的異常。

的Weblogic JDBC數據源 ,值java.sql.SQLException: 無法獲取的XAConnection weblogic.common.resourcepool.ResourceLimitException: 沒有資源,目前在 池

<?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的實例 「 的xsi:的schemaLocation =」 http://www.bea.com/ns/weblogic/920 http://www.bea.com/ns/weblogic/920.xsd「> XL-參考-DS
JDBC:預言:OCI:@ abc.COM oracle.jdbc.driver.OracleDriver 用戶 DEV_260908 密碼 密碼 DLL ocijdbc10 協議 OCI oracle.jdbc.V8Compatible 真 baseDriverClass oracle.jdbc.driver.OracleDriver
真 SQL SELECT 1 FROM DUAL

DataJndi OnePhaseCommit

此例外情況發生在dev環境中,其中連接的用戶只有一個。

我知道這與池大小有關,但我也懷疑這可能是由於Oracle造成的,可能是Oracle無法創建連接。

我的問題:

  1. 是否有任何調試/日誌記錄參數,使數據源記錄,這樣我可以檢查收購,釋放連接的數量,和未使用的日誌?
  2. 如何檢查特定用戶的oracle連接限制?

回答

7

這聽起來象是逐漸泄漏的連接,你似乎懷疑,而你最終到達JDBC最大池大小。我不認爲你首先遇到Oracle限制,因爲你會得到一個ORA異常,並且也不能直接連接到數據庫。

您可以配置數據源以從WebLogic控制檯收集配置文件信息;從域結構菜單轉到services-> JDBC->數據源,選擇您的連接,然後轉到配置下的診斷選項卡。但是你可以從游泳池的基本統計數據中得到一個粗略的想法;去環境 - >服務器,選擇你的服務器,然後看看監視下的JDBC標籤。這表明積極的聯繫和高水位。如果兩者中的任何一個與您的最大極限大小相同,那麼這是一個很好的跡象表明您正在泄漏。

從Oracle方面,你可以看看允許用show parameters sessions會話的數量,而且還需要檢查show parameters processes這可能進一步限制它(和其中的一些是通過內部流程需要像pmon)。你可以看到你有多少個開放連接,如select count(*) from v$session where username = 'DEV_260908';。根據錯誤,我不認爲會非常接近會話/進程限制,但應該與控制檯的活動連接數相匹配。

0

weblogic服務器無法獲取連接。 如果關閉連接對象並嘗試再次使用相同的連接對象,則可能會發生這種情況。

希望它有幫助!

0

啓用WebLogic ServerTransactionTimeout。

  1. 單擊數據源名稱:

screenshot