Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - Datenbankadministration » Pflege Ihrer Datenbank » Aufgaben mit Zeitplänen und Ereignissen automatisieren » Definition von Event-Handlern

 

Event-Handler entwickeln

Event-Handler für geplante Ereignisse oder Systemereignisse enthalten zusammengesetzte Anweisungen und ähneln in vieler Hinsicht den gespeicherten Prozeduren. Sie können Schleifen, bedingte Abläufe, etc. einbauen und den SQL Anywhere-Debugger verwenden, um die Fehlersuche in Event-Handlern durchzuführen.

Nach jeder Ausführung eines Event-Handlers wird ein COMMIT ausgeführt, falls kein Fehler aufgetreten ist. Wenn es einen Fehler gegeben hat, wird ein ROLLBACK ausgeführt.

Kontext für Event-Handler

Im Unterschied zu gespeicherten Prozeduren übernehmen Event-Handler keine Argumente. Sie können die EVENT_PARAMETER-Funktion verwenden, um Informationen über den Kontext abzurufen, in dem ein Ereignis ausgelöst wurde. Die zurückgegebenen Informationen umfassen die Verbindungs-ID und die Benutzer-ID, die das Auslösen eines Ereignisses veranlasst haben, sowie den Ereignisnamen und die Häufigkeit der Ausführung. Weitere Hinweise finden Sie unter EVENT_PARAMETER-Funktion [System].

Routinen für die Verarbeitung von Ereignissen testen

Während der Entwicklung sollen Event-Handler zum gewünschten Zeitpunkt ausgelöst werden. Sie können die Anweisung TRIGGER EVENT verwenden, um die Ausführung eines Ereignisses zu bewirken, auch wenn die Triggerbedingung oder die für die Abfolgeplanung festgelegte Zeit nicht eingetreten sind. TRIGGER EVENT führt allerdings deaktivierte Event-Handler nicht aus. Weitere Hinweise finden Sie unter TRIGGER EVENT-Anweisung.

Es empfiehlt sich zwar nicht, Event-Handler in einer Produktionsdatenbank zu entwickeln, dennoch können Sie Event-Handler in Sybase Central deaktivieren oder die Anweisung ALTER EVENT benutzen.

Code gemeinsam nutzen

Es kann sinnvoll sein, eine einzelne Aktionsgruppe einzurichten, um mehrfache Ereignisse zu verarbeiten. Beispiel: Sie können eine Benachrichtigungsaktion durchführen, wenn der Festplattenspeicher auf einem der Devices zur Neige geht, auf dem die Datenbank- oder Logdateien untergebracht sind. Dazu erstellen Sie eine gespeicherte Prozedur und rufen sie im Hauptteil jedes Event-Handlers auf, wobei Sie ggf. benötigte Kontextinformationen als Parameter an die Prozedur übergeben.

Fehlersuche in Routinen für die Verarbeitung von Ereignissen

Die Fehlersuche in Event-Handlern ähnelt sehr der Fehlersuche in gespeicherten Prozeduren. Die Event-Handler erscheinen in der Liste der Ereignisse.

Weitere Hinweise und eine schrittweise Anleitung finden Sie unter Fehlersuche in Event-Handlern.

Event-Handler ausblenden

Sie können die SET HIDDEN-Klausel verwenden, um die Definition eines Event-Handlers auszublenden. Die Angabe der SET HIDDEN-Klausel führt zur permanenten Verschleierung der Event-Handler-Definition, die in der Aktionsspalte der Systemtabelle ISYSEVENT gespeichert ist. Weitere Hinweise finden Sie unter ALTER EVENT-Anweisung.

Aktive Ereignisse einschränken

Sie können auch ermitteln, wie viele Instanzen eines bestimmten Event-Handlers derzeit aktiviert sind, indem Sie den NumActive-Ereignisparameter verwenden. Diese Funktion ist nützlich, wenn Sie einen Event-Handler auf jeweils eine Instanz begrenzen möchten.

Weitere Inforationen zum Ereignisparameter NumActive finden sie unter EVENT_PARAMETER-Funktion [System].