0

我正在开发一个 SOA 系统来处理来自外部系统的消息。外部消息按应有的确切顺序出现。问题出现在我的处理系统部分。例如,我有消息 message_1、message_2、message_3、message_4。除 message_1 之外的所有消息都依赖于 message_1。但由于消息是异步处理的,因此存在 message_2 或 message_3 在 message_1 之前执行的情况。这些案例包括繁重的任务,包括访问数据库,因此在完成执行之前可能会有多次延迟。此外,这些任务是在集群系统上执行的。因此,当安装在这些系统上时,问题变得更加广泛。然而,好消息是消息队列系统(在我们的例子中是 JMS)是一个适用于所有集群系统的系统,它是全局的。

所以问题是:对于在集群或异步系统上处理相互依赖的消息或数据的此类问题,是否有任何好的用例或解决方案?也许有锁定任何资源(文件、数据库或 ejb/锁定对象)的解决方案?或锁定 JMS 消息?

使用的技术有:Oracle SOA Suite with BPEL、Java EE 6、Oracle OSB、Oracle WebLogic 10.3 with JMS、Oracle DB 11g、JDeveloper 11。

任何帮助,将不胜感激。提前致谢。

4

1 回答 1

0

您可以使用中介对消息重新排序,这里是 Oracle 开发人员指南右侧部分的链接http://docs.oracle.com/cd/E17904_01/integration.1111/e10224/med_resequencer.htm

于 2013-11-28T06:29:10.837 回答