Database 配置了Spring事务管理器后,db连接何时建立?
假设在名为Database 配置了Spring事务管理器后,db连接何时建立?,database,spring,transactions,connection,Database,Spring,Transactions,Connection,假设在名为TaskService的类中有一个方法getAssignedTasks,该方法实际上从两个数据源dao1.getInfo()和dao2.getMoreInfo()检索信息。问题是数据库连接何时实际建立 我假设调用dao1.getInfo()时已建立到datasource1的连接,此时(dao2.getMoreInfo()尚未调用)未建立到datasource2的连接。我说得对吗?调用getAssignedTasks方法时是否会立即建立连接 spring配置如下所示 <tx:adv
TaskService
的类中有一个方法getAssignedTasks
,该方法实际上从两个数据源dao1.getInfo()
和dao2.getMoreInfo()
检索信息。问题是数据库连接何时实际建立
我假设调用dao1.getInfo()
时已建立到datasource1的连接,此时(dao2.getMoreInfo()
尚未调用)未建立到datasource2的连接。我说得对吗?调用getAssignedTasks
方法时是否会立即建立连接
spring配置如下所示
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="get*" read-only="true" />
我不知道这是否是规范定义的行为(如果不是-这在不同的JTA实现中可能不同),但对于Artomikos jdbc JTA实现,似乎只有在需要时和事务开始时才进行连接 这似乎是合乎逻辑的,因为在某些方法中,可能不使用第二个(或第三个,或)数据源的连接,而从池中获取它将是无用的开销 我写了一个小测试来调查这个问题,可以在上找到。您可以通过它进行调试,以便自己进行调查