Access Keys:
Skip to content (Access Key - 0)
community header community tab mule tab galaxy tab muleforge tab

はじめに

このページでは、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のデーモンにする場合は、以下のコマンドを実行します:

mule install

ESB Muleをサービス又はデーモンから外す場合は以下のコマンドを実行します:

mule remove

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サーバを起動することができます:

// 2つの設定ファイルを利用して、新規に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を利用します。
例:

nohup mule -config mule-config.xml

又は、_disown_を利用します:

disown mule -config mule-config.xml

jobs
(現在起動しているジョブ一覧を表示)

disown %(job number)
Adaptavist Theme Builder (3.3.3-conf210) Powered by Atlassian Confluence 2.10, the Enterprise Wiki.
Free theme builder license