JBossで使用されているMBeanを掘り下げていきます。バージョンは4.0.2で。
まずはserver/default/conf/jboss-service.xmlに定義されてるやつから。これがJBossの核になるMBeanと思っていいでしょう…と思ったけれど、その前に、「起動シーケンス」の時にも書いたけど、conf/jboss-service.xmlを読み込む前にハードコーディングで登録されるMBeanがある。つまりサーバ設定セットがminimalだろうがallだろうがここまでは同じMBeanが登録されるということ。
- JMImplementation:type=MBeanServerDelegate
実体はjavax.management.MBeanServerDelegate。多分JMXの仕様上必要なだけで特に何もしない。Specバージョンは1.2です
- JMImplementation:type=MBeanRegistry
MBeanレジストリ。実体はorg.jboss.mx.server.registry.BasicMBeanRegistry。こいつのオペレーションregisterMBean()を通してMBeanは登録される。
- JMImplementation:name=Default,service=LoaderRepository
クラスローダリポジトリ。実体はorg.jboss.mx.loading.UnifiedLoaderRepository3。JBossのクラスローダ概念のコア。クラスローダを追加するときはオペレーションnewClassLoader()を呼んでこのリポジトリに登録する。オペレーションgetPackageClassLoaders()で登録されているクラスローダが見れる。詳しくは「UnifiedClassLoader3」
- jboss.system:type=Server
org.jboss.system.server.ServerImpl自身。つまり起動シーケンスを実行中のJBossサーバ自身。といってもサーバのライフサイクルくらいしか扱っていない。shutdownとかhaltとか
- jboss.system:type=ServerConfig
org.jboss.system.server.ServerConfigImpl。JBossのベースディレクトリ、ライブラリURLなどのプロパティ類を保持するだけ。
- jmx.loading:UCL=XXXXX
UnifiedClassLoaderはjmx.loading:UCL=XXXXXという名前で登録される。MBeanとしては属性、オペレーションを一切持っていない。最初に登録されるクラスローダはserver/default/confの下をみるブートストラップUCL。
続く