Mule ESB 3.2 JMX を HTTP (ブラウザ)で利用する

最近は、すっかり、メッセージングスタイルのアプリケーション開発にのめりこんでいる。

使っている道具は Mule ESB。メッセージング処理用のアプリケーションサーバー。
Tomcat は、 Web用のアプリケーションサーバー )

Mule ESB は、 3.x になって、アプリケーションの配置・停止がホットデプロイになり、運用が劇的に簡単になった。

の概念が導入され、サービスの記述が、直観的になったのは大きい。

EIP:Enterprise Integration Patterns のパターンを意識した実装/機能/説明が豊富になったので、EIP の実践手段としては、だいぶ進化した感じ。(現在も発展中なので、おおいに期待したい)

3.1.2 から、ログファイルが、アプリケーション単位に扱えるようになったのはありがたい。(ようやくですが)

3.2.0 で、schemaLocation ファイルで、バージョン番号のかわりに "current" が使えるようになった。これ、地味だけど、とてもありがたい改良点。

あと、前々から、実現できたいたらしいけど、私がようやく自分で設定できるようになった、Mule ESB の運用・監視ネタ。

JMX の機能を、HTTP ベースでブラウザから、利用する方法。
JVM のメモリ、スレッドの状態の把握から、Mule の各コンポーネントの動作状況の監視、起動や停止など、もりだくさんの機能が手軽にアクセス可能人になる。

以下の、単純なアプリケーションを、ホットデプロイすれば LAN 上 mule-hostname:9999 で、ベーシック認証付で、利用できるようになる。

興味がある人は、ぜひ、ためしてみてください。
この機能は、セキュリティ上、がちがち保護すべき機能なので、くれぐれも自己責任で。
( 本番環境であれば、firewall 設定で、 ip や、port の縛りが必須です )

JMX監視アプリケーションの config ファイル:

mule-jmx.xml

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:management="http://www.mulesoft.org/schema/mule/management"
      xsi:schemaLocation="
          http://www.mulesoft.org/schema/mule/core
          http://www.mulesoft.org/schema/mule/core/current/mule.xsd
          http://www.mulesoft.org/schema/mule/management
          http://www.mulesoft.org/schema/mule/management/current/mule-management.xsd
      ">

<!-- for JMX Console -->
<management:jmx-default-config />

<!-- for Browser Access -->
<management:jmx-mx4j-adaptor jmxAdaptorUrl="http://0.0.0.0:9999" login="masuda" password="toru" />

</mule>

schemaLocation の、/current/ が、3.2 からの新機能。
以前のバージョンまでは、ここに、 3.1 とか、実バージョン番号を入れていたので、Mule サーバーのバージョンアップの度に、書き換えが必要だった。
3.2 以降は、/current/ と記述しておくと、実行時に、実際の Mule ESB バージョン番号に展開されてチェックされるらしい。