Websphere应用程序中的单线程

Websphere应用程序中的单线程,websphere,Websphere,在CICS中,我们有一个称为ENQ命令的命令,它对于基于所需值的单线程非常有用。类似地,我们在Websphere中有什么吗? 例如,我希望我的MDB从输入队列读取多条消息。但是,我希望严格按照收到的顺序处理消息。将activation spec属性中的“Server session”的值设置为1将实现这一点,但我希望在我的MDB中以编程方式实现这一点。似乎只有当您从单个会话发送消息时,才能保证排序;在这种情况下,会话输入消息流将被排序。由于不存在用于限制会话计数的API,我想您必须依赖服务器设施

在CICS中,我们有一个称为ENQ命令的命令,它对于基于所需值的单线程非常有用。类似地,我们在Websphere中有什么吗? 例如,我希望我的MDB从输入队列读取多条消息。但是,我希望严格按照收到的顺序处理消息。将activation spec属性中的“Server session”的值设置为1将实现这一点,但我希望在我的MDB中以编程方式实现这一点。似乎只有当您从单个会话发送消息时,才能保证排序;在这种情况下,会话输入消息流将被排序。由于不存在用于限制会话计数的API,我想您必须依赖服务器设施进行此配置

4.4.10消息顺序JMS客户端需要了解何时可以依赖消息顺序,何时不能

4.4.10.1会话消耗的消息接收消息的顺序 定义一个序列顺序。这个顺序很重要,因为它定义了 消息确认的效果。见第4.4.11节“信息 “致谢”,了解更多详情。每种类型的消息 会话的使用者在会话的输入消息中交错 流动JMS定义会话发送到目标的消息 必须按照发送顺序接收(参见第节 4.4.10.2“消息发送顺序”,用于一些限定)。这定义了会话输入消息的偏序约束 流动JMS不定义消息接收的顺序 目的地或通过从多个站点发送的目的地消息 会议。会话输入消息流顺序的这一方面是 取决于时间它不受应用程序控制


我想我会以不同的方式提出我的要求。下面是:两条消息到达MDB的两个不同实例。这些消息包含一个引用ID(使用引用ID更新数据库)。因此,我希望一次处理一条消息,即对引用ID发出锁,处理第一条消息,然后处理第二条消息。当然,带有不同引用ID的消息将由其他线程处理。