如何在weblogic服务器的主题中创建消息先进先出

How to make messages in a topic in weblogic server first in first out

我正在使用 Oracle 融合中间件 12.1.3。 Weblogic 服务器 12.1.3 和 OSB 12.1.3。 我创建了 1 个连接工厂和一个主题。我有一个生产者向主题发送消息和 3 个消费者(订阅者)

我还设置了重新投递失败设置(每半小时重试 3 次),以防出现连接错误或网络问题,消息将写回主题并重试。 但我想确保按照接收消息的顺序重试消息。 例如,主题中有 3 条消息(消息 1、消息 2、消息 3),其中一个订阅者无法使用该消息,因此该消息在主题中处于待处理状态,将被重试。 但我希望它以相同的顺序重试,即消息 1、消息 2 和消息 3。

是否需要在 weblogic 或 OSB 中进行任何特定设置才能实现此行为

您是否尝试过使用 weblogic-specific Unit of Order feature

What Is Message Unit-Of-Order?

Message Unit-of-Order is a WebLogic Server value-added feature that enables a stand-alone message producer, or a group of producers acting as one, to group messages into a single unit with respect to the processing order. This single unit is called a Unit-of-Order and requires that all messages from that unit be processed sequentially in the order they were created.

您可以通过编程方式配置它以获得更多控制,或者如果您无法控制生成的消息,则可以通过管理方式(通过 WLS 控制台、将一个连接工厂附加到连接工厂等)进行配置。

有关如何附加 JMS headers 以启用它的详细信息,您可能会发现 this site 有用。