我使用spring integration int-jms:message-driven-channel-adapter
来消耗来自安慰队列的消息。
我在服务器日志中看到下面提到的错误
org.springframework.jms.listener.DefaultMessageListenerContainer- Execution of JMS message listener failed, and no ErrorHandler has been set.
javax.jms.TransactionRolledBackException: Error comitting - transaction rolled back (Transaction '12427' unexpectedly rolled back during commit attempt. (((Client name: xxxx.yyyy.com/7034/#0002000a Local addr: 123123 Remote addr: aaa.bbb.com:12345) - ) com.solacesystems.jcsmp.JCSMPErrorResponseException: 503: Message Consume Failure [Subcode:48]))
JMS配置如下所述
<int-jms:message-driven-channel-adapter
id="IdMessageDrivenChannelAdapter" send-timeout="5000"
max-messages-per-task="-1"
idle-task-execution-limit="100"
max-concurrent-consumers="2"
connection-factory="appCachedConnectionFactory" destination="appInQueue"
channel="reqChannel" error-channel="errorChannel"
acknowledge="transacted" />
任何解决此错误的指针都会非常有用。
答案 0 :(得分:1)
错误表示在事务期间无法使用消息。错误的原因可能是许多不同的问题,例如消息被删除/过期,或者队列未找到或关闭。
您可以分析其余的API日志或Solace路由器上的事件日志,以找出无法使用该消息的原因。
您在评论中链接的子代码文档是指Solace .NET API。要查看错误及其子代码列表以及JCSMP错误的说明,请参阅此处的文档: http://docs.solace.com/API-Developer-Online-Ref-Documentation/java/constant-values.html