使用JOTM进行Tomcat的JTA调用

     前段时间碰到一个需要访问多个数据库的例子,由于项目上是采用tomcat作为项目开发和布署,所以就没有考虑采用特定厂商的JTA实现,而是通过一个开源的JTA实现来完成tomcat和多个数据库之间的直接交互。
    多数据库访问最直接的问题就是在一个service中,存在着多个数据库dao对象,当前面的dao对象操作完成之后,如果后面的某一个dao访问出错,那么这个service应该如何进行回滚呢。一般来说,回滚应该是整个service一起回滚,所以就需要对这个service中的所有dao所涉及的sessionFactory进行处理。而对于hibernate+spring来说,spring是使用hibernate的sessionFactory来进行事务的控制和回滚的,而hibernate又是将由自己的一个transactionFactory引用相关的transaction来进行事务的提交和回滚。所以,如果要用到多个数据库,就需要一个支持多个数据库的transaction。JOTM就提供了一个开源的多数据库Transaction应用,它采用了支持XADatasource的Xpool来进行数据源管理。

继续阅读“使用JOTM进行Tomcat的JTA调用”