【发布时间】:2026-01-13 00:00:01
【问题描述】:
与我关于 jca 入站事务管理的问题有关。 How to control XAResource in inbound jca resource adapter for conversational transaction?
对于入站资源适配器,我需要保持事务打开并在该事务中执行不同的操作。
这可以通过使消息端点@Stateful 来解决,但我不清楚这是否允许。
3.1 EJB 规范声明(第 5.1 节)
消息驱动的 bean 实例没有会话状态。这意味着所有 bean 实例在不参与服务客户端消息时都是等效的。
我发现 TomiTribe(TomEE 之后的公司)的创始人 David Blevins 发的帖子说这是允许的。 https://github.com/dblevins/jca-quickstart/wiki/Inbound-Connectors-MDBs-Today
另一种方法是尝试自己管理 XAResrouce,但还没有运气......
编辑: 请注意,JCA 规范声明(第 13.5 节)
请注意,由 createEndPoint 方法调用提供的端点实例是 实现端点消息侦听器类型的代理和 MessageEndpoint 接口,它不是实际的端点。
因此,afaik 无法保证每次通过代理时实际的侦听器都是相同的。
【问题讨论】:
标签: ejb message-driven-bean jca stateful