fteCreateMonitor: 建立 MFT 資源監視器

fteCreateMonitor 指令可從指令行建立並啟動新的資源監視器。 您可以使用 Managed File Transfer 來監視資源 (例如,目錄的內容) ,以便在滿足觸發條件時,啟動指定的作業 (例如檔案傳送)。

用途

使用 fteCreateMonitor 指令,透過 Managed File Transfer 代理程式建立並啟動新的資源監視器。 例如,您可以按下列方式使用資源監視器:外部應用程式會將一個以上檔案放在已知目錄中,並在程序完成後,外部應用程式會將觸發檔案放在監視目錄中。 然後,系統會偵測到觸發檔案,而且啟動定義的檔案傳送並將檔案從已知目錄複製到目的地代理程式。

您可以使用 -ox-ix 參數,將資源監視器配置匯出到 XML 檔以及匯入 XML 檔。 使用 fteCreateMonitor 指令匯入此檔案,可透過與 fteCreateMonitor 指令中提供的資源監視器相同的參數建立新的資源監視器,來匯出至 XML 檔。 此外,您也可以使用 -f -c 參數來動態地改寫監視器配置。

附註:
  • 可以在代理程式上建立且全部以相同優先順序執行的資源監視器數目沒有限制。 請考慮重疊的受監視資源、衝突的觸發條件及資源輪詢頻率的含意。 如需相關資訊,請參閱 MFT 資源監視概念
  • [2018 年 7 月 9.1.0 版]您無法使用包含排定傳送的作業定義來建立資源監視器。 如果您嘗試建立資源監視器,且其傳送定義指向排定在特定時間執行並重複的傳送,則會顯示下列訊息:Task definition file contains a scheduled transfer. A scheduled transfer can not be used with a resource monitor.
  • 通訊協定橋接器代理程式不支援 fteCreateMonitor 指令。
提示: 您也可以使用 fteListMonitors 指令,將資源監視器配置匯出至 XML 檔案:
  • 搭配使用 fteListMonitors 指令與 -ox 會匯出單一資源監視器的定義。
  • [2018 年 7 月 9.1.0 版]IBM® MQ 9.1.0,搭配使用 fteListMonitors 指令與 -od ,可將多個資源監視器定義匯出至指定的目錄。 您也可以使用 -od 選項,將單一資源監視器定義匯出至指定的目錄。
如需 fteListMonitors 指令的相關資訊,請參閱 fteListMonitors: list MFT 資源監視器

特殊字元

如果使用的參數值包含特殊字元,請格外小心,以免指令 Shell 解譯字元的方式不符合預期。 例如,如果完整檔案路徑和名稱包含諸如空格、引號(單引號或雙引號)、正斜線或反斜線字元等字元,則可能會被指令 Shell 解譯,而不是直接傳遞至指令本身。 若要避免字元被指令 Shell 解譯,請用雙/單引號將整個參數括住,或者使用指令 Shell 的 ESC 序列來跳出特殊字元。

Syntax

fteCreateMonitor

Read syntax diagramSkip visual syntax diagram fteCreateMonitor  -ix  monitor_definition_file  -ox  monitor_definition_file  -ma  monitoring_agent_name  -mn  monitor_name  -mm  monitoring_agent_qmgr_name -f-c -md  directory_path  -mq  queue_name -mt -- task_definition_file_name -rl  number_of_recursion_levels  -pi  interval_period  -pu  units -tr  condition , pattern -tc-tcr pattern -tccsrcDestdestSrc -x  exclude_pattern  -mmd  monitor metadata  -pt  pattern_type  -bs  matches_per_task -mquseriduserID-mqpasswordpassword -dv  default_variables  -p  configuration_options 

參數

-ix (xml_filename)
選用項目。 從 XML 檔匯入資源監視器配置。

-ox (xml_filename)
選用項目。 此參數必須與 -ma-mn 參數一起指定。 將資源監視器配置匯出至 XML 檔。

-mn (monitor_name)
必要項目。 指派給此監視器的名稱。 監視器名稱對於監視代理程式必須是唯一的。 但是,您可以刪除監視器,然後以相同名稱建立監視器。

資源監視器名稱的長度上限為 256 個字元。 資源監視器名稱不區分大小寫。 以小寫或大小寫混合格式輸入的資源監視器名稱,都會轉換成大寫。 資源監視器名稱不得包含星號 (*)、百分比 (%) 或問號 (?) 字元。

-ma (monitoring_agent_name)
必要項目。 要執行資源監視的代理程式名稱。 此監視代理程式還必須是您要觸發的監視作業的來源代理程式。
-mm (monitoring_agent_qmgr_name)
監視代理程式所連接的佇列管理程式的名稱。 因為監視代理程式與來源代理程式必須相同,所以此佇列管理程式也是您的來源代理程式的佇列管理程式。
附註: fteCreateMonitor 指令會連接至 Managed File Transfer 拓蹼的指令佇列管理程式。 如果此指令佇列管理程式也是監視代理程式的代理程式佇列管理程式,則此參數是選用項目。 否則,此參數是必要項目。
-f
選用項目。 使用此參數來改寫資源監視器配置。 例如,資源監視器代理程式上已有您選擇的資源監視器名稱,而您只想要更新,而不要刪除並重建同名的監視器。 使用此參數會使代理程式重新啟動監視器處理程序。
-c
選用項目。 此參數會清除所更新資源監視器的歷程,從而導致資源監視器再次檢查觸發條件。 您只能將此參數與 -f 參數搭配使用。

-md (directory_path)
選用項目。 您想要監視的目錄路徑的絕對名稱。 除非您使用 -ix-ox 參數,否則您必須指定 -md-mq 參數之一。

-mq (queue_name)
選用項目。 要監視的佇列的名稱。 此佇列必須位於監視代理程式的佇列管理程式上。 除非您使用 -ix-ox 參數,否則您必須指定 -md-mq 參數之一。

-mt (task_definition_file_name)
必要項目。 包含作業定義的 XML 文件的名稱,在滿足觸發條件時您要執行作此業定義。 如需相關資訊,請參閱 使用傳送定義檔。 傳送定義 XML 文件的路徑必須在您從中執行 fteCreateMonitor 指令的本端檔案系統上。 如果您沒有指定檔案的路徑,則此指令會在現行工作目錄中尋找該檔案。 除非您使用 -ix-ox 參數,否則 -mt 是必要的參數。

您可以在 fteCreateTransfer 指令 上使用 -gt 參數,以產生包含檔案傳送要求的範本 XML 文件。 監視器使用傳送範本作為其作業定義。

[2018 年 7 月 9.1.0 版]您也可以在執行 fteCreateMonitor 指令時使用傳送回復逾時 -rt 參數,以及 -gt 參數。 您可以設定時間量(以秒為單位),在此期間內,來源代理程式會一直重試回復已停止的傳送。 然後,回復逾時參數將包含在具有監視器所使用之傳送定義的 XML 文件中。 如需如何設定此參數的相關資訊,請參閱 fteCreateTransfer 指令

[z/OS]z/OS®上,您必須將作業定義文件儲存在 z/OS UNIX 系統服務上的 UNIX® 檔案中。 您無法將作業定義文件儲存在 z/OS 循序檔或 PDS 成員中。

[IBM i]IBM i上,您必須將作業定義文件儲存在整合檔案系統中。

-rl (number_of_recursion_levels)
選用項目。 根監視目錄的監視遞迴層次,也就是將進入的子目錄層次數。 例如,在諸如下列範例的目錄結構中,C:\wmqfte\monitor 設為根監視目錄:

C:\wmqfte\monitor
C:\wmqfte\monitor\reports
C:\wmqfte\monitor\reports\2009
C:\wmqfte\monitor\reports\2009\April
如果您指定 -rl 2Managed File Transfer 只會一直向下搜尋 C:\wmqfte\monitor\reports\2009 目錄及其同層級目錄。 C:\wmqfte\monitor\reports\2009\April 目錄會被忽略。 依預設,遞迴設定為無。

-pi (interval_period)
選用項目。 目錄的各個監視器之間的間隔期間。 輪詢間隔必須是正整數值。 -pi 的預設值為 1

-pu (units)
選用項目。 監視器輪詢間隔的時間單位。 如果您指定 -pu 參數,您還必須指定 -pi 參數。 -pu 的預設值為 minutes。 請指定下列其中一個選項:
分鐘
小時

-tr
選用項目。 指定進行定義的作業必須滿足的觸發條件。 如果不滿足條件,根據來源代理程式,不會啟動監視作業(例如,檔案傳送)。 觸發條件由兩個選用部分(條件及型樣)組成,以逗點區隔。 請指定下列其中一種格式:
  • 
    condition,pattern
    
    其中 condition 是下列其中一個值:
    match
    對於每一個滿足的觸發程式,會執行定義的作業。 match 是預設值。

    比方說,例如相符項為 *.go,且呈現檔案 LONDON.goMANCHESTER.go,則會對 LONDON.go 執行此作業,而對 MANCHESTER.go 執行其他作業。

    如果呈現前一個輪詢的相同觸發程式檔案(亦即,檔案尚未修改),則此檔案尚未滿足觸發條件。 亦即,相符觸發檔案必須是新的,且必須在執行定義的作業之前自前次輪詢以來已修改。

    noMatch
    監視目錄中沒有任何檔案與型樣相符。 亦即,如果監視目錄中的任何 檔案不存在,則滿足此條件。 如果在建立監視器時沒有任何檔案與觸發條件相符,監視器會立即啟動,但在找到相符檔案及移除之前,不會再次啟動。
    noSize變更 =n
    目錄中至少一個檔案與型樣相符,且 n 輪詢間隔的檔案大小未變更。 n 的值是正整數。
    fileSize> =大小
    目錄中至少一個檔案與型樣相符,且檔案大小下限大於或等於 size。 值 size 是整合與 B、KB、MB 或 GB 的選用大小單位的組合。 例如,fileSize">"=10KB。 如果您沒有指定大小單位,則使用的預設大小為位元組。 在所有作業系統上,當您在指令行指定 filesize 選項時,必須以雙引號括住大於符號 (>),如這個範例所示。

    型樣是以萬用字元或 Java 正規表示式格式表示的檔案型樣相符順序。 型樣的預設值為 *,即與任何檔案相符,預設格式是萬用字元格式。 使用 -pt 指定型樣的格式。

    例如,在字尾為 .go 的檔案存在於監視目錄中時,則滿足下列觸發條件。
    -tr match,*.go 
    在監視目錄中沒有任何字尾為 .stop 的檔案時,滿足下列觸發條件。
    
    -tr noMatch,*.stop 

    只有在同時指定 -md 參數時,才能指定 condition,pattern

  • 
    condition
    
    其中 condition 是下列其中一個值:
    queueNotEmpty
    監視佇列不是空的。 也就是說,如果受監視佇列上有 任何 IBM MQ 訊息,則符合條件。 針對佇列上的所有訊息執行單一作業。
    completeGroups
    監視佇列上具有完整群組。 也就是說,如果受監視佇列上的 任何 IBM MQ 訊息群組已完成,則符合條件。 針對佇列上的每一個完整群組執行個別作業。

    如果不在群組中的單一訊息放在佇列上,它會視為如同它是完整群組,並針對單一訊息執行作業。

    只有在同時指定 -mq 參數時,才能指定 condition

對於您建立的每一個監視器,您只能指定 -tr 參數一次。

-tc
選用項目。 指出觸發的檔案包含一個以上檔案路徑,以產生傳送要求。 觸發檔案內容的預設格式,是一行顯示一個檔案項目。 請將檔案路徑指定為 source file pathsource file path,destination file path。 此參數僅適用於觸發 matchnoSizeChange 的目錄監視器。
-tcr (pattern)
選用項目。 指定取代正規表示式,以剖析觸發檔案。 如果您指定 -tcr 參數,您還必須指定 -tc 參數。
設計可透過一或兩個擷取群組完整剖析每一個行項目的型樣。 群組一定義來源檔案路徑,選用的群組二定義目的地檔案路徑。 此為預設行為,您可以使用 -tcc 參數予以變更。

如需相關資訊及範例,請參閱 使用觸發檔案

-tcc
選用項目。 定義正規表示式擷取群組順序。
srcDest
此為預設值:群組一是來源檔案路徑,群組二是目的地檔案路徑。
destSrc
srcDest 的反向設定。 群組一是目的地檔案路徑,群組二是來源檔案路徑。 請確定 destSrc 的正規表示式有兩個擷取群組。
如果您指定 -tcc 參數,您還必須指定 -tcr 參數。
-x (exclude_pattern)
選用項目。 指定從觸發程式型樣相符排除的檔案。 觸發程式型樣由 -tr 參數指定。

型樣是以萬用字元或 Java 正規表示式格式表示的檔案型樣相符順序。 預設格式是萬用字元格式。 使用 -pt 參數指定型樣的格式。

-mmd (monitor metadata)
選用項目。 指定傳至監視器結束點的使用者定義 meta 資料。 此參數可以採用一個以上以逗點區隔的名稱配對。 每一個名稱配對各包含一個 name=value。 您可以在一個指令中多次使用 -mmd 參數。

-pt (pattern_type)
選用項目。 -tr-x 參數使用的型樣類型。 有效值是:
wildcard
型樣如同萬用字元型樣一樣求值。 星號 (*) 會符合零個以上字元,而問號 (?) 則明確符合一個字元。 這是預設值。
regex
型樣如同 Java 正規表示式一樣求值。 如需相關資訊,請參閱 MFT 使用的正規表示式
-bs (matches_per_task)
選用項目。 單一作業中包含的觸發程式相符數上限。 比方說,例如為 matches_per_task 指定值 5,且單一輪詢間隔中出現九個觸發程式相符項,則會執行兩項作業。 第一項作業對應於觸發程式 1-5(內含),第二項作業對應於觸發程式 6-9。 matches_per_task 的預設值為 1。

只有當您提供給 -mt 參數的作業定義 XML 是 managedTransfer 時,才支援 -bs 參數。 -bs 參數不支援 managedCall。

-mquserid (userID)
選用項目。 指定用來向指令佇列管理程式進行鑑別的使用者 ID。
-mqpassword (password)
選用項目。 指定用來向指令佇列管理程式進行鑑別的密碼。 您還必須指定 -mquserid 參數。 如果指定了 -mquserid,卻未指定 -mqpassword,則系統會提示您提供相關聯的密碼。 不會顯示密碼。
-dv (default_variables)
選用項目。 在監視佇列時,可以在變數替代中使用的預設變數清單(以逗點區隔)。 值的格式是鍵值組。 例如:

-dv size=medium,color=blue
如需變數替代的相關資訊,請參閱 使用變數替代來自訂 MFT 作業。 如果您還指定了 -mq 參數,則只能指定 -dv 參數。
-? 或 -h
選用項目。 顯示指令語法。
-p (configuration_options)
選用項目。 此參數會決定用於取消傳送的配置選項集。 依照慣例,請使用非預設協調佇列管理程式的名稱作為此參數的輸入。 然後,此指令會使用與此非預設協調佇列管理程式相關聯的內容檔集。

如果未指定此參數,則會使用一組以預設協調佇列管理程式為基礎的配置選項。

範例

在此範例中,使用監視代理程式 MYAGENT 建立稱為 MYMONITOR 的新資源監視器。 如果觸發條件是大於 5MB 的檔案呈現在目錄 C:\wmqfte\monitors 中,則會啟動檔案 C:\templates\transfer_reports.xml 中定義的檔案傳送。 MYAGENT 也是 C:\templates\transfer_reports.xml 中所定義檔案傳送的來源代理程式:
fteCreateMonitor -ma MYAGENT -md C:\wmqfte\monitors -mn MYMONITOR -mt C:\templates\transfer_reports.xml
 -tr fileSize">"=5MB,*.go 
在此範例中,會建立使用代理程式 AGENT1 且稱為 MONITOR1 的資源監視器,以傳送大於 5 MB 的檔案,並匯出至 XML 檔案 monitor.xml
fteCreateMonitor -ox monitor.xml -ma AGENT1 -mn MONITOR1 -mt task.xml -tr "fileSize>=5MB,*.zip"
然後,XML 檔案會匯入,並變更為排除大於 10MB 的任何檔案。

fteCreateMonitor -ix monitor.xml -x "fileSize>=10MB,*.zip" -f
在此範例中,會建立使用代理程式 MYAGENT 且稱為 MYMONITOR 的新資源監視器。
fteCreateMonitor -ma MYAGENT -md c:\wmqfte -mn MYMONITOR -mt c:\templates\transfer_reports.xml -tr "fileSize>=5MB,*.go" 
但是,觸發程式起初未正確設定為監視 c:\wmqfte,而非 c:\wmqfte\monitorsfteCreateMonitor 要求會立即重新發出,並更正監視器目錄,以及用來更新監視器的 -f (改寫) 和 -c (清除歷程) 參數。
fteCreateMonitor -ma MYAGENT -md c:\wmqfte\monitors -mn MYMONITOR -mt c:\templates\transfer_reports.xml 
-tr "fileSize>=5MB,*.go" -f -c

回覆碼

表 1. 回覆碼名稱及說明
回覆碼 說明
0 指令已順利完成。
1 指令未順利結束。