【发布时间】:2013-11-12 12:14:23
【问题描述】:
我正在开发一个 SOA 系统来处理来自外部系统的消息。外部消息按应有的确切顺序出现。问题出现在我的处理系统部分。例如,我有消息 message_1、message_2、message_3、message_4。除 message_1 之外的所有消息都依赖于 message_1。但由于消息是异步处理的,因此存在 message_2 或 message_3 在 message_1 之前执行的情况。这些案例包括繁重的任务,包括访问数据库,因此在完成执行之前可能会有多次延迟。此外,这些任务是在集群系统上执行的。因此,当安装在这些系统上时,问题变得更加广泛。然而,好消息是消息队列系统(在我们的例子中是 JMS)是一个适用于所有集群系统的系统,它是全局的。
所以问题是: 对于在集群或异步系统上处理相互依赖的消息或数据的此类问题,是否有任何好的用例或解决方案?也许有锁定任何资源(文件、数据库或 ejb/锁定对象)的解决方案?还是锁定 JMS 消息?
使用的技术有: 带有 BPEL 的 Oracle SOA 套件、Java EE 6、Oracle OSB、带有 JMS 的 Oracle WebLogic 10.3、Oracle DB 11g、JDeveloper 11。
任何帮助将不胜感激。提前致谢。
【问题讨论】:
标签: jakarta-ee cluster-computing bpel osb oracle-soa