Meistens erfordern Fehlernachrichten einen Benutzereingriff, um den im Nachrichtentext beschriebenen Fehler zu beheben. Um die tägliche Synchronisationsverwaltung zu vereinfachen, können Sie Routinearbeiten, die bei Auftreten bestimmter Fehler erforderlich sind, durch Bereitstellen einer eigenen Programmlogik automatisieren.
Vorgehensweise
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=wertDabei 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 Pagernummer 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 Merkmaldatei DSYUserExits prüft, noch verfolgt, ob die Aktion, die Sie der Nachricht zugeordnet haben, tatsächlich ausgeführt wird.
Verwenden Sie das Dateitool DSYUserExitsTest.bat, um eine Benutzer-Exit-Routine zu testen. Verwenden Sie für den Test das folgende Format:
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, ...
Zugehörige Konzepte
Zugehörige Tasks