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#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...