2015-05-14 45 views
1

我有一個部署在Tomcat中的Web應用程序。這個應用程序依賴於一個Spring pojo應用程序jar,它可以在classpath中使用。在Tomcat中部署Spring時是否需要JTA TX管理器

Spring POJO應用程序,包含一些DAO和很少的服務,我通過使用ClassPathXMLApplicationContext加載spring上下文來訪問這些DAO和Web應用程序中的服務作爲bean。

在Spring應用程序中的服務也使用DAO,在這種情況下,兩個應用程序訪問相同的數據庫。 Spring POJO應用程序使用HibernateTransactionManager。

對於這種情況,HibernateTXManager是好的,還是我需要提供JTA?

+0

不,您在訪問單個數據源時不需要JTA事務。只有在訪問多個單一數據源時才需要它,而且您需要兩個階段提交事務。 –

+0

感謝Orid,在這種情況下,哪個數據源選項會很好,1.DriverManagerDataSource 2.使用DataSourceTXManager的數據源JNDI查找,現在它使用的是DirverManagerDS。 – Murugesh

+0

@Murugesh,DriverManagerDataSource不維護任何連接池,所以不要使用它。您可以使用DBCP進行連接池,也可以在Tomcat中配置相同的設備並將其用作JNDI – Chaitanya

回答

0

JTA當您希望在sam全局事務中登記兩個或更多數據源時非常有用。

在你的情況下,你應該有Services使用DAOs和Web豆使用Services,所以這只是一個Spring應用程序的設計決定。

對於連接池,我建議你看看HikariCP,這可能是fastest one on the market

+0

我將檢查此選項。現在我正在使用DataSourceTransactionManager並配置spring以通過JndiObjectFactoryBean查找JNDI名稱。 – Murugesh

相關問題