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

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

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

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
              Archiver:
              rhn-support-adongare Amol Dongare

                Created:
                Updated:
                Resolved:
                Archived: