2014-10-08 3 views
0

JBoss 4/5 MBeans, такие как NamingAlias ​​определены в XML следующим образомЗначение имени атрибута в JBoss MBean XML дескрипторе

<mbean code="org.jboss.naming.NamingAlias" name=":service=NamingAlias,fromName=queue/original"> 
    <attribute name="ToName">queue/linked</attribute> 
    <attribute name="FromName">queue/original</attribute> 
</mbean> 

Обращая внимание на атрибут name=":service=NamingAlias,fromName=queue/original я вижу параметры service и fromName.

Следуя инструкциям, чтобы создать пользовательские MBean здесь:

https://developer.jboss.org/wiki/ExampleHelloWorldService

Конфигурация XML для MBean, созданного в

<server> 
    <mbean code="com.acme.HelloWorldService" name="acme.com:service=HelloWorld"> 
    <attribute name="Message">Hello World</attribute> 
    </mbean> 
</server> 

Я заметил только service указан в имени атрибута.

Обязательно ли обслуживание для всех бобов? Как добавить дополнительные параметры, например fromName? Могут ли эти значения использоваться из класса, который реализует MBean, или тех, кто назначен?

ответ

1

Атрибут может быть любым действительным (и уникальным) JMX ObjectName. Ключи и ценности сами по себе не имеют никакого особого значения, кроме их субъективного значения для разработчика.

В первом примере ObjectName не указывает домен (значение слева от двоеточия), так что MBeanServer принимает домен по умолчанию, который в данном случае будет JBoss так умозрительно:

:service=NamingAlias,fromName=queue/original == jboss:service=NamingAlias,fromName=queue/original 

Имя объекта (и его встроенный домен и ключ/значения) может использоваться внутри класса. В стандартном JMX обычно можно было бы внедрить imx MBeanRegistration, который вводит MBeanServer и ObjectName при регистрации компонента. Однако приведенный вами пример является специализированным JBoss ServiceMBean, который делает это автоматически, и ваша реализация будет хранить ObjectName в поле с именем serviceName.

Смежные вопросы