使用使用者結束程式自訂 MFT

您可以使用自己的程式 (稱為使用者結束常式) 來自訂 Managed File Transfer 的特性。

重要事項: IBM®不支援使用者結束程式內的任何程式碼,且您的企業或提供該結束程式的供應商必須起始調查該程式碼的任何問題。

Managed File Transfer 提供程式碼中的點,其中 Managed File Transfer 可以將控制權傳遞給您所撰寫的程式 (使用者結束常式)。 這些點即所謂的使用者結束點。 然後,當您的程式完成其工作時, Managed File Transfer 可以回復控制。 您不需要使用任何使用者結束程式,但如果您想要延伸並自訂 Managed File Transfer 系統的功能以符合您的特定需求,則這些使用者結束程式非常有用。

在檔案傳送處理期間,有兩個位置點可供您在來源系統呼叫使用者結束程式,在檔案傳送處理期間,還有兩個位置點可供您在目的地系統呼叫使用者結束程式。 下表彙總這些使用者結束點,以及您要使用結束點時必須實作的 Java 介面。
表 1. 來源端和目的地端結束點及 Java 介面的摘要
結束點 要實作的 Java 介面
來源端結束點:
在整個檔案傳送開始之前 SourceTransferStartExit.java 介面
在整個檔案傳送完成後 SourceTransferEndExit.java 介面
目的地端結束點:
在整個檔案傳送開始之前 DestinationTransferStartExit.java 介面
在整個檔案傳送完成後 DestinationTransferEndExit.java 介面
依下列順序呼叫使用者結束程式:
  1. SourceTransferStartExit
  2. DestinationTransferStartExit
  3. DestinationTransferEndExit
  4. SourceTransferEndExit
SourceTransferStartExit 及 DestinationTransferStartExit 結束程式所做的變更會延伸到後續的結束程式成為輸入。 比方說,例如 SourceTransferStartExit 結束程式修改傳送 meta 資料,此變更會反映在其他結束程式的輸入傳送 meta 資料中。
使用者結束程式和程式呼叫的呼叫順序如下:

- SourceTransferStartExit(onSourceTransferStart).
- PRE_SOURCE Command.
- DestinationTransferStartExits(onDestinationTransferStart).
- PRE_DESTINATION Command.
- The Transfer request is performed.
- DestinationTransferEndExits(onDestinationTransferENd).
- POST_DESTINATION Command.
- SourceTransferEndExits(onSourceTransferEnd.
- POST_SOURCE Command.
附註:
  1. 僅當傳送順利完成或部分順利完成時,才會執行 DestinationTransferEndExits
  2. 僅當傳送順利完成或部分順利完成時,才會執行 postDestinationCall
  3. SourceTransferEndExits 是針對成功、局部成功或失敗的傳送而執行。
  4. 只有在下列情況下,才會呼叫 postSourceCall :
    • 傳送未取消。
    • 有成功或部分成功的結果。
    • 已順利執行任何後置目的地傳送程式。

建置使用者結束程式

建置使用者結束程式的介面包含在 MQ_INSTALL_DIRECTORY/mqft/lib/com.ibm.wmqfte.exitroutines.api.jar 中。 在建置結束程式時,您必須將這個 .jar 檔併入類別路徑中。 若要執行結束程式,請將結束程式解壓縮成 .jar 檔,然後將這個 .jar 檔放到下一節所說明的目錄中。

使用者結束程式位置

您可以在兩個可能的位置儲存使用者結束常式:
  • exits 目錄。 每一個代理程式目錄下都有一個 exits 目錄。 例如:var\mqm\mqft\config\QM_JUPITER\agents\AGENT1\exits
  • 您可以設定 exitClassPath 內容來指定替代位置。 如果 exits 目錄及 exitClassPath 所設定的類別路徑中都有結束程式類別,則以 exits 目錄中的類別為優先,這表示如果這兩個位置有相同名稱的類別,以 exits 目錄中的類別為優先。

配置代理程式使用使用者結束程式

可設定四項代理程式內容來指定代理程式呼叫的使用者結束程式。 這些代理程式內容是 sourceTransferStartExitClassessourceTransferEndExitClassesdestinationTransferStartExitClassesdestinationTransferEndExitClasses。 如需如何使用這些內容的相關資訊,請參閱 MFT 使用者結束程式的代理程式內容

在通訊協定橋接器代理程式上執行使用者結束程式

當來源代理程式呼叫結束程式時,它會將一份要傳送的來源項目清單傳遞給結束程式。 對於一般代理程式,這是一份完整檔名清單。 因為檔案應該是本端檔案(或可透過裝載來存取),所以結束程式能夠存取它並對它進行加密。

但是,對於通訊協定橋接器代理程式,清單中的項目為下列格式:
"<file server identifier>:<fully-qualified file name of the file on the remote file server>"

對於清單中的每一個項目,結束程式都必須先連接至檔案伺服器(使用 FTP、 FTPS 或 SFTP 通訊協定),下載檔案,在本端加密檔案,然後將已加密的檔案上傳回檔案伺服器。

Connect:Direct 橋接器代理程式上執行使用者結束程式

您無法在 Connect:Direct® 橋接器代理程式上執行使用者結束程式。