论坛首页 Java企业应用论坛

WebSphere上应用jta

浏览 2957 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-03-30  
手头有个项目,是跑在WebSphere上的。
由于没有配置使用jta,所以数据库操作时,时不时报WLTC0032E错误。于是就打算启用jta。但一起用jta,就发觉程序无法启动:
引用
[07-3-30 9:42:45:141 CST] 7ca9f0f8 LTCUserTranCa E WLTC0037E: 无法启动全局事务。LocalTransactionContainment 已经是活动的。

不得其解。
无厘头地翻阅资料,在sprin-ref中无意看到如下一句:
引用
如果你使用全局事务,你必须为你的所有事务操作使用Spring的 org.springframework.transaction.jta.JtaTransactionManager。 否则Spring将试图在象容器数据源这样的资源上执行局部事务。这样的局部事务没有任何 意义,好的应用服务器会把这作为一个错误。

立即想起,代码中有部分dao调用的模块是不设置事务管理的!
改动代码,重新编译后发布,再测试,果然不再报错了。
教训与经验:
所有的DAO调用,无论多小,都该放置于Service层,并令service被spring事务管理。这样,才不会发生我所碰到的问题。
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics