fte: call Ant task
您可以使用 fte:call 作業遠端呼叫 Script 及程式。
此作業可讓您將 fte:call 要求傳送至代理程式。 代理程式會透過執行 Script 或程式並傳回結果,來處理此要求。 要呼叫的指令必須可供代理程式存取。 請確定 agent.properties 檔案中的 commandPath 內容值包含要呼叫的指令位置。 由指令巢狀元素指定的任何路徑資訊,均必須相對於 commandPath 內容所指定的位置。 依預設,commandPath 為空白,因此代理程式無法呼叫任何指令。 如需此內容的相關資訊,請參閱 commandPath MFT 內容。
如需 agent.properties 檔案的相關資訊,請參閱 MFT agent.properties 檔案。
屬性
- 代理程式 (agent)
- 必要項目。 指定要向其提交 fte:call 要求的代理程式。 請使用下列格式指定代理程式資訊:
agentname@qmgrname,其中agentname為代理程式名稱,qmgrname為與此代理程式直接連接的佇列管理程式名稱。 - cmdqm
- 選用項目。 要向其提交要求的指令佇列管理程式。 請使用下列格式指定此資訊:
qmgrname@host@port@channel,其中:qmgrname為佇列管理程式的名稱host為執行佇列管理程式的系統的選用主機名稱port為佇列管理程式接聽的選用埠號channel為要使用的選用 SVRCONN 通道
host、port或channel資訊,則會使用 command.properties 檔案中所指定的連線資訊。注意: 如果未指定下列項目的值:- host 變數,使用連結模式
- port 變數,使用值 1414
- channel 變數,即 SYSTEM.DEF.SVRCONN 。
不過,您無法跳過中間的屬性,例如
qmgrname@host@@channel。 例如,您可以具有qmgrname@host、qmgrname@host@port或qmgrname@hostport@@channel。MFT 會使用
@定界字元來分割給定的屬性。 視找到的記號數目而定,它會採用第一個記號作為 qmgrname,第二個記號作為 主機,第三個記號作為 埠 ,最後 通道。 - idproperty
- 選用項目,除非您已將
outcome指定為defer。 指定要為其指派傳送 ID 的內容名稱。 提交傳送要求時將會產生傳送 ID,您可以使用傳送 ID 來追蹤傳送進度、診斷傳送問題以及取消傳送。 - jobname
- 選用項目。 指派工作名稱給 fte:call 要求。 您可以使用工作名稱來建立邏輯傳送群組。 使用 fte: uuid Ant 作業 作業來產生虛擬唯一工作名稱。 如果您不使用 jobname 屬性,此作業會預設為使用
com.ibm.wmqfte.ant.jobName內容值(如果已設定此內容)。 如果您不設定此內容,則沒有任何工作名稱與 fte:call 要求相關聯。 - origuser
- 選用項目。 指定要與 fte:call 要求相關聯的原始使用者 ID。 如果您不使用 origuser 屬性,此作業會預設為使用要用來執行 Ant Script 的使用者 ID。
- outcome
- 選用項目。 決定在將控制權交還給 Ant Script 之前,作業是否等待 fte:call 作業完成。 請指定下列其中一個選項:
- await
- 在交還控制權之前,此作業會等待 fte:call 作業完成。 如果將
outcome指定為await,則idproperty為選用屬性。 - defer
- 作業會在提交 fte:call 要求之後立即傳回,並假設稍後使用 awaitoutcome 或 ignoreoutcome 作業來處理呼叫作業的結果。 如果將
outcome指定為defer,則idproperty為必要屬性。 - ignore
- 如果 fte:call 作業的結果無關緊要,則可指定
ignore值。 此作業即會在提交 fte:call 要求後立即交還控制權,而不配置任何資源來追蹤指令結果。 如果將outcome指定為ignore,則無法指定idproperty屬性。
await值。 - rcproperty
- 選用項目。 指定要為其指派 fte:call 要求的結果碼之內容名稱。 結果碼會反映 fte:call 要求的整體結果。
指定為巢狀元素的參數
- fte: command
- 指定代理程式要呼叫的指令。 您只能將單一
fte:command元素與給定的 fte:call 作業相關聯。 要呼叫的指令必須位於代理程式 agent.properties 檔案中 commandPath 內容所指定的路徑上。 - fte:metadata
- 您可以指定要與呼叫作業相關聯的 meta 資料。 此 meta 資料會記錄在呼叫作業所產生的日誌訊息中。 您只能將單一 meta 資料區塊與給定的傳送元素相關聯;但此區塊可以包含許多 meta 資料片段。
範例
此範例顯示如何在佇列管理程式 QM1 上執行的 AGENT1 中呼叫指令。 要呼叫的指令為 command.sh Script,而此 Script 是使用單一引數xyz 來呼叫。 指令 command.sh 位於代理程式 agent.properties 檔案中 commandPath 內容所指定的路徑上。
<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>