weblogic启动数据源报错

weblogic启动数据源报错

当配置SqlConfig.xml下成“jndi”时,使用自身封装的sqlclient。在SqlClient.getConnection()时,程序报错:connection为刚访问完的一个数据源OracleDB,竟然不能创建另外一个连接uptel_login,报错内容如下:

Caused by: java.sql.SQLException: Connection has already been created in this tx context for pool named OracleDB. Illegal attempt to create connection from another pool: uptel_login
at weblogic.jdbc.jts.Driver.getExistingConnection(Driver.java:473)
at weblogic.jdbc.jts.Driver.connect(Driver.java:142)
at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:305)
at com.gsta.neva2.business.sqlclient.SqlClient.getConnection(SqlClient.java:135)
at com.gsta.neva2.business.sqlclient.Session.getConnection(Session.java:67)
at com.gsta.neva2.business.sqlclient.SqlClientSupport.select(SqlClientSupport.java:44)

解决方法有二:

**1、**使用jdbc访问数据库,不会出现该情况,可能由于jdbc是每次执行完sql后就提交事务,所以前一个数据源已经“彻底关闭”。(其实封装的sqlclient在每次访问结束后都把session,con之类的关闭了(为null),就是不清楚为什么Connection 还是前一个数据源的连接)。

**2、**在weblogic控制台将uptel_login这个数据源配置:Honor Global Transactions为false (默认为true)。这个值不能修改,只能在新建数据源时配置。

你可能感兴趣的:(Java,java,weblogic)