Mithilfe der untergeordneten Baumstruktur für Zieladressen (Destination) können Sie Zieladressen festlegen, die von Sendeknoten, dem HTTPRequest-Knoten, dem SOAPRequest-Knoten, dem SOAPAsyncRequest-Knoten und dem RouteToLabel-Knoten verwendet werden. In den folgenden Beispielen wird die Erstellung und Verwendung einer ESQL-Prozedur gezeigt und wie Sie für jedes Beispiel Werte festlegen können.
Sie können diese Prozeduren kopieren und wie im Beispiel gezeigt verwenden, oder Sie können die Prozeduren ändern oder sie erweitern, um ähnliche Tasks auszuführen.
Wenn Sie diesen ESQL-Code für einen Compute-Knoten erstellen, müssen Sie den Knoten konfigurieren, indem Sie die Eigenschaft Rechenmodus so festlegen, dass ein Zugriff auf die Baumstruktur der lokalen Umgebung in der Ausgabenachricht möglich ist. Sie müssen einen der folgenden drei Werte auswählen: Lokale Umgebung, Lokale Umgebung und Nachricht oder Alle.
CREATE PROCEDURE addToMQDestinationList(IN LocalEnvironment REFERENCE, IN newQueue char) BEGIN
/*******************************************************************************
* Prozedur zum Hinzufügen eines WS-Namens zur MQ-Zieladressenliste in der lokalen Umgebung.
* Diese Liste wird von einem MQOutput-Knoten verwendet, dessen Modus für die Zieladressenliste festgelegt wurde.
*
* IN LocalEnvironment: Die lokale Umgebung, die geändert werden soll.
* IN queue: Die Warteschlange, die der Liste hinzugefügt werden soll.
*
*******************************************************************************/
DECLARE I INTEGER CARDINALITY(LocalEnvironment.Destination.MQ.DestinationData[]);
IF I = 0 THEN
SET OutputLocalEnvironment.Destination.MQ.DestinationData[1].queueName = newQueue;
ELSE
SET OutputLocalEnvironment.Destination.MQ.DestinationData[I+1].queueName = newQueue;
END IF;
END;
Eine ausführliche Beschreibung dieser Elemente finden Sie im Abschnitt
Datentypen für Elemente in der untergeordneten MQ-Baumstruktur für Zieldaten (DestinationData).CREATE PROCEDURE overrideDefaultSOAPRequestURL(IN LocalEnvironment REFERENCE, IN newUrl char) BEGIN
/*******************************************************************************
* Eine Prozedur zum Ändern der URL, an die der SOAPRequest-Knoten oder
* SOAPAsyncRequest-Knoten die Anforderung sendet.
*
* IN LocalEnvironment: Die lokale Umgebung, die geändert werden soll.
* IN queue: Die URL, an die die Anforderung gesendet wird.
*
*******************************************************************************/
SET OutputLocalEnvironment.Destination.SOAP.Request.Transport.HTTP.WebServiceURL = newUrl;
END;
CREATE PROCEDURE overrideDefaultHTTPRequestURL(IN LocalEnvironment REFERENCE, IN newUrl char) BEGIN
/*******************************************************************************
* Eine Prozedur zum Ändern der URL, an die der HTTPRequest-Knoten die Anforderung sendet.
*
* IN LocalEnvironment: Die lokale Umgebung, die geändert werden soll.
* IN queue: Die URL, an die die Anforderung gesendet wird.
*
*******************************************************************************/
SET OutputLocalEnvironment.Destination.HTTP.RequestURL = newUrl;
END;
CREATE PROCEDURE addToRouteToLabelList(IN LocalEnvironment REFERENCE, IN newLabel char) BEGIN
/*******************************************************************************
* Prozedur zum Hinzufügen einer Kennung zur RouteToLabel-Liste in der lokalen Umgebung.
* Diese Liste wird vom RouteToLabel-Knoten verwendet.
*
* IN LocalEnvironment: Die lokale Umgebung, die geändert werden soll.
* IN label: Die Kennung, die der Liste hinzugefügt werden soll
*
*******************************************************************************/
IF LocalEnvironment.Destination.RouterList.DestinationData is null THEN
SET OutputLocalEnvironment.Destination.RouterList.DestinationData."label" = newLabel;
ELSE
CREATE LASTCHILD OF LocalEnvironment.Destination.RouterList.DestinationData
NAME 'label' VALUE newLabel;
END IF;
END;
CREATE PROCEDURE CreateJMSDestinationList() BEGIN
SET OutputLocalEnvironment.Destination.JMSDestinationList.DestinationData[1] = 'jndi://TestDestQueue1';
SET OutputLocalEnvironment.Destination.JMSDestinationList.DestinationData[2] = 'jndi://TestDestQueue2';
SET OutputLocalEnvironment.Destination.JMSDestinationList.DestinationData[3] = 'jndi://TestDestQueue3';
END;