Sync Server Verwaltung


Bereitstellen einer eigenen Logik zur Fehlerbehandlung

Fast alle Nachrichten erfordern einen Benutzereingriff, um den im Nachrichtentext beschriebenen Fehler zu beheben. Um die Synchronisationsverwaltung zu vereinfachen, können Sie Routinearbeiten, die bei Auftreten bestimmter Fehler immer wieder erforderlich werden, durch Bereitstellen einer eigenen Programmlogik automatisieren.

Gehen Sie wie folgt vor, um einen Prozess zur automatischen Fehlerverarbeitung zu definieren:

  1. Öffnen Sie die folgende Datei mit einem Editor Ihrer Wahl:
    DSYUserExits.properties
    
    Diese Datei ordnet eine Nachrichtennummer einer Routine oder einem Programm zu, die bzw. das ausgeführt wird, wenn die Nachrichtennummer in das Protokoll geschrieben wird. Diese Merkmaldatei unterstützt viele unterschiedliche Parameter.
    # Formats:
    # {DSY message id}={class to execute} {environment parameters}
    # {DSY message id}={command to execute} {environment parameters}
    #   where
    #     {DSY message id}:
    #       a DSY* message id that you want to define a user exit for (such as 
    #       DSYD000E)
    #     {class to execute}:
    #       the name the Java .class to execute. This class must implement the
    #       com.ibm.mobileservices.DSYUserExitsInterface
    #     {command to execute}:
    #       the name the command to execute (such as pager.exe)
    #     {environment parameters}:
    #       a series of parameters to pass in to the class or command to execute
    #
    #   Optional command tags:
    #     <DSYID>            = the message id
    #     <DSYIDMSG>         = the message id message text
    #     <DSYIDMSG_>        = the message id message text, but all blanks are 
    #                          converted to underscores
    #     <DSYMSG>           = the message text
    #     <DSYMSG_>          = the message text, but all blanks are converted to 
    #                          underscores.
    #     <SERVER_IPADDRESS> = the server ip address (such as 9.112.19.143)
    #     <SERVER_NAME>      = the server name (such as mpauser.stl.ibm.com)
    #
    # Refer to the messages section for available DSY message ids.
    #
    # Example 1:
    #   If you wanted to have user exists for DSYD000E, you would add a line 
    #   similar to the following:
    #
    # DSYD000E=pager.exe number=5551234 id=<DSYID> msg=<DSYMSG_>
    #
    # When a DSYD000E message was issued, the pager.exe command would be executed
    # with two environment parameters would be set: number=5551234, id=DSYD000E
    # and msg=DSY message text, substituting an underscore (_) for blanks.
    #
    # Example 2:
    #   If you wanted to have a class executed when a DSYD020E was encountered,
    #   you would add a line similar to the following:
    #
    # DSYD020E=com.ibm.mobileservices.DSYUserExitsSample.class
    #
    # When a DSYD020E was issued, the com.ibm.mobileservices.DSYUserExitsSample 
    # class would be executed.
    
  2. Am Ende der Datei ist der Nachrichtennummer eine Aktion zuzuordnen, die ausgeführt werden soll, wenn die Nachricht in das Protokoll geschrieben wird. Diese Aktion kann ein Befehl (wie z. B. eine ausführbare Datei oder eine Stapeldatei) oder eine Java-Klasse sein. Verwenden Sie das folgende Format:
    nachrichtennummer=aktion parameter=wert
    

    Dabei gilt Folgendes:

    nachrichtennummer
    Die Nummer der Fehlernachricht. In Anhang A, Fehlernachrichten finden Sie eine Liste der Fehlercodes und der zugehörigen Nachrichtentexte.

    aktion
    Die Datei, die auf den Befehl oder die Java-Klasse verweist, die aufgerufen werden soll. Die Java-Klasse muss Folgendes implementieren: com.ibm.mobileservices.DSYUserExitsInterface.

    parameter=wert
    Eine Reihe von Parametergruppen (z. B. lastname=Doe firstname=John ), wobei die einzelnen Gruppen durch jeweils ein Leerzeichen zu trennen sind.

    Die auszuführende Aktion muss auf eine gültige Routine oder ein Programm verweisen.

Angenommen, Sie möchten einen Benutzer-Exit aufnehmen, der Sie entsprechend benachrichtigt, wenn die Nachricht DSYD000E ausgegeben wird. Sie könnten hierfür ein Programm mit dem Namen pager.exe schreiben, das Ihren Pager anwählt, und die Pager-Nummer als Parameter eingeben. Die Zeile in der Datei DSYUserExits könnte dann so aussehen:

DSYD000E=pager.exe nummer=9980674

Sie haben auch die Möglichkeit, die folgenden Parameter und Variablen in den Befehl aufzunehmen:

ID
Verwenden Sie diesen Parameter, um den Code der Nachricht zu schreiben. Für den Parameterwert geben Sie die Variable DSYID an.

MSG
Verwenden Sie diesen Parameter, um den Nachrichtentext zu schreiben. Geben Sie für den Parameterwert DSYMSG an, um den tatsächlichen Nachrichtentext zu schreiben, oder DSYMSG_, wenn der Nachrichtentext geschrieben, aber alle Leerzeichen im Text in Unterstreichungszeichen konvertiert werden sollen.

Das folgende Beispiel zeigt, wie derselbe Pager angewählt werden kann, die Nachrichtennummer und der Text aber so übergeben werden, dass Sie auf der Pager-Anzeige erscheinen:

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

Beachten Sie aber, dass Sync Server weder die Gültigkeit der Einträge in der Datei DSYUserExits prüft noch verfolgt, ob die Aktion, die Sie der Nachricht zugeordnet haben, tatsächlich ausgeführt wird.

Das Dateitool DSYUserExitsTest.bat ist enthalten, um eine Benutzer-Exit-Routine zu testen. Verwenden Sie das folgende Format, um eine Benutzer-Exit-Routine mit dem Tool DSYUserExitsTest zu testen:

DSYUserExitsTest.bat dsy-nachrichten-id

Dabei ist dsy-nachrichten-id die Nachrichtennummer, die Sie simulieren wollen. Wenn Sie keine Nachrichten-ID angeben, wird eine Liste der verfügbaren Nachrichten-IDs angezeigt.

Beispielbefehl mit der Nachrichten-ID DSYS001I:

DSYUserExitsTest.bat dsys001i

Die Nachricht DSYS001I wird generiert und der für diese Nachricht definierte Benutzer-Exit wird gestartet.

Beispielbefehl mit einer ungültigen Nachrichtennummer:

DSYUserExitsTest.bat zzz

Die Ausgabe des Tools DSYUserExitsTest:

DSYUserExitsTest
    DSY-Nachrichten-ID 'ZZZ' wurde nicht gefunden. Die folgenden
    DSY-Nachrichten-IDs sind gültig:
DSYA000E, DSYA001E, DSYD000E, DSYD002E, DSYD006E, DSYD007E, ...


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]