はじめに
このページでは、ESB Muleの起動の仕方と終了の仕方を説明します。
MULE_HOME と MULE_BASE
ESB Mule 1.3.3以降からは、Apache TomcatのようにESB Muleも一台のコンピュータに複数インストールすることが可能になりました。
通常利用されるESB Muleのインストレーション・ディレクトリは環境変数MULE_HOMEで設定されます。しかし場合によっては、ESB Muleを一回インストールして、数人のユーザがそれぞれに別のESB Muleインスタンスを立ち上げてユーザ毎にログファイル、設定、jarディレクトリを持ちたい場合があります。
例えば、Unixサーバにユーザ「root」でESB Muleを「/opt」ディレクトリにインストールしたとします。その場合は環境変数MULE_HOMEは「opt/mule-1.3.3」のようになります。ユーザJoeが自分のESB Muleインスタンスの設定ファイルをJoeのホームディレクトリ/home/joeに設けられるようにできます。
ユーザ毎にインスタンスを設定する場合は,
$MULE_HOME/bin/util/setup_local_instance.shスクリプトを利用することができます。手動でも行うことは可能ですがこのスクリプトは、以下のディレクトリを$MULE_BASEディレクトリに作成します。
- ./bin - $MULE_HOME/binからスタートアップ・スクリプトを複写する
- ./conf - ローカル構成ファイルを保管。$MULE_HOME/confディレクトリからファイルを複写する
- ./examples - 例題。(任意)
- ./lib/user - ユーザのjarファイル
- ./logs - ローカルのログ・ファイル
次に、ユーザjoeは以下の2つの環境変数を定義します:
- MULE_HOME - ESB Muleがインストールされてディレクトリ(例:/opt)
- MULE_BASE - ローカル・インストレーション・ディレクトリ。(例:/home/joe)
ユーザJoeがESB Muleを起動した場合、ESB MuleはMULE_BASE/lib/userディレクトリ下のjarファイルをロードし、その後にMULE_HOME/libディレクトリ下のjarファイルをロードします。Joeは新しいjarファイル(例えばテスト用に)をMULE_BASE/lib/userディレクトリに置いて、問題を起こさずにMULE_HOME/lib/userディレクトリのjarよりも優先して利用されるようにすることができます。なお、Joeはスタートアップ・スクリプトや設定ファイルを修正することもできます。Joe用のログファイルもMULE_BASEディレクトリ内に作成されます。
環境変数MULE_HOMEとMULE_BASEを両方設定した場合は、ESB Muleを始めて起動([初めての起動|Running Mule for the first Time]を参照)すると以下の処理が実行されます:
- ライセンスに同意したjarファイルのコピーがMULE_BASE\lib/userに複写される
- ESB MuleのインストレーションにダウンロードされたサードパーティjarファイルがMULE_BASE/lib/userディレクトリに複写される
Java Service Wrapper
ESB MuleはOSからJVMを制御するためにJava Service Wrapper(http://wrapper.tanukisoftware.org)を利用しています。Java Service Wrapperの多高度な機能は上のWebサイトで知ることができます。簡単にいうと、Java Service Wrapperは、MS Windowsのサービス又はUnixのデーモンとしてのESB Muleを登録・削除できるようにします。Java Service Wrapperは、システム信号を扱うことができるために、JVMとOSとの相互作用をよくします。
スクリプトからESB Muleを起動する
ESB Muleを起動する一番簡単な方法は_bin_ディレクトリ下の「mule」又は「mule.bat」スクリプトを利用することです。これらのスクリプトはJava Service Wrapperを起動します。
ESB Muleをサービスやデーモンとではなく、ただ単純に実行する場合は以下のコメンドを入力します:
mule -config <ESB Mule設定ファイル.xml>
「-config」オプションを指定しない場合は、ESB Muleはデフォルトとして_mule-config.xml_を探します。(ESB Muleの実行ライブラリには含まれていません。)_examples_ディレクトリ下の例題に記述の例があります。
ESB Muleをサービスをして起動する
ESB MuleをMS Windowsのサービス又はUnixのデーモンにする場合は、以下のコマンドを実行します:
ESB Muleをサービス又はデーモンから外す場合は以下のコマンドを実行します:
ESB Muleをインストールした後からは、サービスを同じように起動することができます。ただし、以下のパラメータを指定することができます:
mule start|restart|stop -config <your-config-file.xml>
「start」/「restart」/「stop」引数は、ESB Muleサービスを起動、再起動、終了します。
直接ESB Muleを起動する
Java Service Wrapperを利用せずに、ESB Muleサーバをスクリプト又はIDEから起動する場合は、
_org.mule.MuleServer_クラスを利用します。_org.mule.MuleServer_クラスには以下のパラメータがあります。
org.mule.MuleServer -config mule-config.xml
又は、
org.mule.MuleServer -builder <完全修飾クラス名> -config appContext.xml
- *-config*には、一つ以上の設定ファイルを指定することができます。引数が省略された場合は、デフォルトの「mule-config.xml」ファイルが利用されます。
- *-builder*は、利用するビルダーの完全修飾クラス名です。省略された場合は、デフォルトの「org.mule.config.builders.MuleXmlConfigurationBuilder」が利用されます。
一番簡単にクラスパスを設定する方法は、全てのjarファイルを./lib/mule又は./lib/optディレクトリに置くことです。
依存関係レポートを参照して、モジュールに必要なjarファイルを特定することができます。
以下のように、プログラムからESB Muleサーバを起動することができます:
MuleServer server = new MuleServer("mule-config1.xml,mule-config2.xml");
server.start(true);
利用されることは少ないと思いますが、ESB Muleをアプリケーション又はWebアプリケーションに組み込む場合は、以下のページを参照にしてください:
ESB Muleを終了する
Windows及びUnixの両環境で、ESB Muleを終了するには、ESB Muleを起動したコメンドシェル又はコンソールから「CTRL」+「C」キーを押下します。
ESB MuleがUnixのバックグラウンド・プロセスとして起動された場合は、プロセスは以下のように終了させることができます。
ps -ef|grep mule
kill PID
「PID」はESB MuleのプロセスIDです。
Linux\Unixのバックグラウンド・プロセスとし起動する
シェルからESB Muleを起動する場合は、シェルが終了した後でも継続的にESB Muleを起動させるには、バックグラウンド・プロセスとして起動します。バックグラウンド・プロセスとして起動するには、nohupを利用します。
例:
又は、_disown_を利用します: