4 Replies Latest reply on Feb 8, 2008 11:43 AM by adrian.brock

    No pong received warning

      we get the following warning over and over when using MDB JBossAS4.0.5GA. Is there any way to solve it?


      10:35:18,032 WARN [Connection] Connection failure, use javax.jms.Connection.setExceptionListener() to handle this error and reconnect
      org.jboss.mq.SpyJMSException: No pong received; - nested throwable: (java.io.IOException: ping timeout.)
      at org.jboss.mq.Connection$PingTask.run(Connection.java:1305)
      at EDU.oswego.cs.dl.util.concurrent.ClockDaemon$RunLoop.run(ClockDaemon.java:364)
      at java.lang.Thread.run(Thread.java:619)
      Caused by: java.io.IOException: ping timeout.
      ... 3 more


        • 1. Re: No pong received warning

          FAQ

          • 2. Re: No pong received warning

            can you give the link for that?

            • 3. Re: No pong received warning
              dgusoft

              Hi!

              FAQ is found under:

              http://wiki.jboss.org/wiki/Wiki.jsp?page=IGetIOExceptionPingTimeoutHowDoIFixIt

              We have similar Exceptions here with JBoss 4.2.1 GA. At the moment our oracle database isn't available for about an hour each night. We have no client using JMS. All happens on the server side.

              The following exceptions can be found in the jboss.log:

              01:52:43,313 WARN [Connection] Connection failure, use javax.jms.Connection.setExceptionListener() to handle this error and reconnect
              org.jboss.mq.SpyJMSException: No pong received; - nested throwable: (java.io.IOException: ping timeout.)
              at org.jboss.mq.Connection$PingTask.run(Connection.java:1313)
              at EDU.oswego.cs.dl.util.concurrent.ClockDaemon$RunLoop.run(ClockDaemon.java:364)
              at java.lang.Thread.run(Thread.java:595)
              Caused by: java.io.IOException: ping timeout.
              ... 3 more

              ...

              01:52:43,322 WARN [Connection] Connection failure, use javax.jms.Connection.setExceptionListener() to handle this error and reconnect
              org.jboss.mq.SpyJMSException: Exiting on IOE; - nested throwable: (java.net.SocketTimeoutException: Read timed out)
              at org.jboss.mq.SpyJMSException.getAsJMSException(SpyJMSException.java:72)
              at org.jboss.mq.Connection.asynchFailure(Connection.java:423)
              at org.jboss.mq.il.uil2.UILClientILService.asynchFailure(UILClientILService.java:174)
              at org.jboss.mq.il.uil2.SocketManager$ReadTask.handleStop(SocketManager.java:439)
              at org.jboss.mq.il.uil2.SocketManager$ReadTask.run(SocketManager.java:371)
              at java.lang.Thread.run(Thread.java:595)
              Caused by: java.net.SocketTimeoutException: Read timed out
              at java.net.SocketInputStream.socketRead0(Native Method)
              at java.net.SocketInputStream.read(SocketInputStream.java:129)
              at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
              at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
              at org.jboss.util.stream.NotifyingBufferedInputStream.read(NotifyingBufferedInputStream.java:79)
              at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2196)
              at java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(ObjectInputStream.java:2376)
              at java.io.ObjectInputStream$BlockDataInputStream.refill(ObjectInputStream.java:2443)
              at java.io.ObjectInputStream$BlockDataInputStream.read(ObjectInputStream.java:2515)
              at java.io.ObjectInputStream$BlockDataInputStream.readByte(ObjectInputStream.java:2664)
              at java.io.ObjectInputStream.readByte(ObjectInputStream.java:875)
              at org.jboss.mq.il.uil2.SocketManager$ReadTask.run(SocketManager.java:316)
              ... 1 more

              ...

              01:53:42,485 WARN [Connection] Connection failure, use javax.jms.Connection.setExceptionListener() to handle this error and reconnect
              org.jboss.mq.SpyJMSException: Cannot ping 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.pingServer(Connection.java:848)
              at org.jboss.mq.Connection$PingTask.run(Connection.java:1317)
              at EDU.oswego.cs.dl.util.concurrent.ClockDaemon$RunLoop.run(ClockDaemon.java:364)
              at java.lang.Thread.run(Thread.java:595)
              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.sendReply(SocketManager.java:238)
              at org.jboss.mq.il.uil2.UILServerIL.ping(UILServerIL.java:345)
              at org.jboss.mq.Connection.pingServer(Connection.java:844)
              ... 3 more

              ...

              08:07:11,753 WARN [Connection] Connection failure, use javax.jms.Connection.setExceptionListener() to handle this error and reconnect
              org.jboss.mq.SpyJMSException: No pong received; - nested throwable: (java.io.IOException: ping timeout.)
              at org.jboss.mq.Connection$PingTask.run(Connection.java:1313)
              at EDU.oswego.cs.dl.util.concurrent.ClockDaemon$RunLoop.run(ClockDaemon.java:364)
              at java.lang.Thread.run(Thread.java:595)
              Caused by: java.io.IOException: ping timeout.
              ... 3 more

              Even though the database is back online for a couple of hours the exceptions only disappear when jboss is restarted.

              The FAQ only says :

              I'm inside the application server, how do I install the exception listener?

              * You don't need to for an MDB, JBoss does it for you.

              This doesn't seem to be true in every case.

              Any hints?

              Thanks in advance

              • 4. Re: No pong received warning

                 

                "dgusoft" wrote:

                The FAQ only says :


                It says more than that. It doesn't log the shown warning for MDBs or
                the jms resource adapter, you get a different warning from their installed
                exception listeners.

                If it says there is no ExceptionListener installed then that is the case.

                There is no WARNing if there is an exception listener installed (unless
                the exception listener is recursing).

                 synchronized (elLock)
                 {
                 ExceptionListener el = exceptionListener;
                 if (el != null && elThread == null)
                 {
                 try
                 {
                 Runnable run = new ExceptionListenerRunnable(el, excep);
                 elThread = new Thread(getThreadGroup(), run, "ExceptionListener " + this);
                 elThread.setDaemon(false);
                 elThread.start();
                 }
                 catch (Throwable t1)
                 {
                 log.warn("Connection failure: ", excep);
                 log.warn("Unable to start exception listener thread: ", t1);
                 }
                 }
                 else if (elThread != null)
                 log.warn("Connection failure, already in the exception listener", excep);
                 else
                 log.warn("Connection failure, use javax.jms.Connection.setExceptionListener() to handle this error and reconnect", excep);
                 }
                



                Any hints?

                Thanks in advance


                Read the bottom of of the FAQ on how to locate where the broken connection
                is opened.