3 Replies Latest reply on Aug 28, 2007 1:42 PM by Angela Collazzo

    org.jboss.mq.SpyJMSException: Exiting on IOE

    Padmaja Pradhan Newbie


      I am using jboss 4.0.2 with cache. I use JMS to send log messges to be saved to a database. No special configuration, however, over some time period ( e.g. a month or more) I get this exception:

      2007-07-27 11:17:31,318 WARN [org.jboss.mq.Connection] Connection failure, use javax.jms.Connection.setExceptionListener() to handle this error and reconnect
      org.jboss.mq.SpyJMSException: Exiting on IOE; - nested throwable: (java.io.EOFException)
      at org.jboss.mq.SpyJMSException.getAsJMSException(SpyJMSException.java:66)
      at org.jboss.mq.Connection.asynchFailure(Connection.java:437)
      at org.jboss.mq.il.uil2.UILClientILService.asynchFailure(UILClientILService.java:156)
      at org.jboss.mq.il.uil2.SocketManager$ReadTask.handleStop(SocketManager.java:413)
      at org.jboss.mq.il.uil2.SocketManager$ReadTask.run(SocketManager.java:345)
      at java.lang.Thread.run(Thread.java:595)
      Caused by: java.io.EOFException
      at java.io.ObjectInputStream$BlockDataInputStream.readByte(ObjectInputStream.java:2675)
      at java.io.ObjectInputStream.readByte(ObjectInputStream.java:874)
      at org.jboss.mq.il.uil2.SocketManager$ReadTask.run(SocketManager.java:290)
      ... 1 more

      After a few of these , I get following:

      2007-07-27 11:39:19,048 INFO [STDOUT] Cannot send a message to the JMS server; - nested throwable: (java.io.IOException: Client is not connected)

      The wiki pages re jbossMQ mention the High Availability JMSMQ, which I am not sure is being used since I am using the default server configuration.

      My question is : do I need to use an ExceptionListener , trap this exception and then reopen the connection, or is this a memory/heap problem that I can fix some other way? Restarting the server fixes the problem but nor desirable.

      Any help will be appreciated


        • 1. Re: org.jboss.mq.SpyJMSException: Exiting on IOE
          Benjamin Nutting Newbie

          I have the exact same problem. would like to see an answer to resolve this.

          After a while it throws a:

          # An unexpected error has been detected by Java Runtime Enviornment:
          # java.lang.OutOfMemory: requested 868648 bytes for Chink::new. Out of swap space?
          #Internal Error (414C4C4F434154494F4E0E43505000C7), pid=6864, tid=8228

          • 2. Re: org.jboss.mq.SpyJMSException: Exiting on IOE
            Elias Ross Master

            bnutting, what you have is not enough configured memory or a bum JDK version. Perhaps a memory leak in your app or JBoss.

            As for EOF: EOF comes when the client pro-actively closes the connection or the connection is reset. This can come from hardware or timeouts. If you get an exception on the client, you have to manually reconnect. Or use an exception listener as you have figured out.

            HA is not deployed as standard.

            • 3. Re: org.jboss.mq.SpyJMSException: Exiting on IOE
              Angela Collazzo Newbie

              I am having the same exact problem! I would appreciate any help on this problem. Everything I've read, says I have the program setup correctly to open everything and then in a while loop waiting for messages do the send of the message. When a message finally came in (in my case it can be 30 minutes or more) and I tried to forward on to a JBoss topic, I got this error:

              org.jboss.mq.SpyJMSException: Cannot send a message to the JMS server; - nested throwable: (java.io.IOException: Client is not connected)
              at org.jboss.mq.SpyJMSException.getAsJMSException(SpyJMSException.java:72)
              at org.jboss.mq.SpyJMSException.rethrowAsJMSException(SpyJMSException.java:57)
              at org.jboss.mq.Connection.sendToServer(Connection.java:922)
              at org.jboss.mq.SpySession.sendMessage(SpySession.java:924)
              at org.jboss.mq.SpyMessageProducer.send(SpyMessageProducer.java:272)
              at org.jboss.mq.SpyMessageProducer.send(SpyMessageProducer.java:206)
              at org.jboss.mq.SpyTopicPublisher.publish(SpyTopicPublisher.java:62)
              at ptotx.DCMQReceiver.main(Unknown Source)
              Caused by: java.io.IOException: Client is not connected
              at org.jboss.mq.il.uil2.SocketManager.internalSendMessage(SocketManager.java:264)
              at org.jboss.mq.il.uil2.SocketManager.sendMessage(SocketManager.java:220)
              at org.jboss.mq.il.uil2.UILServerIL.addMessage(UILServerIL.java:245)
              at org.jboss.mq.Connection.sendToServer(Connection.java:918)
              ... 5 more