Apcoordinator ユーザーズガイド
目次 前ページ次ページ

第2部 Apcoordinatorコアの機能> 第11章 バックエンドとの連携> 11.3 利用可能なサービスアダプタ

11.3.3 コマンド実行サービスアダプタ

指定のコマンドを実行するサービスアダプタです。

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を利用する場合の構成を図示します。
systemwalker

目次 前ページ次ページ

All Rights Reserved, Copyright © 富士通株式会社 2000-2005