fte: call Ant タスク
fte:call タスクを使用して、スクリプトおよびプログラムをリモートで呼び出すことができます。
このタスクによって、fte:call 要求をエージェントに送信できます。 エージェントは、スクリプトまたはプログラムを実行してその結果を返すことで、この要求を処理します。 呼び出すコマンドは、エージェントにアクセス可能である必要があります。 agent.properties ファイル内の commandPath プロパティー値に、呼び出すコマンドの場所が含まれていることを確認してください。 コマンドがネストされているエレメントによって指定されたパス情報は、commandPath プロパティーで指定された場所と相対的な位置になければなりません。 デフォルトでは、commandPath は空であるため、エージェントはどのコマンドも呼び出すことができません。 このプロパティーについて詳しくは、 commandPath MFT プロパティーを参照してください。
agent.properties ファイルについて詳しくは、 MFT agent.properties ファイルを参照してください。
属性
- エージェント
- 必須。 fte:call 要求の実行依頼先のエージェントを指定します。 エージェント情報を
agentname@qmgrnameの形式で指定します。ここで、agentnameはエージェントの名前、qmgrnameはこのエージェントが直接接続されているキュー・マネージャーの名前です。 - cmdqm
- オプション。 要求の実行依頼先のコマンド・キュー・マネージャー。 この情報は、
qmgrname@host@port@channelの形式で指定します。ここで、qmgrnameはキュー・マネージャーの名前ですhostは、キュー・マネージャーが実行されているシステムのオプションのホスト名です。portは、キュー・マネージャーが listen するオプションのポート番号です。channelは、使用するオプションの SVRCONN チャネルです。
host、port、またはchannel情報を省略すると、command.propertiesファイルに指定されている接続情報が使用されます。注意: 値が指定されていない場合は、以下のようになります。- ホスト変数、バインディング・モードが使用される
- ポート 変数。値 1414 が使用されます。
- チャンネル変数の場合は SYSTEM.DEF.SVRCONN が使用されます。
ただし、中央の属性 (
qmgrname@host@@channelなど) をスキップすることはできません。 例えば、qmgrname@host、qmgrname@host@port、qmgrname@hostport@@channelのいずれかを指定できます。MFTは、
@区切り文字を使用して、指定された属性を分割します。 検出されたトークンの数に応じて、最初のトークンは qmgrname、2 番目のトークンは host、3 番目のトークンは port、そして最後に channel となります。 - idproperty
deferのoutcomeを指定していない場合はオプションです。 転送 ID を割り当てるプロパティーの名前を指定します。 転送 ID は、転送要求が実行依頼された時点で生成されます。この転送 ID を使用して、転送の進行の追跡、転送で生じた問題の診断、および転送の取り消しを行うことができます。- jobname
- オプション。 ジョブ名を fte:call 要求に割り当てます。 ジョブ名を使用して、論理転送グループを作成できます。 疑似固有ジョブ名を生成するには、 fte: uuid Ant タスク を使用します。 jobname 属性を使用しない場合、タスクはデフォルトで
com.ibm.wmqfte.ant.jobNameプロパティー値を使用します (このプロパティーが設定されている場合)。 このプロパティーが設定されていない場合には、fte:call 要求に関連付けられるジョブ名はありません。 - origuser
- オプション。 fte:call 要求に関連付ける発信ユーザー ID を指定します。 origuser 属性を使用しなかった場合には、タスクはデフォルトで Ant スクリプトを実行するために使用されるユーザー ID を使用します。
- outcome
- オプション。 Ant スクリプトに制御を返す前に、タスクが fte:call 操作の完了を待機するかどうかを決定します。 以下のいずれかのオプションを指定します。
- await
- タスクは、戻る前に fte:call 操作が完了するまで待機します。
awaitのoutcomeが指定されている場合、idproperty属性はオプションです。 - defer
- タスクは、 fte:call 要求がサブミットされるとすぐに戻り、 awaitoutcome タスクまたは ignoreoutcome タスクのいずれかを使用して、呼び出し操作の結果が後で処理されることを想定します。
deferのoutcomeが指定されている場合、idproperty属性は必須です。 - ignore
- fte:call 操作の結果が重要ではない場合には、値
ignoreを指定できます。 この値を指定した場合、タスクは、コマンドの結果を追跡するためのリソースを割り当てずに、fte:call 要求が実行依頼されるとすぐに戻ります。ignoreのoutcomeが指定されている場合、idproperty属性を指定することはできません。
awaitを使用します。 - rcproperty
- オプション。 fte:call 要求の結果コードを割り当てるプロパティーの名前を指定します。 結果コードには、fte:call 要求の全体的結果が反映されます。
ネスト・エレメントとして指定するパラメーター
- fte: コマンド
- エージェントで呼び出すコマンドを指定します。 特定のfte:call 操作に関連付けることができる
fte:commandエレメントは 1 つのみです。 呼び出されるコマンドは、エージェントの agent.properties ファイル内の commandPath プロパティーによって指定されたパス上になければなりません。 - fte:metadata
- call 操作に関連付けるメタデータを指定できます。 このメタデータは、call 操作で生成されたログ・メッセージに記録されます。 特定の転送エレメントには、単一のメタデータ・ブロックのみを関連付けることができます。ただし、このブロックには、多くのメタデータを含めることができます。
例
次の例では、キュー・マネージャー QM1 で実行されている AGENT1 でコマンドを呼び出す方法を示します。 呼び出すコマンドはスクリプトcommand.shであり、このスクリプトは単一の引数xyzを指定して呼び出されます。 コマンドcommand.shは、エージェントのagent.propertiesファイル内のコマンド・パス・プロパティーで指定されたパスにあります。<fte:call cmdqm="QM0@localhost@1414@SYSTEM.DEF.SVRCONN"
agent="AGENT1@QM1"
rcproperty="call.rc"
origuser="bob"
jobname="${job.id}">
<fte:command command="command.sh" successrc=1
retrycount="5" retrywait="30">
<fte:arg value="xyz"/>
</fte:command>
<fte:metadata>
<fte:entry name="org.foo.accountName" value="BDG3R"/>
</fte:metadata>
</fte:call>