7 Replies Latest reply on Jun 6, 2007 11:58 AM by Brian Stansberry

    ClusteredCacheLoader should be configured as shared?

    Brian Stansberry Master

      Should CCL be configured as shared? It doesn't do any writes anyway, and configuring it as shared may solve some issues. Think it needs to be shared to avoid the "Major" issue noted below:

      ClusteredCacheLoader.remove(Fqn, Object) does a clustered get so it can returned the removed value. Jimmy Wilson and I found this leads to a couple odd problems:

      Minor:

      Object being removed is in memory. Call to Cache.remove(Fqn, Object) hits CacheStoreInterceptor, which calls to CCL, which makes a call around the cluster just so it can tell CSI what the return value is. Inefficient.

      Major:

      Above remove() call replicates. Now on the remote node, the remove is executed. Same thing happens, except now, the "ClusteredGet" call is made by the JGroups up_thread. Call back into cluster from up_thread == deadlock until the "clustered get" times out.

      Jimmy's testing whether shared=true causes problems.