繁体   English   中英

EJB事务回滚异常

[英]EJB transaction rolled back exception

我使用ejb-2我得到以下异常。 有人可以告诉我它是什么意思,以及可能的解决办法是什么:

错误(致命):EJB异常:; 嵌套异常是:
javax.ejb.TransactionRolledbackLocalException:提交事务时出错:; 嵌套异常是:
weblogic.transaction.internal.AppSetRollbackOnlyException

试着找出真正的例外情况。 为此,请将您的ejb转换为使用bean管理的事务。 然后你可以手动提交,并可以捕获提交抛出的异常。

WebLogic喜欢隐藏使用容器管理事务时在提交阶段抛出的异常。 通常原因是EJB层不知道的数据库约束,例如。 Oracle中基于函数的唯一索引。

您应该将更改刷新到数据库,然后ejb可能会向您显示真正的异常。 如果不起作用,请将flush置于可能导致异常的点。 通过这种方式,您可以保证找到真实的位置,也可以找到异常的真正原因。

我也面临同样的问题。 我只是想和大家分享一下我的经历。 在上述例外中没有提到实际的例外是正确的。 为了揭示该异常,我使用了wlspy.jar工具。 使用此工具,我在配置的日志文件中获得了内部sql活动。 由于这个我得到了隐藏的sql约束异常。 配置步骤:1)在weblogic服务器类路径中添加wlspy.jar。 2)在数据库源中添加与wlspy相关的配置。

例如:

JDBC:BEA:DB2:// db2host:50000; spyAttributes =(日志=(文件)/opt/bea/logs/mySpy.log;timestamp=yes)

之后重新启动weblogic服务器并执行活动。 您将在mySoy.log文件中获取与数据库相关的日志。 在我的情况下,我得到了实际的约束异常。

浏览此链接: http//docs.oracle.com/cd/E21764_01/web.1111/e13753/spy.htm#JDBCD469

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM