How to solve this error: Received disposition with role=receiver
I using AMQP Camel to read message from Queue A, add header to the message and send to topic B. There will be 200 message every 300 millisecond. Based on the log file, the JMS MessageConsumer closed every 1 seconds. I don't know why. Can someone give me hint how to prevent the MessageConsumer to close ?
Camel Route
<routeContext id="test-context" xmlns="http://camel.apache.org/schema/spring">
<route id="route-test">
<from uri="amqp:queue:Q/A?concurrentConsumers=10&maxConcurrentConsumers=10"/>
<setHeader name="TEST_HEADER">
<constant>TEST1234</constant>
</setHeader>
<toD uri="amqp:topic:b"/>
</route>
</routeContext>
Log File
13:48:14.829 [QpidJMS Connection Executor: ID:5a8c0a33-724e-47c1-a243-6a2c724f8222:1] INFO org.apache.qpid.jms.JmsSession - A JMS MessageConsumer has been closed: JmsConsumerInfo: { ID:5a8c0a33-724e-47c1-a243-6a2c724f8222:1:9:1, destination = Q/test/handlingmessage }
13:48:14.839 [Camel (ems-camel) thread #9 - JmsConsumer[Q/test/handlingmessage]] WARN org.apache.camel.component.jms.DefaultJmsMessageListenerContainer - Setup of JMS message listener invoker failed for destination 'Q/test/handlingmessage' - trying to recover. Cause: Received disposition with role=receiver delivery-id=128 settled=true: unsupported outcome=modified [condition = amqp:not-implemented
Comments
-
Hey @dreamoka,
I haven't tried this out w/ Camel & AMQP but I think there are two paths forward here:
- Test out using "CACHE_CONSUMER" as your cacheLevelName
- Try using the CachingConnectionFactory as it very widely used by Solace & JMS users.
Hope that helps!
0 -
@marc I also faced the same error when using CACHE_CONSUMER and CachingConnectionFactory.
@Aaron My partner and I decided to use AMQP protocol. He is using Camel AMQP. He told me he has problem in consuming the message from my queue.
The connection is up and down. He told me that he saw "Cause: Received disposition with role=receiver delivery-id=128 settled=true: unsupported outcome=modified [condition = amqp:not-implemented" in the log file. I decided to test on my end and found out that i also faced the same issue.
May i know what is "outcome=modified" ? I wonder is it related to the TTL of the message. As i put 1 seconds to the message. The error will not occurred if i turn off the "Respect TTL" in the queue setting.
0 -
Ah, ok. Looking here at the AMQP spec:
There are a number of outcomes specified. Solace doesn't support "modified". A message on a queue can't be changed/updated by anyone, consumer or publisher. Only "accepted", "rejected", or "released" outcomes are supported by Solace. So you'll have to update your Camel config to not try to do a "modified".
EDIT: check out protocol conformance page here:
and look for section 3.4.1