fte: filecopy Ant task
fte:filecopy 作業會在 Managed File Transfer 代理程式之間複製檔案。 不會從來源代理程式刪除檔案。
屬性
- 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,第二個記號作為 主機,第三個記號作為 埠 ,最後 通道。 - dst
- 必要項目。 指定複製作業的目的地代理程式。 請使用下列格式指定此資訊:
agentname@qmgrname,其中agentname為目的地代理程式的名稱,qmgrname為此代理程式直接連接的佇列管理程式的名稱。 - idproperty
- 選用項目,除非您已將
outcome指定為defer。 指定要為其指派傳送 ID 的內容名稱。 提交傳送要求時將會產生傳送 ID,您可以使用傳送 ID 來追蹤傳送進度、診斷傳送問題以及取消傳送。 - jobname
- 選用項目。 指派工作名稱給複製要求。 您可以使用工作名稱來建立邏輯傳送群組。 使用 fte: uuid Ant 作業 作業來產生虛擬唯一工作名稱。 如果您不使用 jobname 屬性,此作業會預設為使用
com.ibm.wmqfte.ant.jobName內容值(如果已設定此內容)。 如果您不設定此內容,則沒有任何工作名稱與複製要求相關聯。 - origuser
- 選用項目。 指定要與複製要求相關聯的原始使用者 ID。 如果您不使用 origuser 屬性,則作業預設為使用用來執行 Ant Script 的使用者 ID。
- outcome
- 選用項目。 決定在將控制權交還給 Ant Script 之前,作業是否等待複製作業完成。 請指定下列其中一個選項:
- await
- 在交還控制權之前,此作業會等待複製作業完成。 如果將
outcome指定為await,則idproperty為選用屬性。 - defer
- 作業會在提交複製要求之後立即傳回,並假設稍後使用 fte: awaitoutcome Ant 作業 或 fte: ignoreoutcome Ant 作業 作業來處理複製作業的結果。 如果將
outcome指定為defer,則idproperty為必要屬性。 - ignore
- 如果複製作業的結果無關緊要,則可指定
ignore值。 此作業即會在提交複製要求後立即交還控制權,而不配置任何資源來追蹤指令結果。 如果將outcome指定為ignore,則無法指定idproperty屬性。
await值。 - priority
- 選用項目。 指定要與複製要求相關聯的優先順序。 通常,較高優先順序的傳送要求優先於較低優先順序的要求。 優先順序值必須介於 0 - 9(內含)範圍之間。 優先順序值 0 為最低優先順序,值 9 為最高優先順序。 如果您沒有指定
priority屬性,傳送預設使用優先順序 0。 - rcproperty
- 選用項目。 指定要為其指派複製要求的結果碼之內容名稱。 結果碼會反映複製要求的整體結果。
- transferRecoveryTimeout
- 選用項目。 設定時間量(以秒為單位),在此期間內,來源代理程式會一直嘗試回復已停止的檔案傳送。 請指定下列其中一個選項:
-1- 代理程式繼續嘗試回復已停止的傳送,直至傳送完成為止。 使用此選項相當於代理程式在未設定此內容時的預設行為。
0- 一旦進入回復,代理程式即停止檔案傳送。
>0- 代理程式繼續嘗試回復已停止的傳送,直至達到已指定的正整數值所設定的時間量(以秒為單位)為止。 例如:
指出代理程式從進入回復的 6 小時內會一直嘗試回復傳送。 此屬性的最大值為<fte:filecopy cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN" src="agent1@qm1" dst="agent2@qm2" rcproperty="copy.result" transferRecoveryTimeout="21600"> <fte:filespec srcfilespec="/home/fteuser1/file.bin" dstfile="/home/fteuser2/file.bin"/> </fte:filecopy>999999999。
透過這種方式指定傳送回復逾時值是以每個傳送為基礎來進行設定。 若要設定 Managed File Transfer 網路中所有傳送的廣域值,您可以將內容新增至 傳送回復逾時內容。 如需相關資訊,請參閱 回復中傳送的逾時選項。
- src
- 必要項目。 指定複製作業的來源代理程式。 請使用下列格式指定此資訊:agentname@qmgrname,其中 agentname 為來源代理程式的名稱,qmgrname 為此代理程式直接連接的佇列管理程式的名稱。
指定為巢狀元素的參數
- fte:filespec
- 必要項目。 您必須指定至少一個用於識別要複製檔案的檔案規格。 如果需要,您可以指定多個檔案規格。 如需相關資訊,請參閱 fte: filespec Ant 巢狀元素 。
- fte:metadata
- 您可以指定要與複製作業相關聯的 meta 資料。 此 meta 資料會附在傳送中,並記錄在傳送所產生的日誌訊息中。 您只能將單一 meta 資料區塊與給定的傳送元素相關聯;但此區塊可以包含許多 meta 資料片段。 如需相關資訊,請參閱 fte: metadata 主題。
- fte:presrc
- 指定在傳送開始之前,要在來源代理程式上進行的程式呼叫。 您只能將單一
fte:presrc元素與給定的傳送相關聯。 如需相關資訊,請參閱 程式呼叫 主題。 - fte:predst
- 指定在傳送開始之前,要在目的地代理程式上進行的程式呼叫。 您只能將單一
fte:predst元素與給定的傳送相關聯。 如需相關資訊,請參閱 程式呼叫 主題。 - fte:postsrc
- 指定在傳送完成後,要在來源代理程式上進行的程式呼叫。 您只能將單一
fte:postsrc元素與給定的傳送相關聯。 如需相關資訊,請參閱 程式呼叫 主題。 - fte:postdst
- 指定在傳送完成後,要在目的地代理程式上進行的程式呼叫。 您只能將單一
fte:postdst元素與給定的傳送相關聯。 如需相關資訊,請參閱 程式呼叫 主題。
如果 fte:presrc、fte:predst、fte:postsrc、fte:postdst 及結束程式均未傳回成功狀態,則規則依照如下所示的指定順序:
- 執行來源啟動結束程式。 如果來源啟動結束程式失敗,則傳送失敗,並且不再執行任何作業。
- 執行前置來源呼叫(如果存在)。 如果前置來源呼叫失敗,則傳送失敗,並且不再執行任何作業。
- 執行目的地啟動結束程式。 如果目的地啟動結束程式失敗,則傳送失敗,並且不再執行任何作業。
- 執行前置目的地呼叫(如果存在)。 如果前置目的地呼叫失敗,則傳送失敗,並且不再執行任何作業。
- 執行檔案傳送。
- 執行目的地結束結束程式。 這些結束程式沒有失敗狀態。
- 如果傳送成功(如果部分檔案傳送成功,即視為成功),請執行後置目的地呼叫(如果存在)。 如果後置目的地呼叫失敗,則傳送失敗。
- 執行來源結束結束程式。 這些結束程式沒有失敗狀態。
- 如果傳送成功,請執行後置來源呼叫(如果存在)。 如果後置來源呼叫失敗,則傳送失敗。
範例
以下範例顯示
agent1 與 agent2 之間的基本檔案傳送。 使用用戶端傳輸模式連線,將啟動檔案傳送的指令傳送至稱為 qm0, 的佇列管理程式。 檔案傳送作業的結果指派給名為 copy.result 的內容。
<fte:filecopy cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN"
src="agent1@qm1" dst="agent2@qm2"
rcproperty="copy.result">
<fte:filespec srcfilespec="/home/fteuser1/file.bin" dstfile="/home/fteuser2/file.bin"/>
</fte:filecopy>
以下範例顯示相同的檔案傳送,但增加了 meta 資料,且在傳送完成後將會在來源代理程式上啟動程式。
<fte:filecopy cmdqm="qm0@localhost@1414@SYSTEM.DEF.SVRCONN"
src="agent1@qm"1 dst="agent2@qm2"
rcproperty="copy.result">
<fte:metadata>
<fte:entry name="org.example.departId" value="ACCOUNTS"/>
<fte:entry name="org.example.batchGroup" value="A1"/>
</fte:metadata>
<fte:filespec srcfilespec="/home/fteuser1/file.bin" dstfile="/home/fteuser2/file.bin"/>
<fte:postsrc command="/home/fteuser2/scripts/post.sh" successrc="1" >
<fte:arg value="/home/fteuser2/file.bin"/>
</fte:postsrc>
</fte:filecopy>