Red Hat
Aug 15, 2014
by Tim
Up to this point your only option for doing scheduled message delivery in ActiveMQ required that you start a broker with persistence enabled.  Well, that's not entirely true, if you wanted to apply some configuration magic and start a broker in non-persistent mode and add an instantiated version of the KahaDB based JobSchedulerStore you could but that's not really ideal when you don't really need or want full persistence such as during unit tests or in some embedded cases. 

So from here on out if you want to use scheduled message dispatch but don't require the overhead of offline storage for your broker then just create a Broker instance that has persistence disabled and scheduler support enabled.

Here's an example of an embedded Broker that will use an in-memory scheduler:

        BrokerService answer = new BrokerService();
        answer.setPersistent(false);
        answer.setSchedulerSupport(true);


There's a lot more changes under the hood in the scheduled message bits coming in ActiveMQ 5.11.0 but I'll cover that in another post.

Original Post