Uploaded image for project: 'Application Server 3  4  5 and 6'
  1. Application Server 3 4 5 and 6
  2. JBAS-1601

Insufficient cache invalidation.

XMLWordPrintable

    • Icon: Feature Request Feature Request
    • Resolution: Obsolete
    • Icon: Minor Minor
    • No Release
    • None
    • EJB2
    • None

      We have a CMP2.0 bean with some extra persistent state that the CMP engine cannot handle. To ensure that the extra state is saved to persistent storage we use call-ejb-store-on-clean=true to ensure that ejbStore is called as the spec requires. So far no problem.

      The problem comes when we use this bean in a clustered environment (commit option B) and do the dual-deployment RW/RO pattern with cache invalidations.

      In this case a cache invalidation is not sent out from the RW deployment to the RO deployment if the only persistent state changed is the non-CMP-managed persistent state.

      To get around this problem we have written a new interceptor EntityBeanCacheBatchEagerInvalidatorInterceptor. Replacing the standard EntityBeanCacheBatchInvalidatorInterceptor with this interceptor ensures that cache invalidation messages are always sent unless the bean is read-only, or the entity method call is read-only.

      I will attach this interceptor written for 3.2.6 (ie. a contribution).

      I would like this - or something similar - to be part of future JBoss versions.

              Unassigned Unassigned
              husgaard Husgaard (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: