PATH-Klausel

Die PATH-Klausel spezifiziert eine Liste mit zusätzlichen Schemas, die beim Abgleich von Funktions- und Prozeduraufrufen mit ihren Implementierungen durchsucht werden kann. Das Schema, in dem der Aufruf liegt, ist implizit in der PATH-Klausel eingeschlossen.

Die PATH-Komponente wird verwendet, um nicht qualifizierte Funktions- und Prozessnamen in den Tools entsprechend dem folgenden Algorithmus aufzulösen.

Es muss eine einzige Funktion oder ein einziger Prozess vorhanden sein, der mit dem nicht qualifizierten Namen übereinstimmt, andernfalls melden die Tools einen Fehler. Dieser kann behoben werden, indem der Funktions- oder Prozessname mit einer SchemaId qualifiziert wird:
  1. Das aktuelle MODULE (falls vorhanden) wird nach einer passenden Funktion oder einem passenden Prozess durchsucht. Bereichsfunktionen und Prozesse von MODULE sind nur innerhalb ihres enthaltenen MODULE sichtbar. Bereichsfunktionen und Prozesse von MODULE verdecken Schemabereichsfunktionen und -prozesse.
  2. Das <Knotenschema> (jedoch keines der darin enthaltenen MODULE) und das <SQL-Brokerschema> oder Schemas, die von der PATH-Anweisung bestimmt wurden, werden nach einem passenden Funktionsprozess durchsucht.
Anmerkung: Die Schema-ID muss ein vollständig qualifizierter Schemaname sein.

Das <Knotenschema> ist das Schema, das den Nachrichtenfluss des Schemas enthält. Der Name dieses Schemas wird durch das letzte Segment des Knotens für Nachrichtenverarbeitung uuid in der Broker-XML-Nachricht angegeben.

Wenn eine Routine aufgerufen wird, kann der verwendete Name durch den Schemanamen qualifiziert werden. Der Ablauf hängt von folgenden Umständen ab:
  • Wenn das Schema angegeben ist, wird die benannte Schemaroutine aufgerufen. Die integrierten Skalarfunktionen, ausschließlich der CAST-, EXTRACT- und der Spezialregister, sollten innerhalb eines implizit deklarierten Schemas namens SQL definiert werden. Sie können zum Beispiel mit SQL.SUBSTRING(... ) aufgerufen werden.

    Die weitere Vorgehensweise richtet sich danach, ob sich der Aufrufer in einer Modulroutine oder in einer Schemaroutine befindet.

    Für eine Modulroutine gilt:
    • Falls das Schema nicht angegeben ist, die aufrufende Anweisung sich in einer Modulroutine befindet und eine Routine des gegebenen Namens im lokalen Modul vorhanden ist, so wird diese lokale Routine aufgerufen.
    • Falls das Schema nicht angegeben ist, die aufrufende Anweisung sich in einer Modulroutine befindet und keine Routine des gegebenen Namens im lokalen Modul vorhanden ist, so werden alle Schemas im Schemapfad nach einer Routine mit demselben Namen durchsucht.
      Falls eine passende Funktion in einem Schema vorhanden ist, wird diese verwendet. Falls eine passende Funktion in mehr als einem Schema vorhanden ist, tritt ein Kompilierzeitfehler auf. Falls keine passende Funktion vorhanden ist, wird die Schema-SQL durchsucht.
      Anmerkung: Diese Regel und die vorhergehende Regel setzen voraus, dass eine lokale Modulroutine Vorrang vor einer integrierten Routine mit demselben Namen hat.
    Für eine Schemaroutine gilt:
    • Falls das Schema nicht angegeben ist, der Aufrufer eine Schemaroutine ist und eine Routine mit demselben Namen im lokalen Schema vorhanden ist, wird diese lokale Routine aufgerufen.
    • Falls das Schema nicht angegeben ist, die aufrufende Anweisung in einer Schemaroutine ist und keine Routine des gegebenen Namens im lokalen Schema vorhanden ist, so werden alle Schemas im Schemapfad nach einer Routine mit demselben Namen durchsucht.
      Falls eine passende Funktion in einem Schema vorhanden ist, wird diese verwendet. Falls eine passende Funktion in mehr als einem Schema vorhanden ist, tritt ein Kompilierzeitfehler auf. Falls keine passende Funktion vorhanden ist, wird die Schema-SQL durchsucht.
      Anmerkung: Diese und die vorhergehende Regel setzen voraus, dass eine lokale Schemaroutine Vorrang vor einer integrierten Routine mit demselben Namen hat.

Das <Knotenschema> ist als das Schema definiert, das den Nachrichtenfluss des Knotens enthält. Der Name dieses Schemas wird durch das letzte Segment des Knotens für Nachrichtenverarbeitung uuid in der Broker-XML-Nachricht angegeben.

Das <Knotenschema> wird auf diese Weise angegeben, um Abwärtskompatibilität mit vorigen Versionen von WebSphere Message Broker bereitzustellen.

Wenn das <Knotenschema> das einzige angegebene Schema ist, so enthält die Broker XML-Nachricht nicht die zusätzlichen Funktionen, die in WebSphere Message Broker V5.0 enthalten sind.

Broker vorheriger Versionen von WebSphere Message Broker unterstützen keine mehrfachen Schemas, wie zum Beispiel Subroutinenbibliotheken zur Wiederverwendung. Um einen Broker in eine vorherige Version des Produkts einzusetzen, setzen Sie alle ESQL-Subroutinen in dasselbe Schema ein wie den Nachrichtenfluss und den Knoten, der sie aufruft.

Eclipsetools verwenden die WebSphere Message Broker V5.0 ESQL-Syntax in der Inhaltshilfe und der Quellcodeprüfung. Beim Generieren des Broker-ESQL-Codes, können die Eclipsetools den V2.1 Darstellungscode für die Abwärtskompatibilität generieren.

Das Brokerschema des Nachrichtenflusses muss auf der Schemaebene eines der folgenden Elemente in seinen ESQL-Dateien enthalten:
  • Eine Schemastufenfunktion
  • Einen Schemastufenprozess
  • Eine Schemastufenkonstante
  • Eine Modulstufenkonstante
  • Eine Modulstufenvariable

Wenn keines der vorangehenden Elemente vorhanden ist, generieren die Eclipsetools eine Broker-ESQL ohne MODULE- und FUNCTION-Wrapper. Diese Darstellung wird sowohl von Brokern V2.1 und V5.0 akzeptiert. Wenn Sie jedoch einen Broker V2.1 verwenden, können Sie keine V5.0 Syntax wie beispielsweise 'Namespace' im Code verwenden.

Funktions- und Prozedurnamen müssen innerhalb ihres Schemas oder Moduls eindeutig sein.

Beispiele

Im nachfolgenden Beispiel wird einem Schema namens CommonUtils ein Pfad hinzugefügt:
BROKER SCHEMA CommonUtils
PATH SpecialUtils;

MODULE ....
Im nächsten Beispiel fügen wir dem Standardschema einen Pfad hinzu:
PATH CommonUtils, SpecialUtils;

MODULE ....
Zugehörige Konzepte
Übersicht zu ESQL
Zugehörige Tasks
ESQL erstellen
Zugehörige Verweise
Syntaxdiagramme: verfügbare Typen
ESQL-Anweisungen
BROKER SCHEMA-Anweisung
CREATE MODULE-Anweisung
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ak05105_