For usage and API documentation, see API and Demo Documentation.
Issues with Queues
If you use the API for production, you might encounter jams in the ActiveMQ queues. This is because the messages are marked as ‘persistent’ and therefore are not deleted, even if they are not used anymore. There are some settings in the activemq.xml
that can help.
The first thing that you can do is to discard expired messages, if they are not marked as ‘persistent’.
<broker...> <destinationPolicy> <policyMap> <policyEntries> <!-- Set the following policy on all queues using the '>' wildcard --> <policyEntry queue=">"> <deadLetterStrategy>
<
sharedDeadLetterStrategy
processExpired="false" />
</deadLetterStrategy> </policyEntry> </policyEntries> </policyMap> </destinationPolicy> ... </broker>
For persistent messages, you can deactivate the Dead Letter Queue (DLQ):
<beans> <broker ...> <plugins> <discardingDLQBrokerPlugin dropAll="true" dropTemporaryTopics="true" dropTemporaryQueues="true" /> </plugins> </broker> </beans>
Note that this completely disables the DLQ queue; thus you cannot e.g. obtain statistics on unprocessed messages. Still, the performance and especially stability increases when using the DLQ Broker plugin.