我正在使用 WebSphere Application Server 7、JDK 1.6 和 Oracle 11g。
我在使用 ejb 时总是收到此错误。
[7/1/10 17:12:28:770 机器人] 00000013
LocalTranCoor W WLTC0033W:资源
jdbc/oraDS11 在清理中回滚
本地事务遏制。
[2010 年 7 月 1 日
17:12:28:773 机器人] 00000013
LocalTranCoor W WLTC0032W:一个或
更多本地交易资源
在清理期间回滚
本地事务遏制。
这就是我从 WAS 中的数据源获取连接的方式。
javax.sql.DataSource ds = (javax.sql.DataSource) naming.lookup("DataSource");
conn= ds.getConnection();
任何帮助将不胜感激...
从错误消息来看,您正在本地事务中执行一些工作并且不承诺。未提交的工作将在方法结束时由容器回滚(默认情况下)。
这个答案给WAS6.0中数据源回滚 http://www.coderanch.com/t/78076/Websphere/Datasource-rollback-WAS#440373很好地总结了这一切,因为没有必要解释它,所以我在下面引用它。
A LocalTransactionContainment
是什么
你会在没有全局的情况下得到
(XA) 交易。消息
表明您执行了一些操作
本地事务工作是其中的一部分
遏制范围(方法或活动
会话),然后没有承诺。这
默认行为(由控制
未解决的操作)是回滚任何
年底未承诺的工作
范围。您有多种选择:
-
显式提交本地事务
connection.commit(); // after the work has been performed
-
更改数据源以使用自动提交
connection.setAutoCommit(true); //
在使用连接之前
-
将工作置于全局事务中
Context ic = new InitialContext();
UserTransaction ut =
(UserTransaction) ic.lookup("java:comp/UserTransaction");
ut.begin();
// use connection here
ut.commit();
将未解决的操作更改为提交
选择“Servlet”选项卡
部署描述符编辑器和
然后选择有问题的 servlet。
在“WebSphere 扩展”下,然后
“本地交易”设置
从“未解决的行动”到“提交”
下拉菜单。
我建议明确地提交工作(并阅读整个答案)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)