2011-07-27 81 views
0

我一直在使用Axis2来引发我的Web服务。我的一些服务是交易的一部分 - 即无论是全部还是全部都不必执行。WS-AtomicTransaction与Axis2

为了解决我的问题,我一直在阅读关于Web上的WS-AT规范。但是我无法弄清楚如何配置和使用Axis2的这个特性。任何人都可以请分享如何开始?任何支持代码都会很好。

谢谢!

+0

您是否找到解决方案/例如?我正在寻找相同的...! – SJunejo

回答

2

您可能会更好地使用特定应用程序服务器供应商提供的JAX/WS实现。你可以看到诸如this的教程。

需要注意的一件事是分布式事务看起来非常有吸引力,但它们确实增加了相当大的操作复杂性,尤其是在故障情况下。

  1. 事务管理器的事务日志对于管理系统之间的一致性变得至关重要。丢失这些日志,你有可能失去交易结果的知识。
  2. 您将介绍可能具有不同可用性特征的系统之间的耦合。在正确(或错误)时间发生系统故障将导致数据库锁定保留在一个系统中,直到所有系统恢复到服务状态。具体而言,在两阶段协议中,资源(例如数据库)在阶段1“投票”之后,它不能解决交易,直到交易管理者通过收集所有参与者的投票决定交易的总体命运。如果一个参与者无法恢复一段时间,那么该交易持有的所有锁定都会保留此时间。唯一的解决方法是手动干预(操作复杂性)和潜在的不一致性。

总之,我不愿意推荐在不同运营领域(如不同公司或不同地区)的系统之间使用分布式事务。

+0

感谢您的提示,我将尽力避免这种设计。我无法使用你在帖子中提到的工具 - 它不能用于第2轴? – WinOrWin

+1

根据Axis 2的网站可以完成,但我没有找到任何例子。 – djna

+0

他们是否支持WS-Atomic交易的任何开源平台?他们是否有替代WS-Atomic交易的建议? – Abbadon