4 Replies Latest reply on Feb 8, 2008 11:43 AM by Adrian Brock

    No pong received warning

    gmeroz Newbie

      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


        • 2. Re: No pong received warning
          gmeroz Newbie

          can you give the link for that?

          • 3. Re: No pong received warning
            Didier Gutacker Newbie

            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
              Adrian Brock Master

               

              "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.