如何“做某事”在 EJB3 事务提交之后?
EJB3 中是否有某些东西允许我在事务提交后执行一些代码(我想发送 XMPP 消息以通知外部设备进行更新)?
我知道我可以使用 JTA API 并获取我自己编写的 XA 资源来执行类似的操作,但我感觉这不是正确的工具。
谢谢
Is there something in EJB3 that allows me to execute some code just after the transaction commit (I want to send XMPP messages to notify external devices for updates) ?
I know I can do something like that using JTA API and enlisting my own writed XA resource but I have the feeling that's it's not the right tool.
Thx
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
创建一个实现 javax.ejb.SessionSynchronization 的有状态会话 bean,并从事务中调用方法。将使用事务结果调用 afterCompletion 方法。
更新:如果您使用 EJB 3.1,您可以使用 @AfterCompletion 注释 SFSB 的方法,而不是实现接口。
Create a stateful session bean that implements javax.ejb.SessionSynchronization, and call a method from within the transaction. The afterCompletion method will be called with the outcome of the transaction.
Update: if you're using EJB 3.1, you can annotate a method of the SFSB with @AfterCompletion rather than implementing the interface.