コアのコア

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。


続く