We currently deploy our ActiveMQ enabled Message Driven Beans along with our
larger application inside of an EAR file.  This ear file is then deployed
across multiple application servers.  However we only wanted consumers to be
active on certain dedicated servers.  I wasn't able to find a solution
within ActiveMQ that allows us to globally turn off consumers at deployment.
 For a while we were tweaking the consumers via JMX but that was problematic
and could only be done after the consumer was activated and started
processing.

I built our own activemq-rar-5.4.2.rar with the following modifications:

In ActiveMQResourceAdapter.java, public void
endpointActivation(MessageEndpointFactory endpointFactory, ActivationSpec
activationSpec)

Before creating the worker and checking to see if it previously activated a
quick system property check:

if (!Boolean.valueOf(System.getProperty("activemq.endpoints.disabled",
"false"))) {...


If true, dont' actually enable any queues etc.  I'm not sure this is the
best method but it seems to be working.  I've included a patch for the 5.4.2
branch.  I can prepare one for the trunk if the developers think this would
be a worthwhile contribution.

Jeremy

-- 
Jeremy Levy

Reply via email to