1 Reply Latest reply on Oct 10, 2005 12:58 AM by Sebastian Schmidt

    java.lang.NoSuchMethodError:

    Sebastian Schmidt Newbie

      Hi,
      First of all I hope you don?t mind me posting in JBossCache Forum, because my problem is spanning from transactions over clustering to JBossCache.
      The problem is, that we had developed a distributed cache with replication for entity beans, which worked quite well on JBoss 3.2.5, but after an update to JBoss 4.0.2 we have the following problem:

      2005-10-08 13:51:44,945 DEBUG [session.ejb.ShareManagerBean] duration to get bean with id 158: 0 ms
      2005-10-08 13:51:44,945 DEBUG [session.ejb.ShareManagerBean] duration to find bean with id 158: 0.108 ms
      2005-10-08 13:51:44,946 DEBUG [org.jboss.cache.replication.EntityBeanCacheReplicationInterceptor] Appending replication for shares: 158:setPrice:0.7442553316563668:0.434553278733968
      2005-10-08 13:51:44,946 DEBUG [session.ejb.ShareManagerBean] duration to update bean with id 158: 0.23 ms
      2005-10-08 13:51:44,946 DEBUG [session.ejb.ShareManagerBean] End updateShares([], [])
      2005-10-08 13:51:44,946 DEBUG [org.jboss.ha.framework.server.HAPartitionImpl] dests=null, method_call=ReplicatedCache._rpc_runPrepare(<pc-lg41-4:1099>:5, [Ljava.lang.String;@1981b57, [Lorg.jboss.cache.replication.BatchReplication;@12b2a18), mode=2, timeout=60000
      2005-10-08 13:51:44,956 DEBUG [org.jboss.ha.framework.server.HAPartitionImpl] real_dests=[pc-lg41-4:32814 (additional data: 17 bytes), pc-lg41-5:33028 (additional data: 17 bytes)]
      2005-10-08 13:51:44,972 DEBUG [org.jboss.ha.framework.server.HAPartitionImpl] responses: [sender=pc-lg41-4:32814 (additional data: 17 bytes), retval=java.lang.NoSuchMethodError: org.jboss.cache.TransactionEntry.<init>([Lorg/jboss/cache/replication/BatchReplication;)V, received=true, suspected=false]
      [sender=pc-lg41-5:33028 (additional data: 17 bytes), retval=java.lang.NoSuchMethodError: org.jboss.cache.TransactionEntry.<init>([Lorg/jboss/cache/replication/BatchReplication;)V, received=true, suspected=false]
      
      2005-10-08 13:51:44,972 DEBUG [org.jboss.cache.replication.ReplicatedCacheManager] Prepare Time 26
      2005-10-08 13:51:44,972 DEBUG [org.jboss.ha.framework.server.HAPartitionImpl] dests=null, method_call=ReplicatedCache._rpc_runCommit(<pc-lg41-4:1099>:5, [Ljava.lang.String;@19e67d4), mode=2, timeout=60000
      2005-10-08 13:51:44,972 DEBUG [org.jboss.ha.framework.server.HAPartitionImpl] real_dests=[pc-lg41-4:32814 (additional data: 17 bytes), pc-lg41-5:33028 (additional data: 17 bytes)]
      2005-10-08 13:51:44,998 DEBUG [org.jboss.ha.framework.server.HAPartitionImpl] responses: [sender=pc-lg41-4:32814 (additional data: 17 bytes), retval=java.lang.NoSuchMethodError: org.jboss.cache.TransactionEntry.releaseAllLocks()V, received=true, suspected=false]
      [sender=pc-lg41-5:33028 (additional data: 17 bytes), retval=java.lang.NoSuchMethodError: org.jboss.cache.TransactionEntry.releaseAllLocks()V, received=true, suspected=false]
      
      2005-10-08 13:51:44,998 DEBUG [org.jboss.cache.replication.ReplicatedCacheManager] Commit Time 26
      2005-10-08 13:51:45,000 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreEntityCommand.shares] Executing SQL: UPDATE SHARES SET price=? WHERE id=?
      


      Here the trace from JBoss 3.2.5:

      2005-10-08 12:47:03,255 DEBUG [session.ejb.ShareManagerBean] duration to get bean with id 1310: 0 ms
      2005-10-08 12:47:03,255 DEBUG [session.ejb.ShareManagerBean] duration to find bean with id 1310: 0.233 ms
      2005-10-08 12:47:03,255 DEBUG [org.jboss.cache.replication.EntityBeanCacheReplicationInterceptor] Appending replication for shares: 1310:setPrice:0.36515224658099643:0.262228235738856
      2005-10-08 12:47:03,256 DEBUG [session.ejb.ShareManagerBean] duration to update bean with id 1310: 0.483 ms
      2005-10-08 12:47:03,256 DEBUG [session.ejb.ShareManagerBean] End updateShares([], [])
      2005-10-08 12:47:03,258 DEBUG [org.jboss.ha.framework.server.HAPartitionImpl] dests=null, method_call=ReplicatedCache._rpc_runPrepare(<pc-lg41-4:1099>:2, [Ljava.lang.String;@1e6612c, [Lorg.jboss.cache.replication.BatchReplication;@1f5b38e), mode=2, timeout=60000
      2005-10-08 12:47:03,315 DEBUG [org.jboss.ha.framework.server.HAPartitionImpl] real_dests=[pc-lg41-5:33013 (additional data: 17 bytes), pc-lg41-4:32796 (additional data: 17 bytes)]
      2005-10-08 12:47:03,450 DEBUG [org.jboss.cache.replication.ReplicableEntityInstanceCache] Begin updateEntityEnterpriseContext()
      2005-10-08 12:47:03,450 DEBUG [org.jboss.cache.replication.ReplicableEntityInstanceCache] Updated field: price NewValue = 0.5890740802988752
      2005-10-08 12:47:03,450 DEBUG [org.jboss.cache.replication.ReplicableEntityInstanceCache] Current cache size = 377
      2005-10-08 12:47:03,450 DEBUG [org.jboss.cache.replication.ReplicableEntityInstanceCache] Called beanLock.sync() for shares bean [pk = 764]
      


      So my questions are:
      1) Have you changed something with the transactions? (couldn?t find a big difference in the source code)
      2) How far have you proceeded with your replication solution for entity beans in JBossCache? (I saw, that you had it on your to-do-list in the clustering webinar) So maybe I could use that solution instead?
      3) And have you developed a transactional support for the invalidation framework?
      4) And if you don?t have 2 or 3, how does it come, that invalidation of entity beans is so much faster in JBoss 4.0.2 than in JBoss 3.2.5?

      Thanks for your help,

      Sebastian Schmidt