Atomikos Forum |
|
import java.sql.Connection;
import java.util.Properties; import com.atomikos.icatch.jta.UserTransactionManager; import com.atomikos.jdbc.AtomikosDataSourceBean; public class AtomikosTestMain { private static AtomikosDataSourceBean master_ds=new AtomikosDataSourceBean(); private static AtomikosDataSourceBean slave_ds=new AtomikosDataSourceBean(); public static void initDataSource(){ { master_ds.setUniqueResourceName("jdbc/master"); master_ds.setXaDataSourceClassName("org.postgresql.xa.PGXADataSource"); Properties p = new Properties(); p.setProperty("user", "wsr"); p.setProperty("password", "wsrcmps"); // p.setProperty("url", config.getConnect_url()); p.setProperty("serverName", "192.168.0.162"); p.setProperty("portNumber", "5432"); p.setProperty("databaseName", "test_master"); master_ds.setXaProperties(p); } { slave_ds.setUniqueResourceName("jdbc/slave"); slave_ds.setXaDataSourceClassName("org.postgresql.xa.PGXADataSource"); Properties p = new Properties(); p.setProperty("user", "wsr"); p.setProperty("password", "wsrcmps"); // p.setProperty("url", config.getConnect_url()); p.setProperty("serverName", "192.168.0.162"); p.setProperty("portNumber", "5432"); p.setProperty("databaseName", "test_slave1"); slave_ds.setXaProperties(p); } } /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { // TODO Auto-generated method stub initDataSource(); UserTransactionManager utm = new UserTransactionManager(); utm.setForceShutdown(true); Connection mst_conn=null; Connection slv_conn=null; // UserTransaction utx= new UserTransactionImp(); // utx.setTransactionTimeout(240); try { utm.begin(); mst_conn=master_ds.getConnection(); slv_conn=slave_ds.getConnection(); mst_conn.createStatement().execute("insert into userinfo(username,userpwd)values('123123','33333333333')"); slv_conn.createStatement().execute("insert into userinfo(username,userpwd)values('123123','33333333333')"); utm.commit(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); // DBHelper.XArollback(utx); }finally{ mst_conn.close(); slv_conn.close(); } } } hi I use Atomikos in my project, when the code run the commit ,the error happen! log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. javax.transaction.HeuristicMixedException: Heuristic Exception at com.atomikos.icatch.jta.TransactionImp.rethrowAsJtaHeuristicMixedException(TransactionImp.java:75) at com.atomikos.icatch.jta.TransactionImp.commit(TransactionImp.java:210) at com.atomikos.icatch.jta.TransactionManagerImp.commit(TransactionManagerImp.java:501) at com.atomikos.icatch.jta.UserTransactionManager.commit(UserTransactionManager.java:177) at AtomikosTestMain.main(AtomikosTestMain.java:67) Caused by: com.atomikos.icatch.HeurHazardException: Heuristic Exception at com.atomikos.icatch.imp.CoordinatorStateHandler.rollback(CoordinatorStateHandler.java:751) at com.atomikos.icatch.imp.ActiveStateHandler.prepare(ActiveStateHandler.java:185) at com.atomikos.icatch.imp.CoordinatorImp.prepare(CoordinatorImp.java:688) at com.atomikos.icatch.imp.CoordinatorImp.terminate(CoordinatorImp.java:972) at com.atomikos.icatch.imp.CompositeTerminatorImp.commit(CompositeTerminatorImp.java:82) at com.atomikos.icatch.imp.CompositeTransactionImp.commit(CompositeTransactionImp.java:336) at com.atomikos.icatch.jta.TransactionImp.commit(TransactionImp.java:208) ... 3 more
Probably a problem due to shutting down the pools too early. Please check http://www.atomikos.com/Documentation/SpringIntegration#Optimizing_the_Init_and_Close_Or
|