在集群系统上处理队列消息(例如,WebLogic 中的 JMS)



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

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

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

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

您可以使用

调解器对消息进行重新排序,这里是指向预言机开发人员指南右侧部分的链接 http://docs.oracle.com/cd/E17904_01/integration.1111/e10224/med_resequencer.htm

相关内容

最新更新