[英]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_ACKNOWLEDGE
或DUPS_OK_ACKNOWLEDGE
。
如果您使用DUPS_OK_ACKNOWLEDGE
,则在以后的阶段将确认发送给客户端。 在这种情况下,消息可能会被处理两次。
使用AUTO_ACKNOWLEDGE
可以简化客户端(消息生产者),直到代理(消息消费者)确认已收到消息为止。 这具有明显的效果,即消息仅被处理一次。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.