什么是非事务数据源的示例?

时间:2009-10-23 18:31:06

标签: java-ee jboss datasource

JBoss documentation中,有可能声明<no-tx-datasource>声明:

  

no-tx-datasource :此元素用于指定(org.jboss.resource.connectionmanager)NoTxConnectionManager服务配置。 NoTxConnectionManager是一个没有事务支持的JCA连接管理器。

我很好奇这种数据源可以连接什么? LDAP?这种配置的实际用例或开源示例是什么?

2 个答案:

答案 0 :(得分:5)

访问只读数据库是我能想到的最基本的用例。另一个是管理事务状态本身的应用程序。如果您想使用不参与全局JTA事务的连接,则另一个。最后一个发生在Quartz中(参见JobStoreCMT)。

但是,谷歌搜索时(这是一个很好的问题!),我在Sun的应用程序服务器文档的Using Non-Transactional Connections部分找到了更多的灵感:

  

使用非事务性连接的主要优点是避免了在事务上下文中登记和除名连接所产生的开销。但是,请仔细使用此类连接。例如,如果在正在进行修改数据库的事务时使用非事务性连接来查询数据库,则查询将检索数据库中未修改的数据。这是因为正在进行的事务尚未提交。再举一个例子,如果非事务性连接修改了数据库并且同时运行的事务回滚,则非事务性连接所做的更改不会回滚。

     

以下是非事务性连接的典型用例:在跨越循环的多次迭代的事务上下文中更新数据库的组件可以通过使用非事务性连接来刷新高速缓存的数据,以便在交易提交。

...有趣

答案 1 :(得分:0)

并非所有数据源都是德州,数据源也可以代表磁盘上的文件。