Use the Key Property List to Help Avoid Collisions
The domain name is only part of what makes up the object name of an MBean. The key property list, which makes up the rest, is an unordered set of key/value pairs. The specification imposes no explicit restrictions on how you can assign key properties, other than requiring that there be at least one key property, and that all are in the following format:
property1=value1[,propertyN=valueN]
The specification makes it clear that the key property list enables uniqueness among MBean names within a given domain (and within a given MBean server instance). It is logical, then, to establish some guidelines for naming key properties. For the purposes of this example, assume that we are talking about MBeans within the same domain. Here are some recommendations.
First, define a key property called name and use
that property to establish uniqueness within a given domain. The
value of this property should be the same as the Java class
(unqualified) of the MBean. For example, suppose you have a payroll
system with a queue resource for processing vendor payments called
VendorQueue within the
com.acme.accounting.payable domain. You could
define a key property called name that would take
the form:
name=VendorQueue
The resulting object name would be:
com.acme.accounting.payable:name=VendorQueue
If you want to register multiple instances of the same MBean class in
the same domain, define a key property called
instanceId that contains a unique identifier ...