Jotm+Spring + Hibernate+ SQL2005 实现DAO数据访问JTA分布式事务
两台不同的数据库上完成分布式跨库事务
?
1 Spring配置文件,jotm-applicationContext-db.xml
?
2 数据库属性文件,jotm-db.properties,Local和Foreign两个部署在不同服务器上的数据库实例。
?
4 数据库表均为Person,定义为:
?
?
9 测试类JotmTest.java
?at java.security.AccessController.doPrivileged(Native Method)
?at com.sun.naming.internal.VersionHelper12.getContextClassLoader(VersionHelper12.java:158)
?at com.sun.naming.internal.ResourceManager.getFactory(ResourceManager.java:339)
?at javax.naming.spi.NamingManager.getURLObject(NamingManager.java:575)
?at javax.naming.spi.NamingManager.getURLContext(NamingManager.java:533)
?at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:279)
?at javax.naming.InitialContext.lookup(InitialContext.java:351)
?at org.hibernate.transaction.JTATransactionFactory.getUserTransaction(JTATransactionFactory.java:162)
?at org.hibernate.transaction.JTATransactionFactory.getUserTransaction(JTATransactionFactory.java:172)
?at org.hibernate.transaction.JTATransactionFactory.getUserTransaction(JTATransactionFactory.java:172)
?at org.hibernate.transaction.JTATransactionFactory.getUserTransaction(JTATransactionFactory.java:172)?
解决:
spring配置文件jotm-applicationContext-db.xml中sessionFactory项导致
原来配置:
?应该删除属性jtaTransactionManager,因为在DataSource中已经配置该属性。