Hi
I have active mq consumers(each subscribed for a topic) which receives messages.
public class ActiveMQConsumer implements ExtendedMessageListener { private static final Logger logger = Logger.getLogger(ActiveMQConsumer.class); IProcessor processor; public ActiveMQConsumer(IProcessor processor) { this.processor = processor; } @Override public void onMessage(Message jmsMessage) { System.out.println("ActiveMQConsumer " + jmsMessage.getClass() + " " + jmsMessage); if (jmsMessage instanceof TextMessage) { try { processor.process(((TextMessage) jmsMessage).getText()); } catch (JMSException e) { logger.error("ActiveMQConsumer::onMessage ", e); } } } @Override public void onException(JMSException e) { logger.error("ActiveMQConsumer::onException ", e); } }
After the jmsMessage comes it send it to a processor which is stateless bean.
My warnings are:
1) Can the
ActiveMQConsumer, which is not a statless bean, be overrheaded by the messages.Should i do is a statless bean?
2)In the processor statless bean i intend to send all messages which comes from all consumers to a queue and
a MDB will consume the messages there to do operations with them? Is this a good aproach, taking the fakt that
statless bean do not execute method asynchroniously? Or it will be just fine if i do the operations in the
statless bean processor?