gpt4 book ai didi

java - Azure 服务总线队列 - JMS 消息监听器调用程序设置因目标异常而失败

转载 作者:太空宇宙 更新时间:2023-11-04 12:38:49 24 4
gpt4 key购买 nike

我能够连接并使用来自 Azure 服务总线队列的消息。但是在消息处理过程中随机出现以下错误。错误出现后,看起来消息要么没有被进一步使用,要么被推送到 DLQ。重新启动监听器应用程序会导致出现相同的异常。

我正在将 Spring DefaultMessageListenerContainer 与 Apache Qpid 结合使用

2016-05-05 01:49:36.303 WARN 14716 — [nerContainer-61] o.s.j.l.DefaultMessageListenerContainer : Setup of JMS message listener invoker failed for destination 'org.apache.qpid.amqp_1_0.jms.impl.QueueImpl@5f61cba7' - trying to recover. Cause: Timeout waiting for attach

Unknown endpoint Transfer{handle=0,deliveryId=36,deliveryTag=P\xb8)T\xd9\xea%A\x95\xe5Fj]\x91\x00\x15,messageFormat=0,more=false,batchable=true} Unknown endpoint Transfer{handle=0,deliveryId=36,deliveryTag=\xdc\x9b\x9d\xf5\x817\x9bO\x97.\x19\xeam<\x00\x81,messageFormat=0,more=false,batchable=true}

javax.jms.IllegalStateException: Closed at org.apache.qpid.amqp_1_0.jms.impl.SessionImpl.checkClosed(SessionImpl.java:326) at org.apache.qpid.amqp_1_0.jms.impl.SessionImpl.getTransacted(SessionImpl.java:222) at org.springframework.jms.listener.AbstractMessageListenerContainer.commitIfNecessary(AbstractMessageListenerContainer.java:757) at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:665) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:315) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:253) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1158) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1052) at java.lang.Thread.run(Unknown Source)

更新:

`public DefaultMessageListenerContainer messageListenerContainer() throws NamingException {
DefaultMessageListenerContainer messageListenerContainer = new DefaultMessageListenerContainer();
messageListenerContainer.setConnectionFactory(connectionFactory());
Destination queue = (Destination) context.lookup("STORAGE_NEW_QUEUE");
messageListenerContainer.setDestination(queue);
messageListenerContainer.setConcurrency(concurrency);
messageListenerContainer.setSessionAcknowledgeMode(Session.CLIENT_ACKNOWLEDGE);
messageListenerContainer.setCacheLevel(DefaultMessageListenerContainer.CACHE_SESSION);
messageListenerContainer.setErrorHandler(new EDIMessageErrorHandler());
MessageListenerAdapter adapter = new MessageListenerAdapter();
adapter.setDelegate(new EDIMessageListener());
adapter.setDefaultListenerMethod("onMessage");
messageListenerContainer.setMessageListener(adapter);
return messageListenerContainer;
}`

请告知可能出现的问题。

谢谢

最佳答案

在没有任何代码的情况下,我不确定是什么原因导致了该问题。

不过,有一个官方文档Service Bus messaging exceptions其中列出了 Microsoft Azure 服务总线消息传递 API 生成的一些异常,以及 Exception types 部分列出消息传递异常类型及其原因,并注明您可以采取的建议操作。我想你可以引用它来检查你的问题。

根据异常信息未知端点,根据我的异常,我认为原因可能是在AMQP与QPID连接的配置中。我搜索了可能的原因,并得到了有用的链接 https://mail-archives.apache.org/mod_mbox/qpid-users/201009.mbox/%3[email protected]%3E 。希望对您有所帮助。

您能分享一下投资该问题的关键代码吗?

如有任何疑问,请随时告诉我。

关于java - Azure 服务总线队列 - JMS 消息监听器调用程序设置因目标异常而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37038803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com