WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

Datenbankstatus erfassen

Wenn ein Broker auf eine externe Datenbank zugreift und dabei ein Fehler auftritt, können Sie entweder den Broker während der Knotenverarbeitung eine Ausnahmebedingung auslösen lassen oder mithilfe von ESQL-Anweisungen die Ausnahmebedingung im Knoten selbst verarbeiten.

Die Standardaktion besteht darin, dass der Broker während der Knotenverarbeitung eine Ausnahmebedingung auslöst; die ESQL-Verarbeitung im aktuellen Knoten wird abgebrochen. Die Ausnahmebedingung wird anschließend rückwärts über den Nachrichtenfluss weitergegeben, bis ein umschließender Catch-Knoten oder der Empfangsknoten für diesen Nachrichtenfluss erreicht ist. Wenn die Ausnahmebedingung den Empfangsknoten erreicht, werden aktive Transaktionen rückgängig gemacht.

Die Nutzung der ESQL-Anweisungen für die Verarbeitung der Ausnahmebedingung im Knoten selbst setzt voraus, dass Sie die Rückkehrcodes der Datenbank kennen und wissen, welche Maßnahmen zu ergreifen sind, wenn ein Fehler auftritt. Um diese integrierte Datenbankfehlerverarbeitung zu aktivieren, müssen Sie die Eigenschaft Ausnahme für Datenbankfehler ausgeben des Filter-, Datenbank- oder Compute--Knotens inaktivieren. Wenn Sie diese Eigenschaft aufheben, setzt der Knoten die Datenbankstatusanzeiger SQLCODE, SQLSTATE, SQLNATIVEERROR und SQLERRORTEXT entsprechend den Informationen vom Datenbankmanager, anstatt eine Ausnahme auszugeben.

Wenn Sie die Eigenschaft Warnungen als Fehler behandeln nicht ausgewählt haben, enthalten die Anzeiger nur Informationen, wenn ein Fehler (keine Warnung) auftritt. Ist eine Datenbankoperation erfolgreich oder werden mit der Erfolgsmeldung Informationen geliefert, enthalten die Anzeiger ihre Standarderfolgswerte.

Mithilfe dieser Werte in diesen Anzeigern in ESQL-Anweisungen können Sie entscheiden, welche Maßnahmen zu ergreifen sind. Sie können mit den SQLCODE-, SQLSTATE-, SQLNATIVEERROR- und SQLERRORTEXT-Funktionen auf diese Anzeiger zugreifen.

Wenn Sie es mit der integrierten Fehlerverarbeitung versuchen, müssen Sie die Statusanzeiger nach der Ausführung jeder Datenbankanweisung überprüfen, um sicherzustellen, dass Sie alle Fehler erfassen und beurteilen. Wenn Sie bei der Verarbeitung der Anzeiger einen Fehler finden, den Sie nicht integriert verarbeiten können, können Sie eine neue Ausnahmebedingung ausgeben, um diese entweder in einem vorgeschalteten Catch-Knoten zu verarbeiten oder bis zum Empfangsknoten durchzulassen, so dass die Transaktion zurückgesetzt wird. Für diese können Sie dann die ESQL-Anweisung THROW verwenden.

Möglicherweise möchten Sie den Sonderfall überprüfen, in dem SELECT keine Daten zurückgibt. Dieser Fall wird nicht als Fehler betrachtet, und SQLCODE wird nicht festgelegt, so dass Sie dies explizit testen müssen. Weitere Informationen finden Sie im Abschnitt Von SELECT zurückgegebene Werte überprüfen.

ESQL für den Zugriff auf Datenbankstatusanzeiger verwenden

Im folgenden ESQL-Beispiel ist dargestellt, wie die vier Datenbankstatusfunktionen verwendet werden und wie die zurückgegebenen Fehlerinformationen in eine Ausnahmebedingung eingefügt werden:

DECLARE SQLState1 CHARACTER;   
DECLARE SQLErrorText1 CHARACTER;   
DECLARE SQLCode1 INTEGER;   
DECLARE SQLNativeError1 INTEGER;  
  
-- Datenbankeintrag in eine nicht vorhandene Tabelle --
INSERT INTO Database.DB2ADMIN.NONEXISTENTTABLE (KEY,QMGR,QNAME) 
                              VALUES (45,'REG356','my TESTING 2');

-- Abrufen des Datenbankrückkehrcodes --
SET SQLState1 = SQLSTATE;
SET SQLCode1 = SQLCODE;
SET SQLErrorText1 = SQLERRORTEXT;
SET SQLNativeError1 = SQLNATIVEERROR;

-- Zurücksetzen der Datenbank und Ausgeben einer Benutzerausnahme mit der THROW-Anweisung--
THROW USER EXCEPTION MESSAGE 2950 VALUES
( 'The SQL State' , SQLState1 , SQLCode1 , SQLNativeError1 , 
SQLErrorText1 );

Sie müssen keine Ausnahmebedingung ausgeben, wenn Sie einen Datenbankfehler finden. Sie können die zurückgegebenen Fehlerinformationen auch in der Baumstruktur für die lokale Umgebung speichern und in Ihren Nachrichtenfluss einen Filter-Knoten einfügen, der die Nachricht entsprechend den gespeicherten Werten an untergeordnete Fehler- oder Erfolgsnachrichtenflüsse weiterleitet.

Das folgende Musterprogramm enthält ein anderes Beispiel für ESQL-Code, der diese Datenbankfunktionen verwendet:

Informationen zu Beispielen können nur bei Verwendung des in das WebSphere Message Broker Toolkit integrierten bzw. online verfügbaren Information Center angezeigt werden. Muster können nur ausgeführt werden, wenn das im WebSphere Message Broker Toolkit integrierte Information Center verwendet wird.

Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:21:37


TaskthemaTaskthema | Version 8.0.0.5 | ak05840_