1 Reply Latest reply on Aug 13, 2007 2:26 AM by Ferry Tanu

    ActiveMQ integration problem

    Ferry Tanu Newbie

      I'm using:
      - JBoss AS 4.2.0
      - ActiveMQ 4.1.1

      I tried to use ActiveMQ as message broker for my MDB. Somehow it is not run properly. I got 2 problem :
      1. 13:32:10,344 WARN [ManagementContext] Failed to start jmx connector: Cannot bind to URL [rmi://localhost:1099/jmxrmi]: javax.naming.CommunicationException [Root exception is java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
      java.net.SocketException: Software caused connection abort: recv failed]
      Does anyone know what is the problem ?

      2. It seems that my MDB only process (receive the event) when it was first time deployed. The sequence :
      a. Run JBOSS AS
      b. Run client, send message to a queue
      c. Deploy my MDB
      d. My MDB can process the message
      e. Run the client again
      f. MDB do nothing, until, I redeploy the MDB again.

      Client snippet :
      InitialContext ic = new InitialContext(System.getProperties());

      //connect using active mq
      ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory();
      Queue queue = (Queue)ic.lookup("activemq/queue/outbound");
      System.out.println("Queue testQueue exists");
      Connection connection = cf.createConnection();

      Session sess = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
      MessageProducer sender = sess.createProducer(queue);
      TextMessage msg = sess.createTextMessage("test activemq4");

      MDB Snippet:
      @MessageDriven(activationConfig = {
      @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
      @ActivationConfigProperty(propertyName = "destination", propertyValue = "queue.outbound"),
      @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue="Auto-acknowledge")})
      public class HelloMDB implements MessageListener {

      public void onMessage(Message arg0) {
      try {
      TextMessage tm = (TextMessage)arg0;
      System.out.println("Hello I'm Message Bean, receive msg: "+tm.getText());
      } catch (JMSException e) {
      // TODO Auto-generated catch block

      Does anyone know what happen ?
      Is it because of deadlock in the queue (between producer and consumer) or ?
      Sorry, I'm not so sure where should I ask this question, whether to ActiveMQ forum, or JBoss.
      Please help.