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 チャネルです。
コマンド・キュー・マネージャーのhostport、またはchannel情報を省略すると、command.propertiesファイルに指定されている接続情報が使用されます。
注意: 値が指定されていない場合は、以下のようになります。
  • ホスト変数、バインディング・モードが使用される
  • ポート 変数。値 1414 が使用されます。
  • チャンネル変数の場合は SYSTEM.DEF.SVRCONN が使用されます。
詳しくは、 MFT command.properties ファイル を参照してください。

ただし、中央の属性 (qmgrname@host@@channelなど) をスキップすることはできません。 例えば、qmgrname@hostqmgrname@host@portqmgrname@hostport@@channelのいずれかを指定できます。

MFTは、@区切り文字を使用して、指定された属性を分割します。 検出されたトークンの数に応じて、最初のトークンは qmgrname、2 番目のトークンは host、3 番目のトークンは port、そして最後に channel となります。

詳しくは、 MFT command.properties ファイルを参照してください。
com.ibm.wmqfte.propertySetプロパティーを使用して、使用するcommand.propertiesファイルを指定できます。 詳しくは、 com.ibm.wmqfte.propertySetを参照してください。
cmdqm 属性を使用しない場合、タスクはデフォルトでcom.ibm.wmqfte.ant.commandQueueManagerプロパティーを使用します (このプロパティーが設定されている場合)。 com.ibm.wmqfte.ant.commandQueueManagerプロパティーが設定されていない場合、command.propertiesファイルに定義されているデフォルト・キュー・マネージャーへの接続が試行されます。 com.ibm.wmqfte.ant.commandQueueManagerプロパティーの形式は、cmdqm 属性と同じです。つまり、qmgrname@host@port@channelです。
idproperty
deferoutcomeを指定していない場合はオプションです。 転送 ID を割り当てるプロパティーの名前を指定します。 転送 ID は、転送要求が実行依頼された時点で生成されます。この転送 ID を使用して、転送の進行の追跡、転送で生じた問題の診断、および転送の取り消しを行うことができます。
ignoreoutcomeプロパティーも指定した場合は、このプロパティーを指定できません。 ただし、deferoutcomeプロパティーも指定した場合は、idpropertyを指定する必要があります。
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 操作が完了するまで待機します。 awaitoutcomeが指定されている場合、idproperty属性はオプションです。
defer
タスクは、 fte:call 要求がサブミットされるとすぐに戻り、 awaitoutcome タスクまたは ignoreoutcome タスクのいずれかを使用して、呼び出し操作の結果が後で処理されることを想定します。 deferoutcomeが指定されている場合、idproperty属性は必須です。
ignore
fte:call 操作の結果が重要ではない場合には、値 ignore を指定できます。 この値を指定した場合、タスクは、コマンドの結果を追跡するためのリソースを割り当てずに、fte:call 要求が実行依頼されるとすぐに戻ります。 ignoreoutcomeが指定されている場合、idproperty属性を指定することはできません。
outcome 属性を指定しない場合、タスクはデフォルトで値awaitを使用します。
rcproperty
オプション。 fte:call 要求の結果コードを割り当てるプロパティーの名前を指定します。 結果コードには、fte:call 要求の全体的結果が反映されます。
ignoreまたはdeferoutcomeプロパティーも指定した場合は、このプロパティーを指定できません。 ただし、awaitの結果を指定した場合は、rcpropertyを指定する必要があります。

ネスト・エレメントとして指定するパラメーター

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>