1 Reply Latest reply on Jul 22, 2004 6:41 PM by Elias Ross

    JMS fails under load

    thad Newbie

      I'm developing an application that uses JBoss 3.2.4 as a EAI/workflow server. Here's my situation:

      I have a stateless session bean (call it Bean1) which is called every 30 seconds to look for new requests from a db table (I know...it's polling...no way around it). It reads a max of 5000 new rows and breaks each row into an individual message and sticks the message onto a queue (call it Queue1). A message driven bean (Bean2) gets the messages from Queue1 and creates two new messages: one for Queue2 and one for Queue3...It gets even more complicated from there.

      This all works fine when I'm testing it with one new message at a time, but my first performance test of it (with 100 new requests in the db) yielded the following exception:

      org.jboss.mq.SpyJMSException: Cannot authenticate user; - nested throwable: (java.io.IOException: Client is not connected)
      at org.jboss.mq.Connection.authenticate(Connection.java:1161)
      at org.jboss.mq.Connection.(Connection.java:248)
      at org.jboss.mq.Connection.(Connection.java:325)
      at org.jboss.mq.SpyConnection.(SpyConnection.java:66)
      at org.jboss.mq.SpyConnectionFactory.createConnection(SpyConnectionFactory.java:87)
      at org.jboss.mq.SpyConnectionFactory.createQueueConnection(SpyConnectionFactory.java:124)
      [cut]

      This happens when Bean2 tried to do a jndi lookup of Queue2 or Queue3, and this didn't happen each time. It occurred approximately 6% of the time.