首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >资源数据源在LocalTransactionContainment清理中回滚

资源数据源在LocalTransactionContainment清理中回滚
EN

Stack Overflow用户
提问于 2010-07-02 06:25:28
回答 2查看 18.4K关注 0票数 4

我在WebSphere应用服务器7、JDK1.6和Oracle11g中工作。

当使用ejb时,Im总是收到此错误。

7/1/10 17:12:28:770 BOT 00000013 LocalTranCoor W WLTC0033W: Resource /oraDS11 11在清理LocalTransactionContainment时回滚。7/1/10 17:12:28:773 BOT 00000013 LocalTranCoor W WLTC0032W:在清理LocalTransactionContainment期间回滚了一个或多个本地事务资源。

这就是我是如何从WAS中的数据源获取连接的。

代码语言:javascript
复制
javax.sql.DataSource ds = (javax.sql.DataSource) naming.lookup("DataSource");
conn= ds.getConnection();

任何帮助都将不胜感激..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-04 21:55:02

根据错误消息,您正在本地事务中做一些工作,而没有提交。未提交的工作将由容器在方法的末尾回滚(默认情况下)。

这个对WAS6.0中的数据源回滚的回答很好地总结了所有这些,并且由于没有真正的意义来解释它,我在下面引用它。

LocalTransactionContainment是在没有全局(XA)事务的情况下得到的。该消息指示您执行了一些本地事务工作,作为包含作用域(方法或活动会话)的一部分,然后没有提交。默认行为(由未解决的-操作控制)是在作用域结束时回滚任何未实现的工作。你有很多选择:

  • 显式提交本地事务 connection.commit();//在完成工作后
  • 更改数据源以使用自动提交。 Connection.setAutoCommit(真);// 在使用连接之前
  • 将工作放在全局事务中。 上下文ic =新的InitialContext();UserTransaction ut = (UserTransaction) ic.lookup("java:comp/UserTransaction");ut.begin();// use connection此处ut.commit();
  • 将未解决的操作更改为提交 选择部署描述符编辑器上的“servlet”选项卡,然后选择问题中的servlet。在“WebSphere扩展”下,然后“本地事务”从下拉菜单中将“未解决的操作”设置为“提交”。

我建议明确地提交这项工作(并阅读整个答案)。

票数 6
EN

Stack Overflow用户

发布于 2011-12-29 05:52:09

此异常发生在表被锁定时,因此您已经将表锁定在数据库中,因此释放该锁并提交您所做的任何更改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3163636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档