我正在使用JCA为传统EIS编写入站资源适配器。
EIS不支持XA交易。然而,消息形成了存在多个消息的对话。每条消息都会导致一个将由消息端点执行的操作。
在对话结束时,将收到提交/回滚消息。此时,所有操作都应该提交或回滚。
我是否有办法在RA内部管理生命周期?
答案 0 :(得分:1)
我可以自己回答我的问题。
调用ResourceAdapter.start()时,提供的BootstrapContext包含一个XATerminator。此终结器公开了生命周期方法。
见
http://docs.oracle.com/javaee/6/api/javax/resource/spi/ResourceAdapter.html http://docs.oracle.com/javaee/6/api/javax/resource/spi/BootstrapContext.html
准备好执行工作时,生成一个XID,在ExecutionContext上设置它并将该执行上下文传递给工作管理器。 (您可能需要实现自定义XID实现)
请参阅jca 1.6规范的 15交易流入章节。