예. 일반 JDBC와 함께 JTA를 사용할 수 있습니다. 일반적인 생각은 JDBC Connection 객체를 사용하여 트랜잭션 경계를 선언하는 대신 JTA 구현에서 제공하는 트랜잭션 관리자 객체를 사용하여 트랜잭션 경계를 선언하는 것입니다. Connection 다음 코드를 수행 할 수있는 많은 데이터베이스를 통해 트랜잭션 경계를 선언 Bitronix Transaction Manager의 경우 예를 들어
가, :
PoolingDataSource derbyDataSource1 = new PoolingDataSource();
derbyDataSource1.setClassName("org.apache.derby.jdbc.EmbeddedXADataSource");
derbyDataSource1.setUniqueName("derby1");
derbyDataSource1.getDriverProperties().setProperty("databaseName", "database1");
derbyDataSource1.init();
PoolingDataSource derbyDataSource2= new PoolingDataSource();
derbyDataSource2.setClassName("org.apache.derby.jdbc.EmbeddedXADataSource");
derbyDataSource2.setUniqueName("derby2");
derbyDataSource2.getDriverProperties().setProperty("databaseName", "database2");
derbyDataSource2.init();
BitronixTransactionManager btm = TransactionManagerServices.getTransactionManager();
btm.begin();
try {
Connection c1= derbyDataSource1.getConnection();
Connection c2= derbyDataSource2.getConnection();
/***Use c1 and c2 to execute statements again their corresponding DBs as usual**/
btm.commit();
} catch (SQLException ex) {
ex.printStackTrace();
btm.rollback();
}
확인이 내 최근 게시물을 본 http://stackoverflow.com/questions/13269718/how-to-maintain-acid-property-of-three-sequential-of-three-diffrenet-dat은 분산 데이터베이스에서 잘 작동하는 예제입니다. –
그리고 BitronixTransactionManager 대신 JTA를 사용할 수도 있고 BitronixTransactionManager를 사용할 수도 있습니다. –
안녕하세요 arvin, BitronixTransactionManager는 JTA 구현 중 하나입니다. –