我们在消息驱动的bean级别遇到了一个问题。也就是说,当多个消息同时到达MDB
时,将无序处理。
例如:
邮件的原始顺序:Message 1, Message 2, Message 3
但是在应用程序级别onMessage()
方法中,我们收到的邮件顺序不正确。
例如:Message 2, Message 1, Message 3
我们在EJB3
使用MDB
消息驱动注释,Jboss
版本为Jboss EAP 6.4
,我们使用HornetQ
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/Queue1"),
@ActivationConfigProperty(propertyName = "subscriptionDurability", propertyValue = "Durable"),
@ActivationConfigProperty(propertyName = "reconnectAttempts", propertyValue = "-1"),
@ActivationConfigProperty(propertyName = "minSessions", propertyValue = "1"),
@ActivationConfigProperty(propertyName = "maxSessions", propertyValue = "1"),
@ActivationConfigProperty(propertyName = "maxMessagesPerSessions", propertyValue = "1"),
@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge")}, name = "MessageDrivenBeanEJB")
但要求是消息到达Jboss
应用服务器收到的应用程序原始订单。
如何排除这个?
答案 0 :(得分:0)
HornetQ的配置属性名称不正确。尝试
@ActivationConfigProperty(propertyName = "maxSession", propertyValue = "1"),
你应该找出你指定的其他哪些对HornetQ是正确的,因为它们看起来像是早期JBoss Messaging化身的参数。