在 CICS 中,我们有一个叫做 ENQ 命令的东西,它对于基于期望值的单线程很有用。同样,我们在 Websphere 中有什么东西吗?即,我希望我的 MDB 从输入队列中读取多条消息。但是我想严格按照收到的顺序处理消息。将激活规范属性中的“服务器会话”的值设置为 1 将实现此目的,但我想在我的 MDB 中以编程方式进行
问问题
257 次
1 回答
1
下面是来自JMS 1.1 规范的引用。似乎只有在您从单个会话中发送消息时才能保证排序;在这种情况下,会话输入消息流将被排序。由于不存在限制会话数的 API,我猜您必须依赖服务器设施来进行此配置。
4.4.10 消息顺序 JMS 客户端需要了解什么时候可以依赖消息顺序,什么时候不能。
4.4.10.1 消息接收顺序 会话使用的消息定义了一个串行顺序。这个顺序很重要,因为它定义了消息确认的效果。有关详细信息,请参见第 4.4.11 节“消息确认”。每个会话消费者的消息交错在会话的输入消息流中。JMS 定义会话发送到目的地的消息必须按照它们发送的顺序被接收(参见第 4.4.10.2 节“消息发送的顺序”,了解一些限定)。这定义了会话输入消息流的部分排序约束。JMS 没有定义跨目标或跨从多个会话发送的目标消息的消息接收顺序。会话输入消息流顺序的这一方面与时间相关。它不受应用程序控制。
于 2013-07-30T19:58:55.297 回答