Hi
Is there any way to disable/enable a MDB programmatically?
Right now, it consumes from a JMS queue and the queue definitions are coded
using @ActivationConfigProperty. if I just set a flag in the database and
let the MDB check it before executing the onMessage() message, I guess I'd
have to re-enqueue the message. Instead, I'd like to just "pause" and
"restart" my MDBs, not touching the queue.
or example, for tomee/activemq, is there something similar to this code for
jboss?
MBeanServer mbeanServer = MBeanServerLocator.locateJBoss();
ObjectName objName = new
ObjectName("jboss.j2ee:ear=MessageGateway.ear,jar=MessageGateway-EJB.jar,name=MessageSenderMDB,service=EJB3");
JMSContainerInvokerMBean invoker = (JMSContainerInvokerMBean)
MBeanProxy.get(JMSContainerInvokerMBean.class, objName, mbeanServer);
invoker.stop(); //Stop MDB
invoker.start(); //Start MDB
If I'd understood this well, the container consumes from the JMS queue
and then it sends to the MDB method.
So I guess what I am really looking for is some activemq or tomee JMX
instruction (and how to call it from inside a webapp code) telling
tomee to pause/resume it's JMS consumer.
TIA
Leo