下面讨论如何在java程序里实现分布式事务,即在同一个事务里访问多个数据源。实际上就是如何使用jta.
这里假设使用oracle数据库,使用weblogic部署应用,所要做的是如下几步: 1. 配置
1.1 确认数据库支持分布式事务 - oracle是支持分布式事务的,jdbc驱动也支持分布式事务
1.2 在weblogic里配置datasource
1.2.1. 配置连接池,注意这里应该选择驱动是thin xa而不是thin 1.2.2. 配置数据源,使用前面配好的xa的连接池 2. 程序实现 2.1. 实现自己的xid
import javax.transaction.xa.*; public class myxid implements xid {
protected int formatid; protected byte gtrid[]; protected byte bqual[]; public myxid() { }
public myxid(int formatid, byte gtrid[], byte bqual[]) {
this.formatid = formatid; this.gtrid = gtrid; this.bqual = bqual; }
public int getformatid()