Q:XA的Driver和普通的Driver有什么区别呢?
A: XA的Driver支持分布式的事务处理,这是与non xa driver的最大区别;JDBC2.0规范提
供了进行分布式事务的能力。分布式事务是个单独的事务,可以应用在位于分离服务器上的
多个异构数据库。为了支持分布式事务,JDBC2.0 提供了两个新的接口:
javax.sql.XADataSource和javax.sql.XAConnection。从性能的考虑来说,使用XA的DRIVER
会比普通的DRIVER慢。
Q: XA的连接池,选择了支持本地事务后,是否还支持对全局的操作?
A: 8.1既支持TX,也支持Non-Tx的,Weblogic对所有的已知数据库进行了包装(Wrapper),使接
口一致,然而对不同的数据库,根据选择的驱动程序不同,都作了相应的优化和处理。建立数据
源时,如果选择Non-Tx类型,那么它参与到JTA事务中也不会出错,因为Weblogic会启动本地
事务,但是前提是必须有一个资源(XAResource)参与到事务中(多个资源的话必须打开模拟两
阶段提交协议,不然会出错),但是选择Tx类型的就必须有一个全局事务,除非选择支持本地
事务(SupportsLocalTransaction=true)。另外如果使用了本地事务,就必须设置autocommit为
true,或者手工commit/rollback。