Sync Server 管理手冊


提供您自己的錯誤處理常式邏輯

幾乎所有的錯誤訊息都需要您採取動作, 以解決訊息文字中所指出的問題。如欲簡化每天的同步化管理, 您可以選擇新增您自己的邏輯,以便在發出特定錯誤訊息碼時能自動執行這些動作。

如欲定義錯誤自動處理:

  1. 選取文字編輯程式,開啟下列檔案以進行編輯:
    DSYUserExits.properties
    

    此檔案關聯著訊息碼及訊息碼寫入日誌中時執行的常式或程式。這個內容檔支援許多不同的參數。

    # 格式:
    # {DSY 訊息 ID}={要執行的類別} {環境參數}
    # {DSY 訊息 ID}={要執行的指令} {環境參數}
    #   其中
    #     {DSY 訊息 ID}:
    #       您要為其定義使用者結束程式的 DSY* 訊息 ID (例如
    #       DSYD000E)
    #     {要執行的類別}:
    #       要執行的 Java .class 名稱。此類別必須實作
    #       com.ibm.mobileservices.DSYUserExitsInterface
    #     {要執行的指令}:
    #       要執行的指令名稱 (例如 pager.exe)
    #     {環境參數}:
    #       要傳入給要執行之類別或指令的一系列參數
    #
    #   可選用的指令標籤:
    #     <DSYID>            = 訊息 ID
    #     <DSYIDMSG>         = 訊息 ID 訊息文字
    #     <DSYIDMSG_>        = 訊息 ID 訊息文字,但所有空白都
    #                          轉換為底線
    #     <DSYMSG>           = 訊息文字
    #     <DSYMSG_>          = 訊息文字,但所有空白都轉換為
    #                          底線。
    #     <SERVER_IPADDRESS> = 伺服器 ip 位址 (例如 9.112.19.143)
    #     <SERVER_NAME>      = 伺服器名稱 (例如 mpauser.stl.ibm.com)
    #
    # 請參閱可用的 DSY 訊息 ID 的訊息區段。
    #
    # 範例 1:
    #   若您想要有 DSYD000E 的使用者結束程式,您會新增一行
    #   類似以下內容:
    #
    # DSYD000E=pager.exe number=5551234 id=<DSYID> msg=<DSYMSG_>
    #
    # 當發出 DSYD000E 訊息時,pager.exe 指令便會被執行,
    # 同時會設定兩個環境參數:number=5551234, id=DSYD000E
    # 及 msg=DSY 訊息文字,並將空白替換成底線 (_)。
    #
    # 範例 2:
    #   若您想要在發現 DSYD020E 時執行一個類別,
    #   您會新增一行類似以下的內容:
    #
    # DSYD020E=com.ibm.mobileservices.DSYUserExitsSample.class
    #
    # 當發出 DSYD020E 時,com.ibm.mobileservices.DSYUserExitsSample
    # 類別便會被執行。
    
  2. 在檔案的末端,有成對的訊息碼及當訊息寫入日誌中時要執行的動作。 動作可以是一個指令 (如可執行檔或批次檔) 或 Java 類別。請使用下列格式:
    message_number=action parameter=value
    

    其中:

    message_number
    訊息的號碼。請參閱附錄 A, 錯誤訊息, 以取得訊息碼及其相關文字。

    action
    參照被呼叫的指令或 Java 類別的檔案。Java 類別必須執行com.ibm.mobileservices.DSYUserExitsInterface。

    parameter=value
    一系列的參數組 (如 lastname=Doe firstname=John), 各組間以空格隔開。

    要執行的動作必須是對有效常式或程式的參照。

例如,假設您要併入的使用者跳出程式會在發出訊息 DSYD000E 時呼叫您。 您可以撰寫程式 pager.exe 來撥接您的呼叫器,並將呼叫器號碼併入為參數。在 DSYUserExits 檔案中的字行類似下面:

DSYD000E=pager.exe number=9980674

您也可以併入下列參數及變數與指令:

ID
使用此參數以撰寫訊息的代碼。對於參數值, 請指定變數 DSYID

MSG
請使用此參數以寫入訊息文字。對於參數值, 請指定 DSYMSG 以寫入實際的訊息文字,或 DSYMSG_ 以寫入訊息文字, 但將文字中的所有空格都轉換為底線字元。

下面範例會撥接相同的呼叫器,但會提出訊息碼及其文字作為參數, 以便能出現在呼叫器視窗中:

DSYD000E=pager.exe number=9980674 id=dsyid msg=dsymsg

Sync Server 不會檢查 DSYUserExits 檔中登錄的有效性, 也不會驗證與訊息相關的動作是否完成。

為了測試使用者呼叫常式,因此包括了 DSYUserExitsTest.bat 檔案工具。 若要使用 DSYUserExitsTest 工具測試使用者呼叫常式,請使用下列格式:

DSYUserExitsTest.bat dsy_message_id

其中 dsy_message_id 是您要模擬的訊息碼。若您未提供訊息 ID,畫面上會顯示可用的訊息 ID 的清單。

訊息 ID 為 DSYS001I 的範例指令:

DSYUserExitsTest.bat dsys001i

會產生 DSYS001I 訊息,而定義給此訊息碼的使用者結束程式便會被啟動。

訊息 ID 無效的範例指令:

DSYUserExitsTest.bat zzz

DSYUserExitsTest 工具的輸出為:

DSYUserExitsTest
    找不到 DSY 訊息 ID 'ZZZ'。有效的 DSY 訊息 ID為:
DSYA000E, DSYA001E, DSYD000E, DSYD002E, DSYD006E, DSYD007E, ...


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]