2 Replies Latest reply on Jan 8, 2003 1:13 AM by Martin Rothenberger

    SerializableException: org.jboss.tm.TransactionImpl

    Kevin Urciolo Newbie

      Any ideas about the cause of this? I upgraded from 3.0.1 to 3.0.3 and started getting this problem?

      [STDERR] java.rmi.MarshalException: error marshalling arguments; nested exception is:
      SerializableException: org.jboss.tm.TransactionImpl
      [STDERR] at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:129)
      [STDERR] at org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invoke(Unknown Source)
      [STDERR] at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(JRMPInvokerProxy.java:129)
      [STDERR] at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:108)
      [STDERR] at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:77)
      [STDERR] at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:80)
      [STDERR] at org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeInterceptor.java:198)
      [STDERR] at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:76)
      [STDERR] at $Proxy14.create(Unknown Source)
      [STDERR] at org.cmis.transport.impl.jms.ejb.RemoteServiceManagerMDB.onMessage(RemoteServiceManagerMDB.java:75)
      [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      [STDERR] at java.lang.reflect.Method.invoke(Method.java:324)
      [STDERR] at org.jboss.ejb.MessageDrivenContainer$ContainerInterceptor.invoke(MessageDrivenContainer.java:391)
      [STDERR] at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:186)
      [STDERR] at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:88)
      [STDERR] at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:107)
      [STDERR] at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:178)
      [STDERR] at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:60)
      [STDERR] at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:100)
      [STDERR] at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:203)
      [STDERR] at org.jboss.ejb.MessageDrivenContainer.invoke(MessageDrivenContainer.java:302)
      [STDERR] at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:962)
      [STDERR] at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1038)
      [STDERR] at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:238)
      [STDERR] at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:603)
      [STDERR] at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:417)
      [STDERR] at org.jboss.mq.SpySession.run(SpySession.java:259)
      [STDERR] at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:177)
      [STDERR] at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:655)
      [STDERR] at java.lang.Thread.run(Thread.java:536)
      [STDERR] Caused by: java.io.NotSerializableException: org.jboss.tm.TransactionImpl
      [STDERR] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
      [STDERR] at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
      [STDERR] at org.jboss.invocation.MarshalledInvocation.writeExternal(MarshalledInvocation.java:377)
      [STDERR] at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1262)
      [STDERR] at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1243)
      [STDERR] at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
      [STDERR] at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
      [STDERR] at sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java:265)
      [STDERR] at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:124)

        • 1. Re: SerializableException: org.jboss.tm.TransactionImpl
          Daryl Hall Newbie

          Hi - I am getting the same error as below.

          I have 2 3.0.3 instances running 2 different apps - when I call one from the other over rmi I get the same exception as below.

          If I call the app with the same code in a harness outside any container - no probs.

          Any advise please!!!!!

          thanks


          > Any ideas about the cause of this? I upgraded from
          > 3.0.1 to 3.0.3 and started getting this problem?
          >
          > [STDERR] java.rmi.MarshalException: error marshalling
          > arguments; nested exception is:
          > SerializableException: org.jboss.tm.TransactionImpl
          > [STDERR] at
          > sun.rmi.server.UnicastRef.invoke(UnicastRef.java:129)
          > [STDERR] at
          > org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invo
          > e(Unknown Source)
          > [STDERR] at
          > org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.
          > nvoke(JRMPInvokerProxy.java:129)
          > [STDERR] at
          > org.jboss.invocation.InvokerInterceptor.invoke(Invoker
          > nterceptor.java:108)
          > [STDERR] at
          > org.jboss.proxy.TransactionInterceptor.invoke(Transact
          > onInterceptor.java:77)
          > [STDERR] at
          > org.jboss.proxy.SecurityInterceptor.invoke(SecurityInt
          > rceptor.java:80)
          > [STDERR] at
          > org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeInterce
          > tor.java:198)
          > [STDERR] at
          > org.jboss.proxy.ClientContainer.invoke(ClientContainer
          > java:76)
          > [STDERR] at $Proxy14.create(Unknown Source)
          > [STDERR] at
          > org.cmis.transport.impl.jms.ejb.RemoteServiceManagerMD
          > .onMessage(RemoteServiceManagerMDB.java:75)
          > [STDERR] at
          > sun.reflect.NativeMethodAccessorImpl.invoke0(Native
          > Method)
          > [STDERR] at
          > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMeth
          > dAccessorImpl.java:39)
          > [STDERR] at
          > sun.reflect.DelegatingMethodAccessorImpl.invoke(Delega
          > ingMethodAccessorImpl.java:25)
          > [STDERR] at
          > java.lang.reflect.Method.invoke(Method.java:324)
          > [STDERR] at
          > org.jboss.ejb.MessageDrivenContainer$ContainerIntercep
          > or.invoke(MessageDrivenContainer.java:391)
          > [STDERR] at
          > org.jboss.resource.connectionmanager.CachedConnectionI
          > terceptor.invoke(CachedConnectionInterceptor.java:186)
          >
          > [STDERR] at
          > org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor
          > invoke(MessageDrivenInstanceInterceptor.java:88)
          > [STDERR] at
          > org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext
          > AbstractTxInterceptor.java:107)
          > [STDERR] at
          > org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransact
          > ons(TxInterceptorCMT.java:178)
          > [STDERR] at
          > org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterc
          > ptorCMT.java:60)
          > [STDERR] at
          > org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(
          > unAsSecurityInterceptor.java:100)
          > [STDERR] at
          > org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterce
          > tor.java:203)
          > [STDERR] at
          > org.jboss.ejb.MessageDrivenContainer.invoke(MessageDri
          > enContainer.java:302)
          > [STDERR] at
          > org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(J
          > SContainerInvoker.java:962)
          > [STDERR] at
          > org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageL
          > stenerImpl.onMessage(JMSContainerInvoker.java:1038)
          > [STDERR] at
          > org.jboss.jms.asf.StdServerSession.onMessage(StdServer
          > ession.java:238)
          > [STDERR] at
          > org.jboss.mq.SpyMessageConsumer.sessionConsumerProcess
          > essage(SpyMessageConsumer.java:603)
          > [STDERR] at
          > org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageC
          > nsumer.java:417)
          > [STDERR] at
          > org.jboss.mq.SpySession.run(SpySession.java:259)
          > [STDERR] at
          > org.jboss.jms.asf.StdServerSession.run(StdServerSessio
          > .java:177)
          > [STDERR] at
          > EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker
          > run(PooledExecutor.java:655)
          > [STDERR] at
          > java.lang.Thread.run(Thread.java:536)
          > [STDERR] Caused by: java.io.NotSerializableException:
          > org.jboss.tm.TransactionImpl
          > [STDERR] at
          > java.io.ObjectOutputStream.writeObject0(ObjectOutputSt
          > eam.java:1054)
          > [STDERR] at
          > java.io.ObjectOutputStream.writeObject(ObjectOutputStr
          > am.java:278)
          > [STDERR] at
          > org.jboss.invocation.MarshalledInvocation.writeExterna
          > (MarshalledInvocation.java:377)
          > [STDERR] at
          > java.io.ObjectOutputStream.writeExternalData(ObjectOut
          > utStream.java:1262)
          > [STDERR] at
          > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectO
          > tputStream.java:1243)
          > [STDERR] at
          > java.io.ObjectOutputStream.writeObject0(ObjectOutputSt
          > eam.java:1052)
          > [STDERR] at
          > java.io.ObjectOutputStream.writeObject(ObjectOutputStr
          > am.java:278)
          > [STDERR] at
          > sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java
          > 265)
          > [STDERR] at
          > sun.rmi.server.UnicastRef.invoke(UnicastRef.java:124)

          • 2. Re: SerializableException: org.jboss.tm.TransactionImpl
            Martin Rothenberger Newbie

            Hi all,

            below you can find the solution to the problem, provided by original poster Daryl Hall. It works quite well for me.
            Have fun,
            Martin
            --------------------------------------------------------
            Hi - turns out it's the transaction manager.

            You need to either enable distributed transactions using tyrex or aply a work around like:

            TransactionManager manager = null;
            Transaction tx = null;
            try{
            manager = (TransactionManager) context.lookup("java:/TransactionManager");
            tx = manager.suspend();
            }catch(Exception ex){
            // log it
            }

            try{
            // Do remote stuff here...
            //
            }catch(RemoteException ex){
            // log it
            }finally{
            try{
            if(manager != null && tx != null){
            manager.resume(tx);
            }
            }catch(Exception ex){
            // log it
            }
            }

            This worked for me! Hope it helps.
            ------------------------------------------------------

            > Any ideas about the cause of this? I upgraded from
            > 3.0.1 to 3.0.3 and started getting this problem?
            >
            > [STDERR] java.rmi.MarshalException: error marshalling
            > arguments; nested exception is:
            > SerializableException: org.jboss.tm.TransactionImpl
            > [STDERR] at
            > sun.rmi.server.UnicastRef.invoke(UnicastRef.java:129)
            > [STDERR] at
            > org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invo
            > e(Unknown Source)
            > [STDERR] at
            > org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.
            > nvoke(JRMPInvokerProxy.java:129)
            > [STDERR] at
            > org.jboss.invocation.InvokerInterceptor.invoke(Invoker
            > nterceptor.java:108)
            > [STDERR] at
            > org.jboss.proxy.TransactionInterceptor.invoke(Transact
            > onInterceptor.java:77)
            > [STDERR] at
            > org.jboss.proxy.SecurityInterceptor.invoke(SecurityInt
            > rceptor.java:80)
            > [STDERR] at
            > org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeInterce
            > tor.java:198)
            > [STDERR] at
            > org.jboss.proxy.ClientContainer.invoke(ClientContainer
            > java:76)
            > [STDERR] at $Proxy14.create(Unknown Source)
            > [STDERR] at
            > org.cmis.transport.impl.jms.ejb.RemoteServiceManagerMD
            > .onMessage(RemoteServiceManagerMDB.java:75)
            > [STDERR] at
            > sun.reflect.NativeMethodAccessorImpl.invoke0(Native
            > Method)
            > [STDERR] at
            > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMeth
            > dAccessorImpl.java:39)
            > [STDERR] at
            > sun.reflect.DelegatingMethodAccessorImpl.invoke(Delega
            > ingMethodAccessorImpl.java:25)
            > [STDERR] at
            > java.lang.reflect.Method.invoke(Method.java:324)
            > [STDERR] at
            > org.jboss.ejb.MessageDrivenContainer$ContainerIntercep
            > or.invoke(MessageDrivenContainer.java:391)
            > [STDERR] at
            > org.jboss.resource.connectionmanager.CachedConnectionI
            > terceptor.invoke(CachedConnectionInterceptor.java:186)
            >
            > [STDERR] at
            > org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor
            > invoke(MessageDrivenInstanceInterceptor.java:88)
            > [STDERR] at
            > org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext
            > AbstractTxInterceptor.java:107)
            > [STDERR] at
            > org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransact
            > ons(TxInterceptorCMT.java:178)
            > [STDERR] at
            > org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterc
            > ptorCMT.java:60)
            > [STDERR] at
            > org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(
            > unAsSecurityInterceptor.java:100)
            > [STDERR] at
            > org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterce
            > tor.java:203)
            > [STDERR] at
            > org.jboss.ejb.MessageDrivenContainer.invoke(MessageDri
            > enContainer.java:302)
            > [STDERR] at
            > org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(J
            > SContainerInvoker.java:962)
            > [STDERR] at
            > org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageL
            > stenerImpl.onMessage(JMSContainerInvoker.java:1038)
            > [STDERR] at
            > org.jboss.jms.asf.StdServerSession.onMessage(StdServer
            > ession.java:238)
            > [STDERR] at
            > org.jboss.mq.SpyMessageConsumer.sessionConsumerProcess
            > essage(SpyMessageConsumer.java:603)
            > [STDERR] at
            > org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageC
            > nsumer.java:417)
            > [STDERR] at
            > org.jboss.mq.SpySession.run(SpySession.java:259)
            > [STDERR] at
            > org.jboss.jms.asf.StdServerSession.run(StdServerSessio
            > .java:177)
            > [STDERR] at
            > EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker
            > run(PooledExecutor.java:655)
            > [STDERR] at
            > java.lang.Thread.run(Thread.java:536)
            > [STDERR] Caused by: java.io.NotSerializableException:
            > org.jboss.tm.TransactionImpl
            > [STDERR] at
            > java.io.ObjectOutputStream.writeObject0(ObjectOutputSt
            > eam.java:1054)
            > [STDERR] at
            > java.io.ObjectOutputStream.writeObject(ObjectOutputStr
            > am.java:278)
            > [STDERR] at
            > org.jboss.invocation.MarshalledInvocation.writeExterna
            > (MarshalledInvocation.java:377)
            > [STDERR] at
            > java.io.ObjectOutputStream.writeExternalData(ObjectOut
            > utStream.java:1262)
            > [STDERR] at
            > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectO
            > tputStream.java:1243)
            > [STDERR] at
            > java.io.ObjectOutputStream.writeObject0(ObjectOutputSt
            > eam.java:1052)
            > [STDERR] at
            > java.io.ObjectOutputStream.writeObject(ObjectOutputStr
            > am.java:278)
            > [STDERR] at
            > sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java
            > 265)
            > [STDERR] at
            > sun.rmi.server.UnicastRef.invoke(UnicastRef.java:124)