Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-754

Build object names that follow best practices, are clearer and avoid confusion

XMLWordPrintable

    • Documentation (Ref Guide, User Guide, etc.), Release Notes

      CacheManager JMX object names need revisiting to better follow best practices (http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/best-practices.jsp#mozTocId654884) and enable easier identification in multi CacheManager environments.

      At the moment, cache managers follow this pattern: *:cache-name="[global]",jmx-resource=CacheManager and in app server environments, we can find these names deployed:

      [infinispan4:cache-name="[global]",jmx-resource=CacheManager,
      infinispan3:cache-name="[global]",jmx-resource=CacheManager,
      infinispan:cache-name="[global]",jmx-resource=CacheManager,
      infinispan2:cache-name="[global]",jmx-resource=CacheManager]

      Suggestions:

      1. As per best practices, the ON should start with the java package name, so preferably the default domain name should be: org.infinispan.

      2. Every ON should contain a type=key for each object type. In Infinispan, we differentiate between CacheManager and Cache, so accordingly, we should have: type=CacheManager and type=Cache

      3. A name property should be available to differentiate each ON of a particular type. cache-name is not good for this cos it's only meaningful at the cache level and can confuse people searching for CacheManager instances.

      I think it's good that we keep a jmxDomain optionally configurable, but we should add name to globalJmxStatistics configuration to define the cache manager name and to avoid confusion with domain redefinition. The end result for a CacheManager object name would be:

      org.infinispan:type=CacheManager,name="Hibernate2LC"
      org.infinispan:type=CacheManager,name="HttpSession"
      org.infinispan:type=CacheManager,name="Ejb3SfsbState"
      ...etc

      At the cache level, currently JMX names would look like:

      infinispan:cache-name="MyCache(local)",jmx-resource=Cache

      This should be transformed into something along the lines of:

      org.infinispan:type=Cache,mode=local,name="MyCache"

              rh-ee-galder Galder ZamarreƱo
              rh-ee-galder Galder ZamarreƱo
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: