7 Replies Latest reply on Jan 25, 2006 4:29 PM by dimitris

    Consistency in JMX naming

    ghinkle

      I'd like to reopen the question of why hashcodes are being added to jndi names should local-jndi-name not be set (http://jira.jboss.com/jira/browse/JBAS-275). This issue creates a big problem for building mangement services. We can not require all customers to set a local-jndi-name, nor should we have to as this is due to an implementation detail.

      I've seen it mentioned that the hashcode is used intstead of the archive name because a jar could be deployed in two ears. In that case use ear/jar/name. I see the case for use refs for JNDI lookup, but I can't agree with not having a stable ObjectName. Other servers vary the domain, or utilize a separate (stable) key property.

      Just wanted to see what others thought about the importance of stable jmx object names. I saw Scott mention in a post that he thought the jsr77 name should break out the id into a separate keyproperty (http://www.jboss.com/index.html?module=bb&op=viewtopic&t=60696) but that doesn't seem to have been done.

        • 1. Re: Consistency in JMX naming
          starksm64

          The issue really isn't why the local-jndi-name is variable, its why the local-jndi-name is being used in the jmx name. The jmx name should be independent of this using the deployment structure and ejb-name as this has to be unique.

          • 2. Re: Consistency in JMX naming
            ghinkle

            Absolutely agree with that. I'm just saying that the fix for the jndi problem has caused other problems in the jmx area. Object names need to be unique obviously and I was proposing a way to make them unique, but stable. As far as I'm concerned the jndi fix caused a regression in proper jmx support.

            • 3. Re: Consistency in JMX naming
              ghinkle

              Looking into the jsr-77 spec further... it states "The value of the name key property for managed object instances of the J2EEDomain type must be equivalent to the domain name of the domain it
              manages.
              "(JSR-77 FR, 22-23)

              JBoss uses the domain jboss.management.local even when the J2EEDomain object declares the domain to be Manager.

              e.g.

              J2EEApplication=null,J2EEServer=Local,ServiceModule=jboss-service.xml,j2eeType=MBean,name=jboss.management.local:j2eeType=J2EEDomain,name=Manager



              I'd still like to see the service EJB fixed as well though.

              • 4. Re: Consistency in JMX naming
                starksm64

                So lets fix the object names. The JSR77 names are independent of the ejb container names and can be fixed without any changes to the ejb container use of jmx names.

                • 5. Re: Consistency in JMX naming
                  starksm64

                  We also need testscases asserting the consistency and structure of the names used. All projects need to be cooperating in terms of asserting which apis are being used by providing or at least creating jira issues for their usage requirements.

                  • 6. Re: Consistency in JMX naming
                    starksm64
                    • 7. Re: Consistency in JMX naming
                      dimitris

                      Regarding jsr77 names, although it is now clearer how to identify the jsr77 root domains, I think we could consider leaving inside the 'jboss.management.local' domain only the jsr77 generated mbeans, and take outside the 2 "manager" services. So

                      jboss.management.local:j2eeType=J2EEDomain,name=Manager
                      jboss.management.local:name=DefaultManager,type=JSR88DeploymentManager
                      

                      Could be:
                      jboss.management:service=JSR77DomainManager
                      jboss.management:service=JSR88DeploymentManager
                      

                      I don't think there are other services referencing the 2 manager mbeans?