[jboss-user] [Messaging, JMS & JBossMQ] - JBossMQ Remote Client receives java.io.EOFException

alchemista do-not-reply at jboss.com
Tue May 15 10:54:50 EDT 2007


Hello,

I have a pretty high traffic JBossMQ connection between an app server (JBoss 4.0.3 on Win2k3) and a logging server (JBoss 4.0.2 on RHEL).  By high traffic I'm referring to 1-25MB per minute.

I occasionally have connection problems between the Win2k3 machine and RHEL machine, but most often this problem is on the JBossMQ connection.

On the client side, the error I receive is:


  | 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:2670)
  | 	at java.io.ObjectInputStream.readByte(ObjectInputStream.java:864)
  | 	at org.jboss.mq.il.uil2.SocketManager$ReadTask.run(SocketManager.java:290)
  | 	... 1 more
  | 

On the server, I normally receive DEBUG-level messages like:


  | 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:67)
  | 	at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2205)
  | 	at java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(ObjectInputStream.java:2385)
  | 	at java.io.ObjectInputStream$BlockDataInputStream.refill(ObjectInputStream.java:2452)
  | 	at java.io.ObjectInputStream$BlockDataInputStream.read(ObjectInputStream.java:2524)
  | 	at java.io.ObjectInputStream$BlockDataInputStream.readByte(ObjectInputStream.java:2673)
  | 	at java.io.ObjectInputStream.readByte(ObjectInputStream.java:874)
  | 	at org.jboss.mq.il.uil2.SocketManager$ReadTask.run(SocketManager.java:290)
  | 	at java.lang.Thread.run(Thread.java:595)
  | 

or


  | 2007-05-11 03:14:58,215 DEBUG [org.jboss.mq.il.uil2.ServerSocketManagerHandler] Exiting on IOE
  | java.net.SocketException: Connection reset
  | 	at java.net.SocketInputStream.read(SocketInputStream.java:168)
  | 	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:67)
  | 	at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2205)
  | 	at java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(ObjectInputStream.java:2385)
  | 	at java.io.ObjectInputStream$BlockDataInputStream.refill(ObjectInputStream.java:2452)
  | 	at java.io.ObjectInputStream$BlockDataInputStream.read(ObjectInputStream.java:2524)
  | 	at java.io.ObjectInputStream$BlockDataInputStream.readByte(ObjectInputStream.java:2673)
  | 	at java.io.ObjectInputStream.readByte(ObjectInputStream.java:874)
  | 	at org.jboss.mq.il.uil2.SocketManager$ReadTask.run(SocketManager.java:290)
  | 	at java.lang.Thread.run(Thread.java:595)
  | 

OR


  | 2007-05-11 00:05:46,631 DEBUG [org.jboss.naming.NamingService] Error writing response to /192.168.0.1
  | java.net.SocketException: Broken pipe
  | 	at java.net.SocketOutputStream.socketWrite0(Native Method)
  | 	at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
  | 	at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
  | 	at java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1682)
  | 	at java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(ObjectOutputStream.java:1591)
  | 	at java.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1173)
  | 	at java.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1127)
  | 	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)
  | 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
  | 	at java.io.ObjectOutputStream.writeFatalException(ObjectOutputStream.java:1398)
  | 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:305)
  | 	at org.jnp.server.Main$BootstrapRequestHandler.run(Main.java:452)
  | 	at org.jboss.util.threadpool.RunnableTaskWrapper.run(RunnableTaskWrapper.java:134)
  | 	at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)
  | 	at java.lang.Thread.run(Thread.java:595)
  | 

I am using the default UIL2 configuration settings on the server, but have configured the MessageCache to use a high amount of memory (800/900MB), and I'm unwisely using the default HSQLDB persistence store.

My question for this post is what possible scenarios would cause the client to receive an EOFException like that?  Are there any suggestions on how to diagnose this?  The error doesn't mention a read timeout or ping timeout, so I haven't tried increasing these options on the server UIL2 configuration.

Thank You

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4045845#4045845

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4045845



More information about the jboss-user mailing list