2010-03-15 136 views
0
使用Weblogic 10數據源映射

甲骨文JDBC連接,使問題java.sql.SQLException中:關閉連接甲骨文JDBC連接,使問題java.sql.SQLException中:關閉連接

我使用WebLogic 10 JNDI數據源創建JDBC連接,下面是我的配置

<?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/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/920 http://www.bea.com/ns/weblogic/920.xsd"> 
    <name>XL-Reference-DS</name> 
    <jdbc-driver-params> 
    <url>jdbc:oracle:oci:@abc.XL.COM</url> 
    <driver-name>oracle.jdbc.driver.OracleDriver</driver-name> 
    <properties> 
     <property> 
     <name>user</name> 
     <value>DEV_260908</value> 
     </property> 
     <property> 
     <name>password</name> 
     <value>password</value> 
     </property> 
     <property> 
     <name>dll</name> 
     <value>ocijdbc10</value> 
     </property> 
     <property> 
     <name>protocol</name> 
     <value>oci</value> 
     </property> 
     <property> 
     <name>oracle.jdbc.V8Compatible</name> 
     <value>true</value> 
     </property> 
     <property> 
     <name>baseDriverClass</name> 
     <value>oracle.jdbc.driver.OracleDriver</value> 
     </property> 
    </properties> 
    </jdbc-driver-params> 
    <jdbc-connection-pool-params> 
    <initial-capacity>1</initial-capacity> 
    <max-capacity>100</max-capacity> 
    <capacity-increment>1</capacity-increment> 
    <test-connections-on-reserve>true</test-connections-on-reserve> 
    <test-table-name>SQL SELECT 1 FROM DUAL</test-table-name> 
    </jdbc-connection-pool-params> 
    <jdbc-data-source-params> 
    <jndi-name>ReferenceData</jndi-name> 
    <global-transactions-protocol>OnePhaseCommit</global-transactions-protocol> 
    </jdbc-data-source-params> 
</jdbc-data-source> 

當我運行那裏有許多建立的連接和關閉批量任務,有時它給連接關閉例外任何大宗任務的任務的。

下面是詳細的異常」

java.sql.SQLException: Closed Connection 
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111) 
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145) 
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:207) 
at oracle.jdbc.driver.OracleStatement.ensureOpen(OracleStatement.java:3512) 
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3265) 
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3367) 

任何想法?

+1

假設一些連接正在工作,這可能不是一個配置問題。可能是您的批量任務的代碼 - 是不是通過一個開放和關閉連接塊運行? – JoseK 2010-03-15 09:00:43

回答

0

問題是由於整個代碼共享連接.... 不好的編程.... :(糾正它.... 感謝

2

您可以<global-transactions-protocol>參數更改爲none和執行代碼:

<jdbc-data-source-params> 
    <jndi-name>ReferenceData</jndi-name> 
    <global-transactions-protocol>none</global-transactions-protocol> 
</jdbc-data-source-params>