Broker Redelivery Plugin doesn't use configured Persistence Adapter
Issue
We're using the Broker Redelivery Plugin as detailed at 1 and 2. We're also using the jdbcPersistenceAdapter.
We've discovered that when a JMS transaction is rolled back, the Broker Redelivery Plugin uses a scheduled job to provide the redelivery functionality. Scheduled jobs are persisted using KahaDB instead of the configured JDBC Persistence Adapter. This is not ideal because our message persistence is now split across two datasources - the JDBC database (for messages awaiting initial delivery) and the KahaDB for messages awaiting redelivery.
Given this, I have a few questions:
- Why is the jdbc persistence adapter not being used for scheduled message redelivery? Are there any plans for this to be used in future releases?
- Is there anyway we can see how many messages are scheduled for re-delivery per queue? At the moment the best we can do is get the number of scheduled jobs via JMX, which is not queue-specific. Is it possible to programmatically query the KahaDB to inspect the scheduled redelivery jobs?
Can I also recommend that the documentation for Broker Plugin is updated to make it clear that the configured persistence adapter is not currently used for messages awaiting redelivery.
- We have configured JDBC as persistence storage but the AMQ scheduler is storing the messages in KahaDB. Does AMQ 6.2.1 Scheduler supports JDBC storage.
[1] https://access.redhat.com/site/documentation/en-US/JBoss_A-MQ/6.0/html/Client_Connectivity_Guide/files/AMQClientConnectRedelivery.html
[2] http://activemq.apache.org/message-redelivery-and-dlq-handling.html
Environment
JBoss Fuse 6.0
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
