指定のコマンドを実行するサービスアダプタです。
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を利用する場合の構成を図示します。
