3 Replies Latest reply on Jul 24, 2002 11:14 AM by Joe Simone

    single client perfect, 2nd client crashes

    Joe Simone Newbie

      Hey all,

      I have a situation where if I hammer the 3.0 app server all day long with a single client it works fine. As soon as I start another exact same client (from the command line in both cases) I get the following :


      [java] java.rmi.UnmarshalException: Error unmarshaling return; nested exception is:
      [java] java.lang.ClassNotFoundException: COM.ibm.db2.jdbc.DB2Exception (no security manager: RMI class loader d
      isabled)
      [java] java.lang.ClassNotFoundException: COM.ibm.db2.jdbc.DB2Exception (no security manager: RMI class loader disab
      led)
      [java] at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:313)
      [java] at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:127)
      [java] at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:138)
      [java] at java.io.ObjectInputStream.inputClassDescriptor(ObjectInputStream.java:913)
      [java] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:361)
      [java] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:231)
      [java] at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1181)
      [java] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:381)
      [java] at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2258)
      [java] at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:514)
      [java] at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1407)
      [java] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:381)
      [java] at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2258)
      [java] at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:514)
      [java] at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1407)
      [java] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:381)
      [java] at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2258)
      [java] at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:514)
      [java] at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1407)
      [java] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:381)
      [java] at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2258)
      [java] at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:514)
      [java] at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1407)
      [java] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:381)
      [java] at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2258)
      [java] at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:514)
      [java] at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1407)
      [java] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:381)
      [java] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:231)
      [java] at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:207)
      [java] at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:117)
      [java] at org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invoke(Unknown Source)
      [java] at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(JRMPInvokerProxy.java:128)
      [java] at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:108)
      [java] at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:73)
      [java] at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:76)
      [java] at org.jboss.proxy.ejb.StatefulSessionInterceptor.invoke(StatefulSessionInterceptor.java:117)
      [java] at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:76)
      [java] at $Proxy1.addSession(Unknown Source)
      [java] at com.highnotes.ebu.client.util.GenerateSampleData.createSessions(GenerateSampleData.java:215)
      [java] at com.highnotes.ebu.client.util.GenerateSampleData.createAll(GenerateSampleData.java:92)
      [java] at com.highnotes.ebu.client.test.Stress_1.main(Stress_1.java:92)

      BUILD SUCCESSFUL
      Total time: 35 seconds


      Can anyone give me a hint as to why this would be or what I need to fix in order to make this work.

      Kind regards,
      joe

      P.S. Thus far I have very impressed with the functionality and stability of the JBoss 3.0 app server. Great work!

        • 1. Re: single client perfect, 2nd client crashes
          Mikael Eriksson Novice

          Check the server log and see what it says. You might be running out of DB connections or something like thit.

          Regards

          • 2. Re: single client perfect, 2nd client crashes
            Joel Vogt Master

            Are you setting the class path when you are running these clients?
            Is this all happening on one machine?

            • 3. Re: single client perfect, 2nd client crashes
              Joe Simone Newbie

              Ok, I re-ran the test. Both clients are on the same machine and it's always the second client I start. In the dozen or so times I've been playing with this it hasn't been the first client started that had the problem.

              Checking the server.log file reveals the following deadlock condition. Also when the second client dies the first one keeps humming right along until completion of the test successfully. I am assuming since both clients are running the identical test case, they are both trying to access the same data at the same time - hence the condition. I don't know what to do about it though.


              Many thanks!
              joe

              2002-07-24 10:17:57,358 ERROR [org.jboss.ejb.plugins.LogInterceptor] TransactionRolledbackException, causedBy:
              COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver][DB2/NT] SQL0911N The current transaction has been rolled back because of a deadlock or timeout. Reason code "2". SQLSTATE=40001

              at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(SQLExceptionGenerator.java:270)
              at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(SQLExceptionGenerator.java:207)
              at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.check_return_code(SQLExceptionGenerator.java:458)
              at COM.ibm.db2.jdbc.app.DB2PreparedStatement.execute2(DB2PreparedStatement.java:2110)
              at COM.ibm.db2.jdbc.app.DB2PreparedStatement.executeQuery(DB2PreparedStatement.java:1596)
              at org.jboss.resource.adapter.jdbc.local.LocalPreparedStatement.executeQuery(LocalPreparedStatement.java:289)
              at org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.execute(JDBCLoadEntityCommand.java:117)
              at org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.execute(JDBCLoadEntityCommand.java:62)
              at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.loadEntity(JDBCStoreManager.java:495)
              at org.jboss.ejb.plugins.CMPPersistenceManager.loadEntity(CMPPersistenceManager.java:410)
              at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.loadEntity(CachedConnectionInterceptor.java:353)
              at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invoke(EntitySynchronizationInterceptor.java:310)
              at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:186)
              at org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityInstanceInterceptor.java:193)
              at org.jboss.ejb.plugins.EntityLockInterceptor.invoke(EntityLockInterceptor.java:107)
              at org.jboss.ejb.plugins.EntityCreationInterceptor.invoke(EntityCreationInterceptor.java:69)
              at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:96)
              at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:167)
              at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:61)
              at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:129)
              at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:166)
              at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:493)
              at org.jboss.ejb.plugins.local.BaseLocalContainerInvoker.invoke(BaseLocalContainerInvoker.java:296)
              at org.jboss.ejb.plugins.local.EntityProxy.invoke(EntityProxy.java:38)
              at $Proxy46.addSession(Unknown Source)
              at com.highnotes.ebu.enrollment.eventmanager.EventManagerBean.addSession(EventManagerBean.java:674)
              at java.lang.reflect.Method.invoke(Native Method)
              at org.jboss.ejb.StatefulSessionContainer$ContainerInterceptor.invoke(StatefulSessionContainer.java:823)
              at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:129)
              at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:186)
              at org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(StatefulSessionInstanceInterceptor.java:266)
              at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:96)
              at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:167)
              at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:61)
              at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:166)
              at org.jboss.ejb.StatefulSessionContainer.invoke(StatefulSessionContainer.java:380)
              at org.jboss.ejb.Container.invoke(Container.java:705)
              at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:491)
              at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:362)
              at java.lang.reflect.Method.invoke(Native Method)
              at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:236)
              at sun.rmi.transport.Transport$1.run(Transport.java:147)
              at java.security.AccessController.doPrivileged(Native Method)
              at sun.rmi.transport.Transport.serviceCall(Transport.java:143)
              at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
              at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
              at java.lang.Thread.run(Thread.java:479)