Dotted Names and Object Names

in S1AS8 PE/SE/EE

Last Modified: 02 Dec 2003 08:49 PST
Version: 0.97

1. Introduction

This document documents the relationship between MBeans and their equivalent dotted names as seen in CLI. Some dotted names are refer to configuration, and some refer to transient attributes (eg monitoring).

1.1 Formal definition of a "dotted name"

dotted-name = [ domain-name ':' ]scope-name '.' [ path '.' ]value-name
domain-name = name-part
scope-name = name-part | 'domain'

path = [ path-elem [ '.' path-elem ]*]
path-elem = name-part
name-part = string
string = letter[ letter | digit | special-char | escaped-char ]*
letter = [a-zA-Z]
digit = [0-9]
special-char = [_-{}()[]<>]
escaped-char = escape-char escapable-char
escape-char = '\'
escapable-char = [.]

NOTES on this syntax within the context of Appserver 8 PE:

  1. the first name part is defined as the "scope".
  2. the scope-name is restricted to literal string "server", "server-config", or 'domain'.
  3. when interpreting a dotted name, a value-name is either (1) the last name-part or (2) the last two name parts, the first of which is "property" eg property.name (the literal string "property." followed by the name of the property).

Examples:

domain.locale
mydomain:domain.locale // NOTE: not supported in PE!

server.http-service.http-listener.listener\.1.port
server.http-service.http-listener.listener-1.port

myserver.http-service.http-listener.listener-1.port
config1.http-service.http-listener.listener-1.port

config1.http-service.qos-enabled
config1.http-service.properties.name

Implementation notes & assumptions:

2. Mapping (general)

This section discusses how mapping is done between dotted names and MBean ObjectName in Appserver 8 PE. There are four distinct pieces of the dotted name that need to be mapped:

2.1 Mapping domain

The optional domain part of the dotted name is intended for future use whereby a front-end (proxy) could allow management of more than one domain and/or where we choose to allow more complex multi-domain systems. In such a case, the domain name would be used to select an appropriate DAS to use. This portion of the syntax is reserved for future use.

2.2 Mapping a DottedName to an ObjectName

A dotted name consists of a prefix, which corresponds to an ObjectName, and, if the operation is a 'get' or 'set', the name of an Attribute or Property. In the case of 'list' the entire dotted name is the prefix.

Mapping is done by a straightforward lookup from a DottedNameRegistry MBean which maintains a mapping from DottedNames to ObjectNames, and vice versa.

2.3 Mapping values

There are 3 types of values:

Attributes are mapped to MBean Attributes. In 8.0 the values will have exactly the same name as in the XML. This will provide better consistency between the XML and the CLI. However, 7.0 camel-casing will still be supported; any value-name not containing a '-' and which also contains upper-case letter(s) will be mapped to its '-' equivalent.

Properties have names whose next-to-last part is "property". The last part is used literally as the name of the property element within the enclosing element. Properties are handled specially by the operations setProperty() and getProperty(), and are not exposed as Attributes. However, this fact is not exposed to the user.

 

3. The dotted namespace enumerated

3.1 Compatibility with 7.0

Unlike 7.0, which had multiple names for the same target, in 8.0 there will be exactly one dotted name for an MBean. The implication of this is that 7.0 dotted names will not be supported. However, if research reveals that 7.0 dotted name compatibility is necessary, additional aliases can be accomodated. An alias will be an additional dotted name by which the same MBean may be accessed.

NOTE: the preceeding position is under evaluation as of 02 Dec 2003.

Supporting 7.0 compatibility brings with it a number of issues:

3.2 Enumeration of dotted names

Each prefix listed in this section can be followed by a value-name. This is typically the name of a configuration value, but could also be a monitorable attribute. In fact it may be any accessible Attribute of an MBean and or any data we wish to make available via a dotted name.

In the enumeration below, any name part which is italicized is to be replaced by an appropriate name. For example, config is to be understand as the name of a <config> element. The special name-part server is to be understood as the name of a <server> element or, in PE only, the literal string 'server', which refers to the one and only <server> element.

3.2.1 Legal dotted names (prefixes) for config

These names are prefixes; that is they are the scope-name and path portions of the dotted name. The entire set of named values is not enumerated here as it would add little value, and would be hard to maintain.

Note: this list was last updated as of 18 Nov, 2003. To get the very latest list of names, run the following command:

asadmin list domain* server* server-config*

Elements shown in <> characters indicate that the names may vary according to server configuration and that there may be more than one such element (each with a different name).

domain
domain.applications
domain.applications.j2ee-application.<name>
domain.applications.web-module.<module-name>
domain.applications.ejb-module.<module-name>
domain.configs
domain.resources
domain.resources.jdbc-connection-pool.<pool-name>
domain.resources.jdbc-resource.<pool-name>
domain.servers

server-config
server-config.admin-service
server-config.admin-service.das-config
server-config.ejb-container
server-config.http-service
server-config.http-service.http-listener.admin-listener
server-config.http-service.http-listener.http-listener-1
server-config.http-service.http-listener.http-listener-2
server-config.iiop-service
server-config.iiop-service.iiop-listener.SSL
server-config.iiop-service.iiop-listener.SSL.ssl
server-config.iiop-service.iiop-listener.SSL_MUTUALAUTH
server-config.iiop-service.iiop-listener.SSL_MUTUALAUTH.ssl
server-config.iiop-service.iiop-listener.orb-listener-1
server-config.iiop-service.orb
server-config.java-config
server-config.jms-service
server-config.jms-service.jms-host.default_JMS_host
server-config.log-service
server-config.log-service.module-log-levels
server-config.mdb-container
server-config.monitoring-service
server-config.monitoring-service.module-monitoring-levels
server-config.security-service
server-config.security-service.audit-module.default
server-config.security-service.auth-realm.certificate
server-config.security-service.auth-realm.file
server-config.security-service.jacc-provider.default
server-config.thread-pools
server-config.thread-pools.thread-pool.thread-pool-1
server-config.transaction-service
server-config.virtual-server.<name>
server-config.web-container


server
server.admin-service
server.admin-service.das-config
server.application-ref.MEjbApp
server.application-ref.__ejb_container_timer_app
server.application-ref.<app-name>
server.applications
server.applications.web-module.<module-name>
server.ejb-container
server.http-service
server.http-service.http-listener.<listener-name>
server.iiop-service
server.iiop-service.iiop-listener.SSL
server.iiop-service.iiop-listener.SSL.ssl
server.iiop-service.iiop-listener.SSL_MUTUALAUTH
server.iiop-service.iiop-listener.SSL_MUTUALAUTH.ssl
server.iiop-service.iiop-listener.<listener-name>
server.iiop-service.orb
server.java-config
server.jms-service
server.jms-service.jms-host.default_JMS_host
server.log-service
server.log-service.module-log-levels
server.mdb-container
server.monitoring-service
server.monitoring-service.module-monitoring-levels
server.resource-ref.<ref-name>
server.resources
server.resources.jdbc-connection-pool.<pool-name>
server.resources.jdbc-resource.<resource-name>
server.security-service
server.security-service.audit-module.default
server.security-service.audit-module.<name>
server.security-service.auth-realm.certificate
server.security-service.auth-realm.file
server.security-service.jacc-provider.default
server.thread-pools
server.thread-pools.thread-pool.<name>
server.transaction-service
server.virtual-server.<name>
server.web-container

3.2.2 Legal dotted names for monitoring in 8.0

Monitoring dotted names will be based on server name, not config-name. Thus scope can never be config-element, only a server-element or 'domain'. In other words, there is no aliasing of monitorable attributes.

server
server.applications
server.applications.<app-name>.<ejb-jar-name>
server.applications.<app-name>.<ejb-jar-name>.bean-method.<bean-method-name>
server.applications.<app-name>.<ejb-jar-name>.<bean-name>
server.applications.<app-name>.<ejb-jar-name>.bean-methods
server.applications.<app-name>.<ejb-jar-name>.bean-pool
server.http-service
server.http-service.server
server.http-service.server.http-listener-1
server.http-service.server.http-listener-2
server.jvm
server.orb
server.orb.connection-managers
server.resources
server.resources.__TimerPool
server.thread-pools
server.thread-pools.orb\.threadpool\.Mthread-pool-name>
server.transaction-service

 

3.2.3 Legal dotted name prefixes for 7.0

All configuration in S1AS7 resided under a server. In S1AS8, resources and applications have been moved into the domain and instead associated with a server. For example, server.mail-resource.name is now domain.mail-resource.name. These resources are marked with a*.

This list does not include the ".property" variants. The items listed with an M after them are prefixes that refer to both config and monitoring. Names that are no longer available in S1AS8 are marked with an X.

Issue:

server
server.http-service M
server.http-service.http-listener.name
server.http-listener.name
server.orb
server.iiop-service
server.orblistener.name
server.iiop-listener.name
server
.jdbc-resource.name*
server
.jdbc-connection-pool.name*
server
.external-jndi-resource.name*
server
.jndi-resource.name*
server
.custom-resource.name*
server
.transaction-service M
server
.mdb-container
server
.ejb-container
server
.web-container
server
.jms-service
server
.jms-resource.name X
server
.jms-service.jms-resource.name X
server
.java-config
server
.log-service
server
.security-service
server
.j2ee-application.name*
server
.application.name*
server
.ejb-module.name*
server
.web-module.name*
server
.j2ee-application.name.ejb-module.name*
server
.application.name.ejb-module.name*
server
.j2ee-application.name.web-module.name*
server
.application.name.web-module.name*
server
.connector-module.name*
server
.lifecycle-module.name*
server
.virtual-server-class X
server
.virtual-server.name
server
.mime.name
server
.acl.name
server
.http-service.acl.name
server
.virtual-server.name.auth-db.name
server
.authrealm.name
server
.security-service.authrealm.name X
server
.persistence-manager-factory-resource.name*
server
.resources.persistence-manager-factory-resource.name*
server
.mail-resource.name*
server
.profiler