指定のコマンドを実行するサービスアダプタです。
AsyncServiceFactoryインタフェースで指定したサービス名が、asyncマップで定義したcommanderタグのname属性と一致する場合に、コマンド実行サービスアダプタを生成します。本サービスアダプタで実行するコマンドは、独立したプロセスにて実行します。本サービスアダプタでは、直接呼び出し、および、突き放しによる呼び出しを行うことができます。
次は、MyCommandというサービス名のアダプタを直接呼び出しするasyncマップの定義例です。
<asyncMap> <commander name="MyCommand" />
次は、上記asyncマップのサービスを利用するプログラム例です。
AsyncServiceFactory factory = (AsyncServiceFactory)InitialFactory.createFactory(context, InitialFactory.ASYNCSERVICEFACTORY); // commanderタグのname属性がMyCommandの環境を参照しサービスアダプタインスタンスを生成する。 AsyncServiceAdapter adapter = factory.createAsyncServiceAdapter("MyCommand"); adapter.begin(null); String [] command = {"myCommand", "para1", "para2"}; // executeメソッドを呼び出す。 adapter.execute(command, null); ...
beginメソッド
サービスアダプタを初期化します。
引数へはnullを指定します。
executeメソッド
指定されたコマンドを実行します。
コマンドは、java.lang.Runtimeクラスのexecメソッドを利用して実行します。
第一引数へは実行するコマンドを指定します。
コマンドの指定がjava.lang.Stringクラス、または、java.lang.Stringクラスの配列以外が指定された場合には、指定クラスのtoStringメソッドの結果をコマンドとして実行します。
第二引数へはnullを指定します。
getResultメソッド
AsyncServiceExecuteResultを返します。
実行結果を参照するには、AsyncServiceExecuteResultクラスのgetValueメソッドを使用します。
実行結果には、実行したコマンドプロセスの標準出力ストリーム、または、エラー出力ストリームから取得した値を返します。
Systemwalker OperationMGRの利用
Systemwalker OperationMGRで提供されているコマンドを指定することにより、ジョブの投入を行うなど、Systemwalker OperationMGR の機能を利用することが可能となります。
次は、ジョブファイルにjob.bat、そのファイルに渡すパラメタとして0822および1000を指定するプログラム例です。
AsyncServiceFactory factory = (AsyncServiceFactory)InitialFactory.createFactory(context, InitialFactory.ASYNCSERVICEFACTORY); // commanderタグのname属性がMyCommandの環境を参照しサービスアダプタインスタンスを生成する。 AsyncServiceAdapter adapter = factory.createAsyncServiceAdapter("MyCommand"); adapter.begin(null); String [] command = {"qsub", "job.bat", "0822", "1000"}; // executeメソッドを呼び出す。 adapter.execute(command, null); ...
以下に、Systemwalker OperationMGRを利用する場合の構成を図示します。