该类继承了BaseDataSource类,实现了Referenceable和XADataSource两个接口
package com.oscar.xa;
import com.oscar.Driver;
import com.oscar.jdbcx.optional.BaseDataSource;
import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.Reference;
import javax.naming.Referenceable;
import javax.sql.XAConnection;
import javax.sql.XADataSource;
public class Jdbc3XADataSource extends BaseDataSource
implements Referenceable, XADataSource
{
public String getDescription()
{
return "JDBC3 XA-enabled DataSource from " + Driver.getVersion();
}
public XAConnection getXAConnection() throws SQLException {
return getXAConnection(getUser(), getPassword());
}
public XAConnection getXAConnection(String user, String password) throws SQLException
{
Connection con = super.getConnection(user, password);
return new Jdbc3XAConnection(con);
}
protected Reference createReference() {
return new Reference(getClass().getName(), OSCARXADataSourceFactory.class.getName(), null);
}
}
com.oscar.xa.Jdbc3XAConnection 封装物理连接com.oscar.jdbc.OscarJdbc2Connection错误
java.sql.SQLException: error enlisting a JdbcConnectionHandle of a JdbcPooledConnection from datasource *******DS in state ACCESSIBLE with usage count 1 wrapping com.oscar.xa.Jdbc3XAConnection@11a438e on Pooled connection wrapping physical connection com.oscar.jdbc.OscarJdbc2Connection@4c3a7d Query: sql语句略 order by t1.id desc Parameters: []
at org.apache.commons.dbutils.AbstractQueryRunner.rethrow(AbstractQueryRunner.java:392)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:413)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:213)
at com.包名略.common.db.BaseDAO$1ExecuteCallback.execute(BaseDAO.java:73)
at com.包名略.common.db.BaseDAO.execute(BaseDAO.java:443)
at com.包名略.common.db.BaseDAO.query(BaseDAO.java:76)
at com.包名略.common.db.BaseDAO.executeQuery(BaseDAO.java:55)
at com.包名略.包名略.包名略.包名略.dao.jdbc.类名略.getActivityEventListNonPaged(ActivityEventDaoPostgreSqlImpl.java:229)
at com.包名略.包名略.包名略.包名略.cache.类名略.initActivityEventCache(ActivityEventCacheManager.java:220)
at com.包名略.包名略.包名略.包名略.cache.类名略$$FastClassBySpringCGLIB$$fa7de9b.invoke(<generated>)
package com.oscar.xa;
import com.oscar.Driver;
import com.oscar.jdbcx.optional.BaseDataSource;
import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.Reference;
import javax.naming.Referenceable;
import javax.sql.XAConnection;
import javax.sql.XADataSource;
public class Jdbc3XADataSource extends BaseDataSource
implements Referenceable, XADataSource
{
public String getDescription()
{
return "JDBC3 XA-enabled DataSource from " + Driver.getVersion();
}
public XAConnection getXAConnection() throws SQLException {
return getXAConnection(getUser(), getPassword());
}
public XAConnection getXAConnection(String user, String password) throws SQLException
{
Connection con = super.getConnection(user, password);
return new Jdbc3XAConnection(con);
}
protected Reference createReference() {
return new Reference(getClass().getName(), OSCARXADataSourceFactory.class.getName(), null);
}
}
com.oscar.xa.Jdbc3XAConnection 封装物理连接com.oscar.jdbc.OscarJdbc2Connection错误
java.sql.SQLException: error enlisting a JdbcConnectionHandle of a JdbcPooledConnection from datasource *******DS in state ACCESSIBLE with usage count 1 wrapping com.oscar.xa.Jdbc3XAConnection@11a438e on Pooled connection wrapping physical connection com.oscar.jdbc.OscarJdbc2Connection@4c3a7d Query: sql语句略 order by t1.id desc Parameters: []
at org.apache.commons.dbutils.AbstractQueryRunner.rethrow(AbstractQueryRunner.java:392)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:413)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:213)
at com.包名略.common.db.BaseDAO$1ExecuteCallback.execute(BaseDAO.java:73)
at com.包名略.common.db.BaseDAO.execute(BaseDAO.java:443)
at com.包名略.common.db.BaseDAO.query(BaseDAO.java:76)
at com.包名略.common.db.BaseDAO.executeQuery(BaseDAO.java:55)
at com.包名略.包名略.包名略.包名略.dao.jdbc.类名略.getActivityEventListNonPaged(ActivityEventDaoPostgreSqlImpl.java:229)
at com.包名略.包名略.包名略.包名略.cache.类名略.initActivityEventCache(ActivityEventCacheManager.java:220)
at com.包名略.包名略.包名略.包名略.cache.类名略$$FastClassBySpringCGLIB$$fa7de9b.invoke(<generated>)