繁体   English   中英

一条消息驱动bean将一条JMS消息处理两次。

[英]One JMS message is processed twice by a Message driven bean

问题:

Java“消息驱动的Bean”实例不止一次在同一时间仅处理一条消息(放入JMS队列)。

如何确保“消息驱动Bean”仅处理一条消息。

我已经在Weblogic 12c中部署了Java消息驱动Bean,如下所示。

MDB

    @MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
            @ActivationConfigProperty(propertyName = "connectionFactoryJndiName", propertyValue = "jms/notConnectionFactory"),
            @ActivationConfigProperty(propertyName = "destinationJndiName", propertyValue = "jms/notScannerQueue")
    })
    public class AttachmentMDB implements MessageListener {

如果我们停留在消息驱动领域,则取决于确认模式: AUTO_ACKNOWLEDGEDUPS_OK_ACKNOWLEDGE

如果您使用DUPS_OK_ACKNOWLEDGE ,则在以后的阶段将确认发送给客户端。 在这种情况下,消息可能会被处理两次。

使用AUTO_ACKNOWLEDGE可以简化客户端(消息生产者),直到代理(消息消费者)确认已收到消息为止。 这具有明显的效果,即消息仅被处理一次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM