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:
DSYUserExits.propertiesDiese 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.
nachrichtennummer=aktion parameter=wert
Dabei gilt Folgendes:
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:
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, ...