代码之家  ›  专栏  ›  技术社区  ›  Dark Castle

ejb web服务事务

  •  0
  • Dark Castle  · 技术社区  · 16 年前

    我们有一些产品使用各种形式的web服务进行通信。有些使用直接通过http请求传递的xml(httpclient)。其他人进行远程ejb调用,一些人在ejb会话bean方法上使用ejb 3 web服务。在httpclient版本中,我们遇到了这样的问题:远程端需要10多分钟才能完成数据库操作,而调用者超时。此时调用方不知道数据是否在远程端生成。有时我们会在远程端插入数据,但调用方超时并回滚,因为它不能确定状态。

    我知道解除这两者的耦合并在两者之间放置jms这样的消息传递层将允许我们保证传递并且不阻塞,但是之后我们将不得不编写大量额外的代码来检查事务是否在远程端完成或失败。这绝对是一个选项,但是有没有什么好的解决方案来写这个,在两端之间有一个握手,整个事务将失败,无论是由于异常、超时还是网络问题,在两个应用程序之间的交互结束时我知道整个交易是成功还是失败?这个远程ejb sessionbean方法调用的唯一/最佳选项是什么?

    1 回复  |  直到 16 年前
        1
  •  2
  •   Community Mohan Dere    9 年前

    听起来你需要一个ws-at实现。阅读讨论 Transaction rollback and web services