package nl.myname.mysqlxademo; import java.sql.SQLException; import java.sql.Statement; import java.util.concurrent.TimeUnit; import javax.sql.XAConnection; import javax.transaction.xa.XAException; import javax.transaction.xa.XAResource; import javax.transaction.xa.Xid; import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource; import com.mysql.jdbc.jdbc2.optional.MysqlXid; public class MySQLXADemo2 { public static void main(String[] args) { MysqlXADataSource xaDs=new MysqlXADataSource(); xaDs.setUrl("jdbc:mysql://localhost:5622/test" + "?user=msandbox&password=msandbox"); try { XAConnection xaConn = xaDs.getXAConnection(); Xid txid=new MysqlXid(new byte[] { 0x1 }, new byte[] { 0x1 }, 1); XAResource xaRes = xaConn.getXAResource(); try { xaRes.start(txid, XAResource.TMNOFLAGS); Statement stmt = xaConn.getConnection().createStatement(); stmt.execute("INSERT INTO t1(v) VALUES('test1')"); xaRes.end(txid, XAResource.TMSUCCESS); xaRes.prepare(txid); try { TimeUnit.SECONDS.sleep(10); } catch (InterruptedException x) { // } xaRes.commit(txid, false); } catch (XAException xaex) { System.out.println("XA error: " + xaex.getMessage()); } } catch(SQLException ex) { System.out.println("Connection error: " + ex.getMessage()); } } }