1 2 Previous Next 28 Replies Latest reply on Apr 18, 2007 10:53 AM by rtm333

    JMS Exceptions / Mismatch of JBossSerialization version

    rtm333

      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.



        • 1. Re: JMS Exceptions / Mismatch of JBossSerialization version
          rtm333

          Some further experiments showed that the same problem also exists with a single server running on Linux (and one Windows client). Hence, it is not related to Solaris and not to running multiple instances in parallel.

          It is not our application code that tries to recover from the client-side JMSException (and thus leading to the server-side mismatch exception). It has to be caused by the Messaging and/or Remoting internals.

          Thanks for any suggestions.

          • 2. Re: JMS Exceptions / Mismatch of JBossSerialization version
            clebert.suconic

            I suspect what this exception is, but I would need to full stack trace on the client. (linked causes)

            • 3. Re: JMS Exceptions / Mismatch of JBossSerialization version
              rtm333

              Hi Clebert,

              Thanks for your reply. Unfortunately, the stack trace I've already posted is all I have. There are no nested or linked exceptions. I looked at the exception in the debugger and found only nulls.

              Anything I can do to provide more information (e.g. raise the logging level)?

              One further thought: We are using the Binding Service to map the ports. This has already caused another problem with the upgrade to Messaging 1.0.1.SP2 (see http://www.jboss.org/index.html?module=bb&op=viewtopic&t=98390 ). Might this also be related in this case?

              • 4. Re: JMS Exceptions / Mismatch of JBossSerialization version
                ovidiu.feodorov

                 

                "rtm333" wrote:

                Anything I can do to provide more information (e.g. raise the logging level)?


                http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossMessagingUser_Enabling_TRACE_logging_on_server

                You can use a similar method for the client.

                • 5. Re: JMS Exceptions / Mismatch of JBossSerialization version
                  rtm333

                  I have raised the log level, not (yet) to TRACE, but to DEBUG. Even this revealed some additional clues:

                  Client side:

                  11:52:30,669 DEBUG [MicroSocketClientInvoker] Setting ClientSocket class name to: org.jboss.jms.client.remoting.ClientSocketWrapper
                  11:52:30,669 DEBUG [SocketClientInvoker] Setting SocketClientInvoker::timeout to: 1000
                  11:52:30,669 DEBUG [MicroSocketClientInvoker] Setting ClientSocket class name to: org.jboss.jms.client.remoting.ClientSocketWrapper
                  11:52:30,669 DEBUG [SocketClientInvoker] Setting SocketClientInvoker::timeout to: 1000
                  11:52:30,669 DEBUG [MicroRemoteClientInvoker] connect called for: org.jboss.remoting.transport.socket.SocketClientInvoker@53ecec
                  11:52:30,685 DEBUG [MicroRemoteClientInvoker] disconnect called for: org.jboss.remoting.transport.socket.SocketClientInvoker@53ecec
                  11:52:31,169 DEBUG [MicroSocketClientInvoker] Setting ClientSocket class name to: org.jboss.jms.client.remoting.ClientSocketWrapper
                  11:52:31,169 DEBUG [SocketClientInvoker] Setting SocketClientInvoker::timeout to: 1000
                  11:52:31,169 DEBUG [MicroSocketClientInvoker] Setting ClientSocket class name to: org.jboss.jms.client.remoting.ClientSocketWrapper
                  11:52:31,169 DEBUG [SocketClientInvoker] Setting SocketClientInvoker::timeout to: 1000
                  11:52:31,169 DEBUG [MicroRemoteClientInvoker] connect called for: org.jboss.remoting.transport.socket.SocketClientInvoker@10eb6ae
                  11:52:31,185 DEBUG [MicroRemoteClientInvoker] disconnect called for: org.jboss.remoting.transport.socket.SocketClientInvoker@10eb6ae
                  11:52:32,670 DEBUG [MicroSocketClientInvoker] Setting ClientSocket class name to: org.jboss.jms.client.remoting.ClientSocketWrapper
                  11:52:32,670 DEBUG [SocketClientInvoker] Setting SocketClientInvoker::timeout to: 1000
                  11:52:32,670 DEBUG [MicroSocketClientInvoker] Setting ClientSocket class name to: org.jboss.jms.client.remoting.ClientSocketWrapper
                  11:52:32,670 DEBUG [SocketClientInvoker] Setting SocketClientInvoker::timeout to: 1000
                  11:52:32,670 DEBUG [MicroRemoteClientInvoker] connect called for: org.jboss.remoting.transport.socket.SocketClientInvoker@1cba031
                  11:52:33,373 DEBUG [MicroRemoteClientInvoker] disconnect called for: org.jboss.remoting.transport.socket.SocketClientInvoker@1cba031
                  11:52:33,373 DEBUG [MicroSocketClientInvoker] Setting ClientSocket class name to: org.jboss.jms.client.remoting.ClientSocketWrapper
                  11:52:33,373 DEBUG [SocketClientInvoker] Setting SocketClientInvoker::timeout to: 1000
                  11:52:33,373 DEBUG [MicroSocketClientInvoker] Setting ClientSocket class name to: org.jboss.jms.client.remoting.ClientSocketWrapper
                  11:52:33,373 DEBUG [SocketClientInvoker] Setting SocketClientInvoker::timeout to: 1000
                  11:52:33,373 DEBUG [MicroRemoteClientInvoker] connect called for: org.jboss.remoting.transport.socket.SocketClientInvoker@1220575
                  11:52:33,483 DEBUG [MicroRemoteClientInvoker] disconnect called for: org.jboss.remoting.transport.socket.SocketClientInvoker@1220575
                  11:52:34,670 DEBUG [MicroSocketClientInvoker] Setting ClientSocket class name to: org.jboss.jms.client.remoting.ClientSocketWrapper
                  11:52:34,670 DEBUG [SocketClientInvoker] Setting SocketClientInvoker::timeout to: 1000
                  11:52:34,670 DEBUG [MicroSocketClientInvoker] Setting ClientSocket class name to: org.jboss.jms.client.remoting.ClientSocketWrapper
                  11:52:34,670 DEBUG [SocketClientInvoker] Setting SocketClientInvoker::timeout to: 1000
                  11:52:34,670 DEBUG [MicroRemoteClientInvoker] connect called for: org.jboss.remoting.transport.socket.SocketClientInvoker@12e712f
                  11:52:35,936 ERROR [SocketClientInvoker] Got marshalling exception, exiting
                  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 java.io.FilterInputStream.read(FilterInputStream.java:66)
                   at org.jboss.serial.io.JBossObjectInputStream.read(JBossObjectInputStream.java:193)
                   at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.readVersion(MicroSocketClientInvoker.java:531)
                   at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:363)
                   at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:125)
                   at org.jboss.remoting.ConnectionValidator.checkConnection(ConnectionValidator.java:184)
                   at org.jboss.remoting.ConnectionValidator.run(ConnectionValidator.java:114)
                   at java.util.TimerThread.mainLoop(Timer.java:512)
                   at java.util.TimerThread.run(Timer.java:462)
                  11:52:35,936 DEBUG [ConnectionValidator] ConnectionValidator could not successfully ping server (InvokerLocator [socket://xxx123:11107/?clientSocketClass=org.jboss.jms.client.remoting.ClientSocketWrapper&dataType=jms&marshaller=org.jboss.jms.server.remoting.JMSWireFormat&serializationtype=jboss&socket.check_connection=false&unmarshaller=org.jboss.jms.server.remoting.JMSWireFormat]
                  11:52:35,936 DEBUG [MicroRemoteClientInvoker] disconnect called for: org.jboss.remoting.transport.socket.SocketClientInvoker@12e712f
                  11:52:35,952 DEBUG [MicroSocketClientInvoker] Setting ClientSocket class name to: org.jboss.jms.client.remoting.ClientSocketWrapper
                  11:52:35,952 DEBUG [SocketClientInvoker] Setting SocketClientInvoker::timeout to: 1000
                  11:52:35,952 DEBUG [MicroSocketClientInvoker] Setting ClientSocket class name to: org.jboss.jms.client.remoting.ClientSocketWrapper
                  11:52:35,952 DEBUG [SocketClientInvoker] Setting SocketClientInvoker::timeout to: 1000
                  11:52:35,952 DEBUG [MicroRemoteClientInvoker] connect called for: org.jboss.remoting.transport.socket.SocketClientInvoker@5ce0fe
                  11:52:35,983 ERROR [ConnectionAspect] Caught exception from connection
                  java.lang.Exception: Could not connect to server.
                   at org.jboss.remoting.ConnectionValidator.run(ConnectionValidator.java:117)
                   at java.util.TimerThread.mainLoop(Timer.java:512)
                   at java.util.TimerThread.run(Timer.java:462)
                  E yyy123 instance_1 12.01.2007 11:52:35.983 TopicReceiver.onException: Received JMSException for priceTopic: Throwable received from underlying connection
                  1 yyy123 instance_1 12.01.2007 11:52:36.046 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)
                  11:52:36,749 DEBUG [MicroRemoteClientInvoker] disconnect called for: org.jboss.remoting.transport.socket.SocketClientInvoker@5ce0fe
                  11:52:37,952 DEBUG [MicroSocketClientInvoker] Setting ClientSocket class name to: org.jboss.jms.client.remoting.ClientSocketWrapper
                  11:52:37,952 DEBUG [SocketClientInvoker] Setting SocketClientInvoker::timeout to: 1000
                  11:52:37,952 DEBUG [MicroSocketClientInvoker] Setting ClientSocket class name to: org.jboss.jms.client.remoting.ClientSocketWrapper
                  11:52:37,952 DEBUG [SocketClientInvoker] Setting SocketClientInvoker::timeout to: 1000
                  11:52:37,952 DEBUG [MicroRemoteClientInvoker] connect called for: org.jboss.remoting.transport.socket.SocketClientInvoker@cc8a48
                  11:52:38,953 DEBUG [ConnectionValidator] ConnectionValidator could not successfully ping server (InvokerLocator [socket://xxx123:11107/?clientSocketClass=org.jboss.jms.client.remoting.ClientSocketWrapper&dataType=jms&marshaller=org.jboss.jms.server.remoting.JMSWireFormat&serializationtype=jboss&socket.check_connection=false&unmarshaller=org.jboss.jms.server.remoting.JMSWireFormat]
                  11:52:38,953 DEBUG [MicroRemoteClientInvoker] disconnect called for: org.jboss.remoting.transport.socket.SocketClientInvoker@cc8a48
                  11:52:38,953 ERROR [ConnectionAspect] Caught exception from connection
                  java.lang.Exception: Could not connect to server.
                   at org.jboss.remoting.ConnectionValidator.run(ConnectionValidator.java:117)
                   at java.util.TimerThread.mainLoop(Timer.java:512)
                   at java.util.TimerThread.run(Timer.java:462)
                  E yyy123 instance_1 12.01.2007 11:52:38.953 TopicReceiver.onException: Received JMSException for paramTopic: Throwable received from underlying connection
                  1 yyy123 instance_1 12.01.2007 11:52:39.000 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)
                  



                  Server side:

                  2007-01-12 11:53:13,834 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
                  




                  • 6. Re: JMS Exceptions / Mismatch of JBossSerialization version
                    timfox

                    rtm-

                    Can you confirm a couple of things for me:

                    In remoting-service.xml, you should have something like:

                     <mbean code="org.jboss.remoting.transport.Connector"
                     name="jboss.messaging:service=Connector,transport=socket"
                     display-name="Socket transport Connector">
                     <attribute name="Configuration">
                     <config>
                     <invoker transport="socket">
                     <attribute name="marshaller" isParam="true">org.jboss.jms.server.remoting.JMSWireFormat</attribute>
                     <attribute name="unmarshaller" isParam="true">org.jboss.jms.server.remoting.JMSWireFormat</attribute>
                     <!-- Serialization type must be jms - do not change! -->
                     <attribute name="serializationtype" isParam="true">jms</attribute>
                     <attribute name="dataType" isParam="true">jms</attribute>
                     <attribute name="socket.check_connection" isParam="true">false</attribute>
                     <attribute name="timeout">0</attribute>
                     <attribute name="serverBindAddress">${jboss.bind.address}</attribute>
                     <attribute name="serverBindPort">4457</attribute>
                     <attribute name="leasePeriod">10000</attribute>
                     <attribute name="callbackStore">org.jboss.remoting.callback.CallbackStore</attribute>
                     <attribute name="clientSocketClass" isParam="true">org.jboss.jms.client.remoting.ClientSocketWrapper</attribute>
                     <attribute name="serverSocketClass">org.jboss.jms.server.remoting.ServerSocketWrapper</attribute>
                     </invoker>
                     <handlers>
                     <handler subsystem="JMS">org.jboss.jms.server.remoting.JMSServerInvocationHandler</handler>
                     </handlers>
                     </config>
                     </attribute>
                     <depends>jboss.messaging:service=NetworkRegistry</depends>
                     </mbean>
                    


                    Can you verify you are specifying the clientSocketClass and serverSocketClass attributes as above?

                    Secondly, if you are using ServiceBindingManager to map your ports, can you verify, in your bindings xml file, you have something like:

                    <service-config name="jboss.messaging:service=Connector,transport=socket"
                     delegateClass="org.jboss.services.binding.AttributeMappingDelegate">
                     <delegate-config>
                     <attribute name="Configuration"><![CDATA[
                    <config>
                     <invoker transport="socket">
                     <attribute name="marshaller" isParam="true">org.jboss.jms.server.remoting.JMSWireFormat</attribute>
                     <attribute name="unmarshaller" isParam="true">org.jboss.jms.server.remoting.JMSWireFormat</attribute>
                     <!-- Serialization type must be jms - do not change! -->
                     <attribute name="serializationtype" isParam="true">jms</attribute>
                     <attribute name="dataType" isParam="true">jms</attribute>
                     <attribute name="socket.check_connection" isParam="true">false</attribute>
                     <attribute name="timeout">0</attribute>
                     <attribute name="serverBindAddress">${jboss.bind.address}</attribute>
                     <attribute name="serverBindPort">4457</attribute>
                     <attribute name="leasePeriod">10000</attribute>
                     <attribute name="callbackStore">org.jboss.remoting.callback.CallbackStore</attribute>
                     <attribute name="clientSocketClass" isParam="true">org.jboss.jms.client.remoting.ClientSocketWrapper</attribute>
                     <attribute name="serverSocketClass">org.jboss.jms.server.remoting.ServerSocketWrapper</attribute>
                     </invoker>
                     <handlers>
                     <handler subsystem="JMS">org.jboss.jms.server.remoting.JMSServerInvocationHandler</handler>
                     </handlers>
                     </config>
                     ]]>
                     </attribute>
                     </delegate-config>
                    
                     <binding port="7544"/>
                     </service-config>
                    


                    The remoting config in your bindings.xml file should exactly match the config in messaging-service.xml.

                    • 7. Re: JMS Exceptions / Mismatch of JBossSerialization version

                      Tim, I don't have those properties in my remoting-service.xml or bindings.xml files.

                      So, I have added and changed the serializatingtype to jms and deployed.
                      I get this NCFE:

                      14:31:22,168 ERROR [SocketServerInvoker] Failed to accept socket connection
                      java.lang.ClassNotFoundException: No ClassLoaders found for: org.jboss.jms.server.remoting.ServerSocketWrapper
                       at org.jboss.mx.loading.LoadMgr3.beginLoadTask(LoadMgr3.java:292)
                       at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:475)
                       at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:377)
                       at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
                       at org.jboss.remoting.transport.socket.ServerThread.createServerSocket(ServerThread.java:185)
                       at org.jboss.remoting.transport.socket.ServerThread.<init>(ServerThread.java:99)
                       at org.jboss.remoting.transport.socket.SocketServerInvoker.processInvocation(SocketServerInvoker.java:497)
                       at org.jboss.remoting.transport.socket.SocketServerInvoker.run(SocketServerInvoker.java:450)
                       at java.lang.Thread.run(Thread.java:595)
                      


                      I am using 1.0.1GA, so is this fucntionality not available in 1.0.x?

                      Thanks
                      Madhu

                      • 8. Re: JMS Exceptions / Mismatch of JBossSerialization version
                        rtm333

                        Tim,

                        Thanks a lot for your help.

                        I have compared your code snippets with our actual files.

                        Our deploy/jboss-messaging.sar/remoting-service.xml looks like this:

                         <mbean code="org.jboss.remoting.transport.Connector"
                         name="jboss.messaging:service=Connector,transport=socket"
                         display-name="Socket transport Connector">
                         <attribute name="Configuration">
                         <config>
                         <invoker transport="socket">
                         <attribute name="marshaller" isParam="true">org.jboss.jms.server.remoting.JMSWireFormat</attribute>
                         <attribute name="unmarshaller" isParam="true">org.jboss.jms.server.remoting.JMSWireFormat</attribute>
                         <attribute name="serializationtype" isParam="true">jboss</attribute>
                         <attribute name="dataType" isParam="true">jms</attribute>
                         <attribute name="socket.check_connection" isParam="true">false</attribute>
                         <attribute name="timeout">0</attribute>
                         <attribute name="serverBindAddress">${jboss.bind.address}</attribute>
                         <attribute name="serverBindPort">4457</attribute>
                         <attribute name="leasePeriod">20000</attribute>
                         <attribute name="clientSocketClass" isParam="true">org.jboss.jms.client.remoting.ClientSocketWrapper</attribute>
                         <attribute name="serverSocketClass">org.jboss.jms.server.remoting.ServerSocketWrapper</attribute>
                         </invoker>
                         <handlers>
                         <handler subsystem="JMS">org.jboss.jms.server.remoting.JMSServerInvocationHandler</handler>
                         </handlers>
                         </config>
                         </attribute>
                         <depends>jboss.messaging:service=NetworkRegistry</depends>
                         </mbean>
                        


                        It differs from your template in the serialization type (jboss vs. jms), the lease period, and the missing callbackStore definition. This file should be unchanged from the Messaging 1.0.1.SP2 installation.

                        The code in our bindings xml file also reflects these differences (I suppose it has to match the definition from remoting-service.xml and not messaging-service.xml). There is one further difference: The serverBindPort value is already showing the new port number, not the original one as in your example. If I specify the original port, the mapping is not performed.

                        <service-config name="jboss.messaging:service=Connector,transport=socket"
                         delegateClass="org.jboss.services.binding.AttributeMappingDelegate">
                         <delegate-config>
                         <attribute name="Configuration"><![CDATA[
                         <config>
                         <invoker transport="socket">
                         <attribute name="marshaller" isParam="true">org.jboss.jms.server.remoting.JMSWireFormat</attribute>
                         <attribute name="unmarshaller" isParam="true">org.jboss.jms.server.remoting.JMSWireFormat</attribute>
                         <attribute name="serializationtype" isParam="true">jboss</attribute>
                         <attribute name="dataType" isParam="true">jms</attribute>
                         <attribute name="socket.check_connection" isParam="true">false</attribute>
                         <attribute name="timeout">0</attribute>
                         <attribute name="serverBindAddress">${jboss.bind.address}</attribute>
                         <attribute name="serverBindPort">11107</attribute>
                         <attribute name="leasePeriod">20000</attribute>
                         <attribute name="clientSocketClass" isParam="true">org.jboss.jms.client.remoting.ClientSocketWrapper</attribute>
                         <attribute name="serverSocketClass">org.jboss.jms.server.remoting.ServerSocketWrapper</attribute>
                         </invoker>
                         <handlers>
                         <handler subsystem="JMS">org.jboss.jms.server.remoting.JMSServerInvocationHandler</handler>
                         </handlers>
                         </config>
                         ]]>
                         </attribute>
                         </delegate-config>
                        
                         <binding port="11107" />
                         </service-config>
                        





                        • 9. Re: JMS Exceptions / Mismatch of JBossSerialization version
                          timfox

                          This is only available in SP2, I believe rtm is using SP2.

                          • 10. Re: JMS Exceptions / Mismatch of JBossSerialization version
                            timfox

                             

                            "rtm333" wrote:
                            Tim,

                            It differs from your template in the serialization type (jboss vs. jms), the lease period, and the missing callbackStore definition. This file should be unchanged from the Messaging 1.0.1.SP2 installation.

                            
                            As I said in my post it should look "something like", not exactly - I was just trying to get you to check that you have the socketwrappers configured.
                            
                            The actual file should be the one in remoting-service.xml in the distro.


                            • 11. Re: JMS Exceptions / Mismatch of JBossSerialization version

                              Ohh IC..I missed the boat..

                              However, in my remoting-service.xml, I have serializationtype attribute set to jboss instead of jms as mentioned in the posted example file.

                              Does this attribute really matters?

                              • 12. Re: JMS Exceptions / Mismatch of JBossSerialization version
                                timfox

                                Man, in my post I said "something like" - i.e. not exactly - you guys are taking it too literally :)

                                I was simply trying to show the socket wrapper attributes......

                                I should have posted the actual config to avoid confusion.

                                The actual config you should use is the one that came in your distro.

                                • 13. Re: JMS Exceptions / Mismatch of JBossSerialization version

                                  He he he..

                                  This comment in the xml file is quite serious - made me think if this could be of any priority..hence the post tim..he he..

                                  <!-- Serialization type must be jms - do not change! -->

                                  • 14. Re: JMS Exceptions / Mismatch of JBossSerialization version
                                    timfox

                                    So the bottom line is just to make sure the remoting config used in the service binding is the same as the one in remoting-service.xml for your distro.

                                    1 2 Previous Next