Details

  • User impact:
    High
  • Configuration:
    Hide

    <service name="test-queue-cf">
    <inbound>
    <jms:inbound-endpoint ref="b-in">
    <jms:transaction action="ALWAYS_BEGIN"/>
    </jms:inbound-endpoint>
    </inbound>
    <outbound>
    <pass-through-router>
    <jms:outbound-endpoint ref="b-out">
    <jms:transaction action="ALWAYS_JOIN"/>
    </jms:outbound-endpoint>
    </pass-through-router>
    </outbound>
    <default-service-exception-strategy>
    <commit-transaction

    exception-pattern="org.mule.transport.jms.MessageRedeliveredException"/>
    <jms:outbound-endpoint queue="dead.letter" synchronous="true">
    <jms:transaction action="ALWAYS_JOIN"/>
    </jms:outbound-endpoint>
    </default-service-exception-strategy>
    </service>

    Show
    <service name="test-queue-cf"> <inbound> <jms:inbound-endpoint ref="b-in"> <jms:transaction action="ALWAYS_BEGIN"/> </jms:inbound-endpoint> </inbound> <outbound> <pass-through-router> <jms:outbound-endpoint ref="b-out"> <jms:transaction action="ALWAYS_JOIN"/> </jms:outbound-endpoint> </pass-through-router> </outbound> <default-service-exception-strategy> <commit-transaction exception-pattern="org.mule.transport.jms.MessageRedeliveredException"/> <jms:outbound-endpoint queue="dead.letter" synchronous="true"> <jms:transaction action="ALWAYS_JOIN"/> </jms:outbound-endpoint> </default-service-exception-strategy> </service>
  • Log Output:
    Hide
    org.mule.transport.jms.MessageRedeliveredException: "Message with id
    "ID:5" has been redelivered "2740" times, which exceeds the
    maxRedelivery setting of 0 on the connector muleMQJmsQueueConnector.
    Message with id "335866ab-d62c-11de-ba0e-15cb21553c4f" has been marked
    for redelivery, this usually happens after a transaction rollback.
    Message payload is of type: BytesMessageImpl
           at org.mule.transport.jms.JmsXRedeliveryHandler.handleRedelivery(JmsXRedeliveryHandler.java:108)
           at org.mule.transport.jms.MultiConsumerJmsMessageReceiver$JmsWorker.preProcessMessage(MultiConsumerJmsMessageReceiver.java:377)
           at org.mule.transport.AbstractReceiverWorker$1.doInTransaction(AbstractReceiverWorker.java:98)
           at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:99)
           at org.mule.transport.AbstractReceiverWorker.doRun(AbstractReceiverWorker.java:130)
           at org.mule.transport.AbstractReceiverWorker.run(AbstractReceiverWorker.java:62)
           at org.mule.work.WorkerContext.run(WorkerContext.java:310)
           at org.mule.work.SyncWorkExecutor.doExecute(SyncWorkExecutor.java:41)
           at org.mule.work.MuleWorkManager.executeWork(MuleWorkManager.java:288)
           at org.mule.work.MuleWorkManager.doWork(MuleWorkManager.java:181)
           at org.mule.transport.jms.MultiConsumerJmsMessageReceiver$SubReceiver.onMessage(MultiConsumerJmsMessageReceiver.java:324)
    Show
    org.mule.transport.jms.MessageRedeliveredException: "Message with id "ID:5" has been redelivered "2740" times, which exceeds the maxRedelivery setting of 0 on the connector muleMQJmsQueueConnector. Message with id "335866ab-d62c-11de-ba0e-15cb21553c4f" has been marked for redelivery, this usually happens after a transaction rollback. Message payload is of type: BytesMessageImpl        at org.mule.transport.jms.JmsXRedeliveryHandler.handleRedelivery(JmsXRedeliveryHandler.java:108)        at org.mule.transport.jms.MultiConsumerJmsMessageReceiver$JmsWorker.preProcessMessage(MultiConsumerJmsMessageReceiver.java:377)        at org.mule.transport.AbstractReceiverWorker$1.doInTransaction(AbstractReceiverWorker.java:98)        at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:99)        at org.mule.transport.AbstractReceiverWorker.doRun(AbstractReceiverWorker.java:130)        at org.mule.transport.AbstractReceiverWorker.run(AbstractReceiverWorker.java:62)        at org.mule.work.WorkerContext.run(WorkerContext.java:310)        at org.mule.work.SyncWorkExecutor.doExecute(SyncWorkExecutor.java:41)        at org.mule.work.MuleWorkManager.executeWork(MuleWorkManager.java:288)        at org.mule.work.MuleWorkManager.doWork(MuleWorkManager.java:181)        at org.mule.transport.jms.MultiConsumerJmsMessageReceiver$SubReceiver.onMessage(MultiConsumerJmsMessageReceiver.java:324)
  • Similar Issues:
    None

Description

If a JMS message is redilvered multiple times mule throws org.mule.transport.jms.MessageRedeliveredException. However the Service Exception strategy that gets called does not have the endpoints or transaction information configured on the service. look at config.

Activity

Hide
Mateo Almenta Reca added a comment -

We need to make sure this case is also covered with the new exception handling model in Mule 3

Show
Mateo Almenta Reca added a comment - We need to make sure this case is also covered with the new exception handling model in Mule 3

People

Vote (3)
Watch (2)

Dates

  • Created:
    Updated:
    Resolved: