use of io.seata.rm.datasource.xa.XAXid in project seata by seata.
the class XAXidBuilderTest method testXid.
@Test
public void testXid() throws Throwable {
long mockBranchId = 1582688600006L;
String mockXid = "127.0.0.1:8091:" + mockBranchId;
XAXid xaXid = XAXidBuilder.build(mockXid, mockBranchId);
XAXid retrievedXAXid = XAXidBuilder.build(xaXid.getGlobalTransactionId(), xaXid.getBranchQualifier());
String retrievedXid = retrievedXAXid.getGlobalXid();
long retrievedBranchId = retrievedXAXid.getBranchId();
Assertions.assertEquals(mockXid, retrievedXid);
Assertions.assertEquals(mockBranchId, retrievedBranchId);
}
use of io.seata.rm.datasource.xa.XAXid in project seata by seata.
the class XAModeTest2 method testXid.
@Test
@Disabled
public void testXid() throws Throwable {
XAXid xaXid = XAXidBuilder.build(mockXid, mockBranchId);
XAXid retrievedXAXid = XAXidBuilder.build(xaXid.getGlobalTransactionId(), xaXid.getBranchQualifier());
String retrievedXid = retrievedXAXid.getGlobalXid();
long retrievedBranchId = retrievedXAXid.getBranchId();
Assertions.assertEquals(mockXid, retrievedXid);
Assertions.assertEquals(mockBranchId, retrievedBranchId);
}
use of io.seata.rm.datasource.xa.XAXid in project seata by seata.
the class XAModeTest2 method doTestXAModeNormalCasePhase1.
private void doTestXAModeNormalCasePhase1(String mockXid, Long mockBranchId) throws Throwable {
// init DataSource: helper
DruidDataSource helperDS = createNewDruidDataSource();
Connection helperConn = null;
Statement helperStat = null;
ResultSet helperRes = null;
// init RM
initRM();
AbstractDataSourceProxyXA dataSourceProxyXA = null;
if (nativeXA) {
// init XADataSource runnerXA
XADataSource runnerXADS = createNewNativeXADataSource();
dataSourceProxyXA = new DataSourceProxyXANative(runnerXADS);
} else {
// init DataSource: runner
DruidDataSource runnerDS = createNewDruidDataSource();
dataSourceProxyXA = new DataSourceProxyXA(runnerDS);
}
// Global Tx Phase 1:
RootContext.bind(mockXid);
Connection testConn = dataSourceProxyXA.getConnection();
Statement testStat = testConn.createStatement();
// >>> insert the test record with XA mode
testStat.execute("insert into test(id, name) values(" + testRecordId + ", '" + testRecordName + "')");
// >>> close the statement and connection
testStat.close();
testConn.close();
RootContext.unbind();
// have a check
helperConn = helperDS.getConnection();
helperStat = helperConn.createStatement();
helperRes = helperStat.executeQuery("select * from test where id = " + testRecordId);
// should NOT see the record(id=888) now
Assertions.assertFalse(helperRes.next());
helperRes.close();
helperStat.close();
helperConn.close();
if (JdbcUtils.MYSQL.equals(dbType)) {
XAXid xaXid = XAXidBuilder.build(mockXid, mockBranchId);
dataSourceProxyXA.forceClosePhysicalConnection(xaXid);
}
System.out.println("Phase1 looks good!");
}
Aggregations