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

Hey @dreamoka ,

I haven’t tried this out w/ Camel & AMQP but I think there are two paths forward here:

  1. Test out using “CACHE_CONSUMER” as your cacheLevelName
  2. Try using the  CachingConnectionFactory  as it very widely used by Solace & JMS users.

Hope that helps!

Your error from the broker says “not implemented”. Something you or Camel is trying to do via AMQP is not implemented by the Solace broker. If just using Camel, why not use Camel with the Solace JMS API?

@marc.dipasquale 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.

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.

Awesome, good troubleshooting @Aaron !

Hey @dreamoka hopefully this answers your question! and FYI I updated your original post to code format your code blocks