In a production environment, I've had several cases where my JBossMQ has failed 
under load. The problem is described below. I was wondering if someone else has 
solved this problem before, or has any ideas?

The setup is that I have a JBoss application server (1) on Windows sending logs 
over log4j JMS appender to JBoss application server (2) on Linux.

The server (2) is configured to use the HSQLDB persistence manager, is set to 
use 1GB ram for the JVM and has the high/max memory set to 80% and 90% of the 
JVM ram.

The source of the logging data server (1) can send very large amounts of logs 
over JMS to the logging server (2). This load is fairly high during the day, 
and occasionally causes the JBossMQ on server (2) to completely fail.

The first errors are of the format below. In some cases reconnection occurs, 
but in other cases the logging server (2) will continuously refuse connections. 
When this failure happens, I have to stop the logging server (2), often delete 
the HSQLDB data directory and then restart logging server (2).

org.jboss.mq.SpyJMSException: Exiting on IOE; - nested throwable: 
(java.net.SocketException: Connection reset)
        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.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:2200)
        at 
java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(ObjectInputStream.java:2380)
        at 
java.io.ObjectInputStream$BlockDataInputStream.refill(ObjectInputStream.java:2447)
        at 
java.io.ObjectInputStream$BlockDataInputStream.read(ObjectInputStream.java:2519)
        at 
java.io.ObjectInputStream$BlockDataInputStream.readByte(ObjectInputStream.java:2668)
        at java.io.ObjectInputStream.readByte(ObjectInputStream.java:864)
        at 
org.jboss.mq.il.uil2.SocketManager$ReadTask.run(SocketManager.java:290)





Hardcore failure can give continuous messages:

javax.naming.CommunicationException [Root exception is 
java.rmi.UnmarshalException: Error unmarshaling return; nested exception is: 
        java.io.EOFException]
        at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:707)
        at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)
        at javax.naming.InitialContext.lookup(InitialContext.java:351)
        at 
com.lmco.lits.james.core.cdf.ReconnectingJMSAppender.initializeConnection(ReconnectingJMSAppender.java:166)
        at 
com.lmco.lits.james.core.cdf.ReconnectingJMSAppender.onException(ReconnectingJMSAppender.java:319)
        at 
org.jboss.mq.Connection$ExceptionListenerRunnable.run(Connection.java:1366)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.rmi.UnmarshalException: Error unmarshaling return; nested 
exception is: 
        java.io.EOFException
        at 
sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:217)
        at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:126)
        at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
        at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:610)
        ... 6 more
Caused by: java.io.EOFException
        at 
java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2502)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1267)
        at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1628)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1293)
        at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1912)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1836)
        at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
        at 
sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:215)
        ... 9 more

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

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


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to