fteCreate範本 (建立新的檔案傳送範本)
fteCreateTemplate 指令可建立檔案傳送範本,以備將來使用。 唯一必要的參數是 -tn template_name 參數。 其他所有參數是選用的,雖然如果指定來源檔案規格,您還必須提供目的地檔案。 同樣地,如果指定目的地檔案,您還必須提供來源檔案規格。
用途
使用 fteCreateTemplate 指令可建立檔案傳送範本來儲存您的傳送詳細資料,以備日後使用。 使用傳送範本可儲存重複或複式傳送的一般檔案傳送設定。 建立傳送範本之後,請使用 IBM® MQ Explorer來提交範本。 您無法從指令行提交傳送範本。您使用 fteCreateTemplate 指令建立的傳送範本與您在 fteCreateTransfer 指令上使用 -gt 參數建立的 XML 訊息不同。 您不能交替地使用兩種不同類型的範本。
您可以從可以連接至 IBM MQ 網路的任何系統執行 fteCreateTemplate 指令,然後遞送至協調佇列管理程式。 具體而言,對於要執行的指令,您必須已在此系統上安裝 Managed File Transfer ,且必須已在此系統上配置 Managed File Transfer 元件,以與 IBM MQ 網路通訊。
從 IBM MQ 9.3.0,此指令會使用 coordination.properties 檔案來連接至 Managed File Transfer 拓蹼的協調佇列管理程式。 如果 coordination.properties 檔案包含 coordinationQMgrHost 內容,則指令會使用 CLIENT 傳輸連接至協調佇列管理程式。 否則,該指令會使用 BINDINGS 傳輸來連接至協調佇列管理程式。 如需相關資訊,請參閱 MFT corodination.properties 檔案。
您可以為檔案傳送指定多個來源檔案,但只能指定一個目的地代理程式;不支援將一個檔案傳送至多個目的地代理程式。 但是,您可以在單一目的地代理程式上,將多個來源檔案傳送至多個目的地檔案。
如需如何傳送檔案的指引,請參閱 傳送檔案的準則。
特殊字元
請謹慎使用包含特殊字元的參數,避免指令 Shell 以超乎預期的方式來解譯字元。
例如,包含單引號的完整資料集名稱及包含星號字元的來源規格可能會由指令 Shell 解譯,而不是在傳送要求中傳遞。若要避免指令 Shell 解譯字元,請將整個參數含括在雙引號中,如最後兩個範例 範例所示, 或使用指令 Shell 的 ESC 序列來跳出特殊字元。
相對路徑
及 z/OS® UNIX® System Services 預設會將路徑視為相對於執行代理程式之使用者的起始目錄。 若要變更路徑名稱相對的目錄,請在 agent.properties 檔案中設定 transferRoot 內容。 此檔案位於
MQ_DATA_PATH/mqft/config/coordination_qmgr/agents/agent_name 目錄中。 將下面這一行加到檔案中:
transferRoot=directory_name您必須跳出 Windows 路徑,或以 UNIX 格式寫入這些路徑。 例如,將 C:\TransferRoot 指定為 C:\\TransferRoot 或 C:/TransferRoot。
在 z/OS上,依預設,代理程式目前執行所在的使用者名稱會作為高階限定元字首新增至尚未完整定義的資料集規格。 例如://ABC.DEF。 若要變更加在資料集名稱上作為字首的值,請在 agent.properties 檔案中設定 transferRootHLQ 內容。 此檔案位於
MQ_DATA_PATH/mqft/config/coordination_qmgr/agents/agent_name 目錄中。 將下面這一行加到檔案中:
transferRootHLQ=prepend_value
不過,對於涉及 z/OS 系統上 Connect:Direct® 節點的傳送,資料集規格會解譯為完整名稱。 資料集名稱不會加上高階限定元。Syntax
參數
- -sa source_agent_name
- 選用項目。 從中傳送來源檔案的代理程式名稱。 如果您在建立範本時不指定此代理程式名稱,則必須在使用範本時指定來源代理程式名稱。
- -sm 來源代理程式佇列管理程式名稱
- 選用項目。 來源代理程式所連接的佇列管理程式的名稱。
- -da destination_agent_name
- 選用項目。 檔案傳送至其中的代理程式名稱。 如果您在建立範本時不指定目的地代理程式名稱,則必須在使用範本時指定目的地代理程式名稱。
- -dm destination_agent_qmgr_name
- 選用項目。 目的地代理程式所連接的佇列管理程式名稱。
- -td transfer_definition_file
- 選用項目。 XML 文件的名稱,定義傳送的一個以上來源及目的地檔案規格。
- -df destination_file
- 選用項目。 目的地檔案的名稱。 指定目的地代理程式執行所在的系統上有效的檔名。
如果目的地代理程式是 Connect:Direct 橋接器代理程式,則會以 connect_direct_node_name:file_path格式指定目的地檔案。 Connect:Direct 橋接器代理程式只接受以此格式指定的檔案路徑。
如果目的地代理程式是 Connect:Direct 橋接器代理程式,且目的地是 PDS 成員,則您還必須指定 -de 參數,值為 overwrite。 - -dd destination_directory
- 選用項目。 傳送檔案的目的地目錄名稱。 指定目的地代理程式執行所在的系統上有效的目錄名稱。
如果目的地代理程式是 Connect:Direct 橋接器代理程式,則會以 connect_direct_node_name:directory_path格式指定目的地目錄。 如果目的地代理程式是 Connect:Direct 橋接器代理程式,且目的地是 PDS ,則您必須同時指定 -de 參數,值為 overwrite。
-ds destination_sequential_data_set- 只適用於 z/OS。 選用項目。 檔案傳送至其中的循序資料集名稱或 PDS 成員。 指定循序資料集名稱或分割的資料集成員。
-dp destination_partitioned_data_set- 只適用於 z/OS。 選用項目。 檔案傳送至其中的目的地 PDS 名稱。 指定分割的資料集名稱。 如果因為傳送而建立 PDS,此 PDS 依預設會建立為 PDSE。 您可以指定 DSNTYPE=PDS 來置換預設值。
- -du destination_user
- 選用項目。 使用者的名稱,檔案將傳送至該使用者的目的地檔案空間。
- -dq destination_queue
- 選用項目。 檔案傳送至其中的目的地佇列名稱。 您可以選擇性地使用 QUEUE@QUEUEMANAGER 格式,在此規格中包含佇列管理程式名稱。 如果未指定佇列管理程式名稱,而且未將 enableClusterQueueInputOutput 代理程式內容設定為 true,則會使用目的地代理程式佇列管理程式名稱。 如果您已將 enableClusterQueueInput輸出代理程式內容設為 true ,則目的地代理程式會使用標準 IBM MQ 解析程序來判定佇列所在的位置。 您必須指定佇列管理程式上存在的有效佇列名稱。
- -dqp persistent
- 選用項目。 指定寫入目的地佇列的訊息是否持續保存。 有效選項如下所示:
- true
- 將持續性訊息寫入目的地佇列。 這是預設值。
- false
- 將非持續性訊息寫入目的地佇列。
- qdef
- 持續性值取自目的地佇列的 DefPersistence 屬性。
- -qmp 布林
- 選用項目。 指定由傳送寫入目的地佇列的第一則訊息是否已設定 IBM MQ 訊息內容。 有效選項如下所示:
- true
- 在傳送所建立的第一個訊息上設定訊息內容。
- false
- 不在由傳送建立的第一則訊息上設定訊息內容。 這是預設值。
- -qs message_size
- 選用項目。 指定是否要將檔案分割為多則固定長度的訊息。 所有訊息都具有相同的 IBM MQ 群組 ID; 群組中的最後一則訊息已設定 IBM MQ LAST_MSG_IN_GROUP 旗標。 訊息的大小由 message_size 的值指定。 message_size 的格式為 lengthunits,其中 length 為正整數值,units 為下列其中一個值:
B- 位元組。 容許的最小值為目的地訊息字碼頁的每個字元佔用的位元組數最大值的兩倍。
K- 這相等於 1024 個位元組。
M- 這相等於 1048576 個位元組。
- -dqdb 十六進位定界字元
- 選用項目。 指定將一個二進位檔分割為多則訊息時要使用的十六進位定界字元。 所有訊息都具有相同的 IBM MQ 群組 ID; 群組中的最後一則訊息已設定 IBM MQ LAST_MSG_IN_GROUP 旗標。 指定十六進位位元組作為定界字元的格式是
xNN,其中N是範圍介於0-9或a-f間的字元。 透過指定以逗點區隔的十六進位位元組清單(例如:x3e,x20,x20,xbf),您可以將十六進位位元組的序列指定為定界字元。 - -dqdt 型樣
- 選用項目。 指定將一個文字檔分割為多則訊息時要使用的正規表示式。 所有訊息都具有相同的 IBM MQ 群組 ID; 群組中的最後一則訊息已設定 IBM MQ LAST_MSG_IN_GROUP 旗標。 將正規表示式指定為定界字元所採用的格式為:以括弧括住正規表示式(
(regular_expression))。 此參數的值會評估為 Java 正規表示式。 如需相關資訊,請參閱 MFT 使用的正規表示式。 - -dqdp
- 選用項目。 指定分割檔案時預期的目的地文字及二進位定界字元的位置。 如果您還指定了 -dqdt 及 -dqdb 參數之一,則只能指定 -dqdp 參數。
- -qi
- 選用項目。 指定是否要在訊息中包含將檔案分割為多則訊息所使用的定界字元。 如果已指定 -qi 屬性,則會在訊息(包含定界字元之前的檔案資料)的結尾包含定界字元。 依預設,訊息不包括定界字元。
- -de destination_file_behavior
- 選用項目。 指定如果目的地系統上存在目的地檔案時要採取的動作。 有效選項如下所示:
- error
- 報告錯誤,且不傳送檔案。 這是預設值。
- overwrite
- 改寫現有目的地檔案。
- -sd source_file_disposition
- 選用項目。 指定來源檔案已順利地傳送至其目的地時,對來源檔案採取的動作。 有效選項如下所示:
- leave
- 來源檔案維持不變。 這是預設值。
- delete
- 在順利傳送來源檔案之後,從來源系統刪除來源檔案。
在 z/OS上,如果來源是磁帶資料集,且您指定 delete 選項,則會重新裝載磁帶以刪除資料集。 此行為是因為系統環境行為而造成。如果來源是佇列,且您指定 leave 選項,則指令會傳回錯誤,不會要求傳送。
如果來源代理程式是 Connect:Direct 橋接器代理程式,且您指定 delete 選項,則行為不同於一般來源處置行為。 發生下列其中一種情況:- 如果 Connect:Direct 使用 Managed File Transfer 所產生的處理程序從來源移動檔案或資料集,則指定 delete 選項會導致傳送失敗。 若要指定刪除來源檔案,您必須提交使用者定義的 Connect:Direct 處理程序。 如需相關資訊,請參閱 從檔案傳送要求提交使用者定義的 Connect:Direct 程序。
- 如果 Connect:Direct 使用使用者定義的處理程序從來源移動檔案或資料集,則此參數會透過 %FTEFDISP 本質符號變數傳遞至處理程序。 使用者定義的程序決定是否刪除來源。 傳送所傳回的結果,取決於使用者定義的程序所傳回的結果。
- -pr 傳送優先順序
- 選用項目。 指定傳送的優先順序層次。 優先順序是範圍 0-9 中的值,其中 0 是最低優先順序。 預設優先順序層次是 0,依預設,傳送時會使用來源代理程式的優先順序層次。
- -rt 傳送回復逾時
- 選用項目。 設定時間量(以秒為單位),在此期間內,來源代理程式會一直嘗試回復已停止的檔案傳送。 請指定下列其中一個選項:
-1- 代理程式繼續嘗試回復已停止的傳送,直至傳送完成為止。 使用此選項相當於代理程式在未設定此內容時的預設行為。
0- 一旦進入回復,代理程式即停止檔案傳送。
>0- 代理程式繼續嘗試回復已停止的傳送,直至達到已指定的正整數值所設定的時間量(以秒為單位)為止。 例如,
指出代理程式從進入回復的 6 小時內會一直嘗試回復傳送。 此參數的最大值為-rt 21600999999999。
- -p configuration_options
- 選用項目。 此參數會決定用於建立傳送範本的配置選項集。 請使用非預設協調佇列管理程式的名稱作為此參數的輸入。 然後,指令即會使用與此非預設協調佇列管理程式相關聯的一組內容檔。
- -r
- 選用項目。 當 source_specification 包含萬用字元時,遞迴地傳送子目錄中的檔案。 當 Managed File Transfer 以萬用字元作為 source_specification時,只有在您指定 -r 參數時,才會傳送任何符合萬用字元的目錄。 在 source_specification 與子目錄相符時,該目錄及其子目錄中的所有檔案(包括隱藏式檔案)都一律會傳送。
- -t
- 選用項目。 指定檔案傳送的類型:二進位模式或文字模式。
- 二進位
- 傳送檔案中的資料時不經過任何轉換。 這是預設值。
- text
- 轉換檔案的字碼頁及行尾字元。 執行的確切轉換視來源代理程式及目的地代理程式的作業系統而定。
- -cs
- 選用項目。 指定是否對檔案傳送資料執行總和檢查演算法,以檢查所傳送檔案的完整性。 請指定下列其中一個選項:
- MD5
- 計算資料的 MD5 總和檢查。 來源及目的地檔案的總和檢查結果會寫入傳送日誌中作為驗證用途。 依預設, Managed File Transfer 會計算所有檔案傳送的 MD5 總和檢查。
- 無
- 不計算檔案傳送資料的 MD5 總和檢查。 傳送日誌會記錄總和檢查設為 none,總和檢查的值為空白。 例如:
如果使用 none 選項,視環境而定,可能會改善檔案傳送效能。 不過,選取此選項表示不驗證來源或目的地檔案。<checksum method="none"></checksum>
- -tr
- 選用項目。 指定要進行檔案傳送時必須成立的條件。 如果條件不是 true,根據來源代理程式,檔案傳送會被捨棄,無法進行傳送。 請指定下列格式:
其中 condition 是下列其中一個值:condition,namelist- file=exist
- 名稱清單中至少一個檔案存在。 亦即,如果名稱清單中的任何檔案存在,則條件成立。
- file!=exist
- namelist 中至少其中一個檔案不存在。 亦即,如果名稱清單中的任何檔案不存在,則條件成立。
- 檔案大小> =size
- namelist 中至少其中一個檔案存在,且以 size 指定大小下限。 size 的值是整數,選用大小單位為 KB、MB 或 GB。 例如,
filesize">"=10KB。 如果未指定大小單位,則假設以位元組為大小單位。 在所有作業系統上,當您在指令行指定 filesize 選項時,必須以雙引號括住大於符號 (>),如這個範例所示。
- -tl
- 選用項目。 指定是否記載觸發程式失敗。 請指定下列其中一個選項:
- yes
- 為失敗的觸發傳送建立日誌項目。 即使未指定 -tl 參數,這也是預設行為。
- 否
- 不為失敗的觸發傳送建立日誌項目。
- -md
- 選用項目。 指定傳遞至代理程式的結束點的使用者定義的 meta 資料。 -md 參數可以採用一個以上名稱/值配對(以逗點區隔)。 每一個名稱配對由 name=value 組成。 您可以在指令中多次使用 -md 參數。
- -tb
- 選用項目。 指定您要用於排定檔案傳送的時間基準。 亦即,使用系統時間或世界標準時間 (UTC)。 您僅必須將此參數與 -ss 參數搭配使用。 請指定下列其中一個選項:
- admin
- 用於排定的傳送的開始及結束時間基於管理者使用的系統時間及日期。 這是預設值。
- source
- 用於排定的傳送的開始及結束時間基於來源代理程式所在系統的時間及日期。
- UTC
- 用於排定的傳送的開始及結束時間基於「世界標準時間 (UTC)」。
- -jn job_name
- 選用項目。 在啟動傳送時新增至日誌訊息的使用者定義的工作名稱 ID。
- -ss schedule_start_time
- 選用項目。 指定要執行排定傳送的時間和日期。 使用下列其中一種格式來指定時間和日期。 使用 24 小時制指定時間:
yyyy-MM-ddThh:mm hh:mm - -oi
- 選用項目。 指定排定的傳送發生的間隔。 您僅必須將此參數與 -ss 參數搭配使用。 請指定下列其中一個選項:
- 分鐘
- 小時
- 日
- 週
- 月
- 年
- -of occurrence_frequency
- 選用項目。 指定排定的傳送發生的頻率。 例如,每隔 5 週或每隔 2 個月。 此參數只能搭配 -oi 及 -ss 參數一起指定。 如果未指定此參數,則會使用預設值 1。
- -oc occurrence_count
- 選用項目。 指定您想要此排定傳送發生的次數。 在符合發生次數之後,排定的傳送會刪除。
- -es schedule_end_time
- 選用項目。 重複的排定傳送結束的時間及日期。
- -tn template_name
- 必要項目。 要建立的範本的名稱。 使用敘述性字串,以讓您稍後選取用於傳送的正確範本。 對此字串的長度沒有特定限制,但請注意,過長的名稱可能無法正確顯示在部分使用者介面中。
- -sqgi
- 選用項目。 指定訊息依 IBM MQ 群組 ID 分組。 第一個完整群組會寫入目的地檔案。 如果未指定此參數,則來源佇列上的所有訊息會寫入目的地檔案。
- -sqdt 文字定界字元
- 選用項目。 指定在將多則訊息附加到文字檔時,要作為定界字元插入的文字序列。 您可以在定界字元中針對字串文字包含 Java ESC 序列。 例如,
-sqdt \u007d\n。 - -sqdb 十六進位定界字元
- 選用項目。 指定在將多則訊息附加到二進位檔時,要作為定界字元插入的一個以上位元組值。 每一個值必須指定為兩個十六進位數字,範圍為
00-FF,字首為x。 若有多個位元組,必須以逗點區隔。 例如,-sqdb x08,xA4。 - -sqdp
- 選用項目。 指定來源文字及二進位定界字元的插入項目的位置。 如果您還指定了 -sqdt 及 -sqdb 參數之一,則只能指定 -sqdp 參數。
- -sqwt wait_time
- 選用項目。 指定等待下列其中一個條件成立的時間(以秒為單位):
- 使新訊息放在佇列上
- 如果已指定 -sqgi 參數,則條件為完整群組放在佇列上。
- -sq
- 選用項目。 指定傳送的來源是佇列。
- -mquserid user_id
- 選用項目。 指定用來向協調佇列管理程式進行鑑別的使用者 ID。
- -mqpassword password
- 選用項目。 指定用來向協調佇列管理程式進行鑑別的密碼。
![[MQ 9.3.0 Jun 2022]](ng930cd.gif)
-nolpw- 選用項目。 如果指令所連接的佇列管理程式不支援超過 12 個字元的密碼,請指定此參數。
- source_specification
- 如果您已指定 -df、-dd、-dp、-dp 或 -ds 參數,則為必要項目。 如果指定 -td 參數,請不要指定 source_specification。
- 如果未指定 -sq 參數,則 source_specification 是一個以上檔案規格,決定檔案傳送的一個以上來源。 檔案規格以空格區隔。 檔案規格可接受五種格式,也可包括萬用字元。 如需 WMQFTE 中萬用字元的相關資訊,請參閱 將萬用字元與 MFT 搭配使用。 您可以在檔案規格中使用兩個星號字元 (**),以跳出檔案規格中的星號。若要傳送其檔名包含空格的檔案,請以雙引號括住包含空格的檔名。 例如,若要將檔案每一個檔案規格必須採用下列其中一種格式:
a b.txt傳送至檔案c d.txt,請指定下列文字作為 fteCreateTemplate 指令的一部分:-df "c d.txt" "a b.txt"- 檔案名稱
- 檔案的名稱,使用來源代理程式執行所在系統的適當表示法表示。 在檔名指定為來源檔案規格時,會複製檔案的內容。
- 目錄
- 目錄的名稱,使用來源代理程式執行所在系統的適當表示法表示。 在目錄指定為來源檔案規格時,會複製目錄的內容。 更準確地說,會複製目錄中及其所有子目錄中的所有檔案,包括隱藏式檔案。
循序資料集- (僅限 z/OS)。 循序資料集的名稱或分割的資料集成員。 在資料集名稱之前加上兩個正斜線字元 (//) 來表示資料集。
分割的資料集- (僅限 z/OS)。 分割資料集的名稱。 在資料集名稱之前加上兩個正斜線字元 (//) 來表示資料集名稱。
- Connect:Direct 節點上的檔名或目錄
- (僅限Connect:Direct 橋接器代理程式)。 Connect:Direct 節點的名稱、冒號字元 (:) ,以及管理 Connect:Direct 節點之系統上的檔案或目錄路徑。 例如,connect_direct_node_name:file_path。
如果來源代理程式是 Connect:Direct 橋接器代理程式,則只會接受此形式的來源規格。
附註: 當來源代理程式是 Connect:Direct 橋接器代理程式時,檔案路徑中不支援萬用字元。
- 如果已指定 -sq 參數,則 source_specification 是來源代理程式佇列管理程式上的本端佇列名稱。 您只能指定一個來源佇列。 以下列格式指定來源佇列:
來源佇列規格中不包括佇列管理程式名稱,因為佇列管理程式與來源代理程式佇列管理程式必須相同。QUEUE_NAME
- 如果未指定 -sq 參數,則 source_specification 是一個以上檔案規格,決定檔案傳送的一個以上來源。 檔案規格以空格區隔。 檔案規格可接受五種格式,也可包括萬用字元。 如需 WMQFTE 中萬用字元的相關資訊,請參閱 將萬用字元與 MFT 搭配使用。 您可以在檔案規格中使用兩個星號字元 (**),以跳出檔案規格中的星號。
- -? 或 -h
- 選用項目。 顯示指令語法。
範例
payroll accounts monthly report
template 的傳送範本。 提交後,此範本會將具有副檔名 .xls 的任何檔案從代理程式 PAYROLL1 傳送至所指定目錄中的代理程式 ACCOUNTS:fteCreateTemplate -tn "payroll accounts monthly report template" -sa PAYROLL -sm QM_PAYROLL1 -da ACCOUNTS
-dm QM_ACCOUNTS -df C:\payroll_reports\*.xls C:\out\*.xls jupiter_neptune_sched_template 的傳送範本。 提交後,範本會將檔案 originalfile.txt 從 QM_JUPITER 所在的系統傳送至 QM_NEPTUNE 所在的系統。 檔案傳送排定在 09:00 進行(根據來源代理程式所在的系統的系統時間),並每隔兩小時進行四次:fteCreateTemplate -tn jupiter_neptune_sched_template -sa AGENT1 -sm QM_JUPITER -da AGENT2 -dm QM_NEPTUNE
-tb source -ss 09:00 -oi hours -of 2 -oc 4
-df C:\import\transferredfile.txt C:\export\originalfile.txt jupiter neptune trigger template 的傳送範本。 在提交此範本後,如果檔案 A.txt 存在於 AGENT1 上,檔案 originalfile.txt 會從 AGENT1 傳送至 AGENT2:fteCreateTemplate -tn "jupiter neptune trigger template" -sa AGENT1 -sm QM_JUPITER -da AGENT2 -dm QM_NEPTUNE
-tr file=exist,C:\export\A.txt -df C:\import\transferredfile.txt C:\export\originalfile.txt
在此範例中,會建立一個稱為 ascii_ebcidic_template 的範本。 提交此範本後,檔案 originalfile.txt 會從 AGENT1 所在的系統傳送至 AGENT2 所在的系統上的資料集 //'USERID.TRANS.FILE.TXT'。 已選取文字模式以將資料從 ASCII 轉換為 EBCDIC。fteCreateTemplate -tn ascii_ebcidic_template -t text -sa AGENT1 -da AGENT2
-ds "//TRANS.FILE.TXT;RECFM(V,B);BLKSIZE(6144);LRECL(1028);
SPACE(5,1)" C:\export\originalfile.txt
在此範例中,會建立一個稱為 ebcidic_ascii_template 的範本。 提交此範本後,AGENT1 所在系統上的完整資料集的成員會傳送至 AGENT2 所在系統上的檔案。 已選取文字模式以將檔案從 EBCDIC 轉換為 ASCII。fteCreateTemplate -tn ebcidic_ascii_template -t text -sa AGENT1 -da AGENT2 -df /tmp/IEEUJV.txt "//'SYS1.SAMPLIB(IEEUJV)'"
回覆碼
| 回覆碼 | 說明 |
|---|---|
| 0 | 指令已順利完成。 |
| 1 | 指令未順利結束。 |

在