[jboss-user] [JBoss Messaging] - JMS Exceptions / Mismatch of JBossSerialization version

rtm333 do-not-reply at jboss.com
Tue Jan 9 04:47:54 EST 2007


Dear All,

We are using JBoss 4.0.5.GA with Messaging 1.0.1.SP2. Since upgrading from Messaging 1.0.1.GA to SP2 we are experiencing rather frequent (say, every half an hour) JMS Exceptions. 

Below is the log output for the following scenario: Two JBoss instances running as JMS servers (Solaris 10), two clients (on Windows XP), each client connected to one of the server instances. Both server instances are running on the same Solaris box, while both clients share a pc.

The ExceptionListener on the client end catches this exception: 

instance_1:

E instance_1 09.01.2007 10:03:05.616 TopicReceiver.onException: Received JMSException for paramTopic: Throwable received from underlying connection
  | 1 instance_1 09.01.2007 10:03:05.616 javax.jms.JMSException: Throwable received from underlying connection (Stack Trace following)
  | javax.jms.JMSException: Throwable received from underlying connection
  |  at org.jboss.jms.client.container.ConnectionAspect.handleConnectionException(ConnectionAspect.java:203)
  |  at org.jboss.remoting.ConnectionValidator$1.run(ConnectionValidator.java:139)
  | E instance_1 09.01.2007 10:03:07.116 TopicReceiver.onException: Received JMSException for priceTopic: Throwable received from underlying connection
  | 1 instance_1 09.01.2007 10:03:07.116 javax.jms.JMSException: Throwable received from underlying connection (Stack Trace following)
  | javax.jms.JMSException: Throwable received from underlying connection
  |  at org.jboss.jms.client.container.ConnectionAspect.handleConnectionException(ConnectionAspect.java:203)
  |  at org.jboss.remoting.ConnectionValidator$1.run(ConnectionValidator.java:139)

instance_2:

E instance_2 09.01.2007 10:03:05.663 TopicReceiver.onException: Received JMSException for priceTopic: Throwable received from underlying connection
  | 1 instance_2 09.01.2007 10:03:05.663 javax.jms.JMSException: Throwable received from underlying connection (Stack Trace following)
  | javax.jms.JMSException: Throwable received from underlying connection
  |  at org.jboss.jms.client.container.ConnectionAspect.handleConnectionException(ConnectionAspect.java:203)
  |  at org.jboss.remoting.ConnectionValidator$1.run(ConnectionValidator.java:139)
  | E instance_2 09.01.2007 10:03:06.616 TopicReceiver.onException: Received JMSException for paramTopic: Throwable received from underlying connection
  | 1 instance_2 09.01.2007 10:03:06.663 javax.jms.JMSException: Throwable received from underlying connection (Stack Trace following)
  | javax.jms.JMSException: Throwable received from underlying connection
  |  at org.jboss.jms.client.container.ConnectionAspect.handleConnectionException(ConnectionAspect.java:203)
  |  at org.jboss.remoting.ConnectionValidator$1.run(ConnectionValidator.java:139)


Several seconds later the following messages are logged on the server side:

instance_1:

2007-01-09 10:03:11,582 ERROR [org.jboss.remoting.transport.socket.SocketServerInvoker] Failed to accept socket connection
  | java.lang.reflect.InvocationTargetException
  |         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  |         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
  |         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
  |         at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
  |         at org.jboss.remoting.transport.socket.ServerThread.createServerSocket(ServerThread.java:216)
  |         at org.jboss.remoting.transport.socket.ServerThread.wakeup(ServerThread.java:275)
  |         at org.jboss.remoting.transport.socket.SocketServerInvoker.processInvocation(SocketServerInvoker.java:604)
  |         at org.jboss.remoting.transport.socket.SocketServerInvoker.run(SocketServerInvoker.java:515)
  |         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.read1(BufferedInputStream.java:256)
  |         at java.io.BufferedInputStream.read(BufferedInputStream.java:313)
  |         at java.io.FilterInputStream.read(FilterInputStream.java:90)
  |         at org.jboss.serial.io.JBossObjectInputStream.checkSignature(JBossObjectInputStream.java:110)
  |         at org.jboss.serial.io.JBossObjectInputStream.<init>(JBossObjectInputStream.java:94)
  |         at org.jboss.remoting.serialization.impl.jboss.JBossSerializationManager.createInput(JBossSerializationManager.java:59)
  |         at org.jboss.jms.server.remoting.ServerSocketWrapper.createInputStream(ServerSocketWrapper.java:110)
  |         at org.jboss.jms.client.remoting.ClientSocketWrapper.createStreams(ClientSocketWrapper.java:116)
  |         at org.jboss.jms.client.remoting.ClientSocketWrapper.<init>(ClientSocketWrapper.java:67)
  |         at org.jboss.jms.server.remoting.ServerSocketWrapper.<init>(ServerSocketWrapper.java:64)
  |         ... 9 more


instance_2:

2007-01-09 10:03:28,357 ERROR [org.jboss.remoting.transport.socket.SocketServerInvoker] Failed to accept socket connection
  | java.lang.reflect.InvocationTargetException
  |         at sun.reflect.GeneratedConstructorAccessor43.newInstance(Unknown Source)
  |         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
  |         at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
  |         at org.jboss.remoting.transport.socket.ServerThread.createServerSocket(ServerThread.java:216)
  |         at org.jboss.remoting.transport.socket.ServerThread.wakeup(ServerThread.java:275)
  |         at org.jboss.remoting.transport.socket.SocketServerInvoker.processInvocation(SocketServerInvoker.java:604)
  |         at org.jboss.remoting.transport.socket.SocketServerInvoker.run(SocketServerInvoker.java:515)
  |         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.read1(BufferedInputStream.java:256)
  |         at java.io.BufferedInputStream.read(BufferedInputStream.java:313)
  |         at java.io.FilterInputStream.read(FilterInputStream.java:90)
  |         at org.jboss.serial.io.JBossObjectInputStream.checkSignature(JBossObjectInputStream.java:110)
  |         at org.jboss.serial.io.JBossObjectInputStream.<init>(JBossObjectInputStream.java:94)
  |         at org.jboss.remoting.serialization.impl.jboss.JBossSerializationManager.createInput(JBossSerializationManager.java:59)
  |         at org.jboss.jms.server.remoting.ServerSocketWrapper.createInputStream(ServerSocketWrapper.java:110)
  |         at org.jboss.jms.client.remoting.ClientSocketWrapper.createStreams(ClientSocketWrapper.java:116)
  |         at org.jboss.jms.client.remoting.ClientSocketWrapper.<init>(ClientSocketWrapper.java:67)
  |         at org.jboss.jms.server.remoting.ServerSocketWrapper.<init>(ServerSocketWrapper.java:64)
  |         ... 8 more
  | 2007-01-09 10:03:58,939 ERROR [org.jboss.remoting.transport.socket.SocketServerInvoker] Failed to accept socket connection
  | java.lang.reflect.InvocationTargetException
  |         at sun.reflect.GeneratedConstructorAccessor43.newInstance(Unknown Source)
  |         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
  |         at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
  |         at org.jboss.remoting.transport.socket.ServerThread.createServerSocket(ServerThread.java:216)
  |         at org.jboss.remoting.transport.socket.ServerThread.wakeup(ServerThread.java:275)
  |         at org.jboss.remoting.transport.socket.SocketServerInvoker.processInvocation(SocketServerInvoker.java:604)
  |         at org.jboss.remoting.transport.socket.SocketServerInvoker.run(SocketServerInvoker.java:515)
  |         at java.lang.Thread.run(Thread.java:595)
  | Caused by: java.io.IOException: Mismatch version of JBossSerialization signature
  |         at org.jboss.serial.io.JBossObjectInputStream.checkSignature(JBossObjectInputStream.java:113)
  |         at org.jboss.serial.io.JBossObjectInputStream.<init>(JBossObjectInputStream.java:94)
  |         at org.jboss.remoting.serialization.impl.jboss.JBossSerializationManager.createInput(JBossSerializationManager.java:59)
  |         at org.jboss.jms.server.remoting.ServerSocketWrapper.createInputStream(ServerSocketWrapper.java:110)
  |         at org.jboss.jms.client.remoting.ClientSocketWrapper.createStreams(ClientSocketWrapper.java:116)
  |         at org.jboss.jms.client.remoting.ClientSocketWrapper.<init>(ClientSocketWrapper.java:67)
  |         at org.jboss.jms.server.remoting.ServerSocketWrapper.<init>(ServerSocketWrapper.java:64)
  |         ... 8 more



The really strange things are, that 

not all instances are affected every time
  | not all clients are affected every time
  | not all JMS connections on the same client are affected every time
  | the version mismatch is not reported every time 
  | depite the version mismatch (and the exceptions) JMS messages are (continued to be) received without obvious problems 
  | 
  | 
  | The behaviour seems similar to what has been reported in 
  | 
  | http://www.jboss.org/index.html?module=bb&op=viewtopic&t=98027
  | 
  | Any help welcome.
  | 
  | 

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

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



More information about the jboss-user mailing list