DruidXADataSource分布式的事务处理机制
druid增加了分布式的事务处理,查看源码中的DruidXADataSource的XA事务的连接池进行源码分析。
DruidXADataSource类图
DruidXADataSource继承了DruidDataSource,重写了getXAConnection方法,通过不同的数据库方言走不同的创建XA连接的方法。
getXAConnection
@Override
public XAConnection getXAConnection() throws SQLException {
// 调用父类的获取连接的方法
DruidPooledConnection conn = this.getConnection();
Connection physicalConn = conn.unwrap(Connection.class);
// 创建物理连接
XAConnection rawXAConnection = createPhysicalXAConnection(physicalConn);
return new DruidPooledXAConnection(conn, rawXAConnection);
}
createPhysicalXAConnection
//获取物理连接
private XAConnecti