wrs*_*der 8 jms glassfish message-driven-bean ejb-3.1 glassfish-3
完成以下任务的最佳方法是什么?
我能想到的几个方法可能会工作.还有其他什么,哪个最好?
使用@TransactionManagement(type=BEAN)
和UserTransaction
,并在捕获异常后显式回滚.例如:
catch (Exception e) {
e.printStackTrace();
utx.rollback();
}
使用容器管理的事务,指定@TransactionAttribute(value=NOT_SUPPORTED)
上onMessage
然后委托DB活动与一个单独的方法@TransactionAttribute(value=REQUIRED)
.
保留事务处理,并在服务器中重新配置重试属性.我正在使用Glassfish 3.1.1,我不确定如何设置它.
保留所有内容并明确检查消息是否在正文中重新发送,onMessage
如果重新发送则退出.(message.getJMSRedelivered()
?)
什么运作良好?有没有一种标准/最佳实践方法来处理这个问题?
最简单,最便携的方法是@TransactionAttribute(value=NOT_SUPPORTED)
在onMessage()
您声明并将数据库工作移动到另一个bean时使用@TransactionAttribute(REQUIRES_NEW)
请注意单独的方法方法,因为这不起作用.在JMS MDB中,该onMessage()
方法是@TransactionAttribute
可以使用的唯一方法.
归档时间: |
|
查看次数: |
1819 次 |
最近记录: |