Utilice el subárbol de destino para configurar los destinos utilizados por los nodos de salida, el nodo HTTPRequest, el nodo SOAPRequest, el nodo SOAPAsyncRequest y el nodo RouteToLabel. Los ejemplos siguientes muestran cómo puede crear y utilizar un procedimiento ESQL para realizar la tarea de configurar valores para cada uno de estos usuarios.
Copie y utilice estos procedimientos tal como se muestran, o puede modificarlos y ampliarlos para realizar tareas similares.
Si está creando este código ESQL para un nodo Compute, debe configurar el nodo estableciendo la propiedad Modalidad de cálculo de forma que tenga acceso al árbol del entorno local en el mensaje de salida. Debe seleccionar uno de los tres valores siguientes: Entorno local, Entorno local y mensaje o Todo.
CREATE PROCEDURE addToMQDestinationList(IN LocalEnvironment REFERENCE, IN newQueue char) BEGIN
/*******************************************************************************
* Procedimiento que añade un nombre de cola a la lista de destinos MQ en el entorno local.
* Esta lista la utiliza un nodo MQOutput que tiene la modalidad establecida en la lista de destinos.
*
* IN LocalEnvironment: LocalEnvironment que se debe modificar.
* IN queue: cola que se debe añadir a la lista
*
*******************************************************************************/
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;
Para obtener detalles de estos elementos, consulte Tipos de datos para elementos del subárbol DestinationData de MQ.CREATE PROCEDURE overrideDefaultSOAPRequestURL(IN LocalEnvironment REFERENCE, IN newUrl char) BEGIN
/*******************************************************************************
* Procedimiento que cambia el URL al que el nodo SOAPRequest o
* nodo SOAPAsyncRequest envía la solicitud.
*
* IN LocalEnvironment: LocalEnvironment que se debe modificar.
* IN queue: el URL al que se debe enviar la petición.
*
*******************************************************************************/
SET OutputLocalEnvironment.Destination.SOAP.Request.Transport.HTTP.WebServiceURL = newUrl;
END;
CREATE PROCEDURE overrideDefaultHTTPRequestURL(IN LocalEnvironment REFERENCE, IN newUrl char) BEGIN
/*******************************************************************************
* Procedimiento que cambia el URL al que el nodo HTTPRequest envía la petición.
*
* IN LocalEnvironment: LocalEnvironment que se debe modificar.
* IN queue: el URL al que se debe enviar la petición.
*
*******************************************************************************/
SET OutputLocalEnvironment.Destination.HTTP.RequestURL = newUrl;
END;
CREATE PROCEDURE addToRouteToLabelList(IN LocalEnvironment REFERENCE, IN newLabel char) BEGIN
/*******************************************************************************
* Procedimiento que añade un nombre de etiqueta a la lista RouteToLabel en el entorno local.
* Esta lista la utiliza un nodo RoteToLabel.
*
* IN LocalEnvironment: LocalEnvironment que se debe modificar.
* IN label: etiqueta que se debe añadir a la lista
*
*******************************************************************************/
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;