问题
I have a quartz scheduler configured as shown below.
<quartz:inbound-endpoint jobName="retryJob" repeatInterval="5000" cronExpression="0 0/1 * * * ?">
<quartz:endpoint-polling-job>
<quartz:job-endpoint ref="retryQueue"/>
</quartz:endpoint-polling-job>
</quartz:inbound-endpoint>
<flow-ref name="callMySubFlow" />
<choice-exception-strategy>
<catch-exception-strategy when="groovy:message.getInvocationProperty('next') == 'DONE'">
<logger level="INFO" message="DONE"/>
</catch-exception-strategy>
<rollback-exception-strategy>
<on-redelivery-attempts-exceeded>
<logger level="INFO" message="Redelivery Exceeded. Done with retries."/>
</on-redelivery-attempts-exceeded>
</rollback-exception-strategy>
</choice-exception-strategy>
<jms:connector name="queueConnectorU" connectionFactory-ref="MQConnectionFactoryU" specification="1.1" username="me" password="p" numberOfConsumers="5" maxRedelivery="3"/>
<jms:endpoint name="retryQueue" queue="retryQ" connector-ref="queueConnectorU">
<ee:multi-transaction action="ALWAYS_BEGIN" />
</jms:endpoint>
I have an intentional service not found exception in subflow and expect the message to be retried 3 times and commited, but the message is never removed from the queue...infinite loop.
Is there anything wrong with the configuration?
来源:https://stackoverflow.com/questions/18597143/mule-quartz-endpoint-not-commiting-transaction