Variables ESQL

Una variable ESQL es un campo de datos utilizado para ayudar a procesar un mensaje.

Debe declarar una variable e indicar su tipo antes de utilizarla. El tipo de datos de una variable es fijo. Si codifica ESQL que asigne un valor de un tipo diferente, se implementa una transformación CAST al tipo de datos del destino o se genera una excepción (si no se da soporte a la transformación CAST implícita).

Para definir una variable y darle un nombre, utilice la sentencia DECLARE.
Nota: Los nombres de las variables ESQL distinguen entre mayúsculas y minúsculas, por lo que es importante asegurarse de utilizar el tipo de letra correcto en todos los sitios. La manera más fácil de garantizar esto es definir siempre las variables utilizando nombres en mayúsculas.
El kit de herramientas de Message Broker indica, mediante marcas de aviso, las variables que no se han definido. Es una buena práctica eliminar todas estas marcas antes de desplegar un flujo de mensajes.

Puede asignar un valor inicial a la variable en la sentencia DECLARE. Si no se especifica un valor inicial, las variables escalares se inicializan con el valor especial NULL, mientras que las variables ROW se inicializan con un estado vacío. Posteriormente, puede cambiar el valor de las variables utilizando la sentencia SET.

Hay tres tipos de nodos incorporados que pueden contener código ESQL y, por tanto, soportar el uso de variables ESQL:

Ámbito, duración y compartimiento de una variable

La extensión y duración de una variable de ESQL específica viene indicada por su ámbito, duración y compartimiento:

El ámbito de una variable es una medida del rango en el que es visible. En el entorno de intermediario, el ámbito de las variables normalmente está limitado al nodo individual.

La duración de una variable es una medida del tiempo durante el que conserva su valor. En el entorno de intermediario, la duración de una variable varía pero suele estar limitada a la duración de una hebra en el nodo.

Las características de compartimiento de una variable indican si cada hebra tiene su propia copia de la variable o si se comparte una variable entre muchas hebras. En el entorno de intermediario, normalmente las variables no se comparten.

Tipos de variables

Puede utilizar las Sentencia DECLARE para definir tres tipos de variables:
Externa
Las variables externas (definidas con la palabra clave EXTERNAL) también se denominan propiedades definidas por el usuario (UDP): vea Propiedades definidas por el usuario en ESQL. Existen mientras está activo un flujo de mensajes y son visibles para todos los mensajes que pasan a través del flujo de mensajes. Sus valores iniciales (opcionalmente establecidos mediante la sentencia DECLARE) pueden modificarse, en el tiempo de diseño, mediante el editor de flujos de mensajes o, en el tiempo de despliegue, mediante el editor BAR. Estos valores no pueden modificarse mediante ESQL.
Normal
Las variables "normales" tienen una duración de sólo un mensaje que pase por el nodo. Sólo son visibles a ese mensaje. Para definir una variable "normal", omita las palabras clave EXTERNAL y SHARED.
Compartida
Las variables compartidas pueden utilizarse para implementar una memoria caché interna en el flujo de mensajes, consulte Optimizar los tiempos de respuesta de los flujos de mensajes. Las variables compartidas tienen una gran duración y son visibles para múltiples mensajes que pasan por un flujo, consulte Variables de larga duración. Su duración es la misma que el proceso del grupo de ejecución, la duración del flujo o nodo, o la duración del SQL del nodo que declara la variable (el que sea menor). Se inicializan cuando el primer mensaje pasa por el flujo o el nodo después de cada inicio de intermediario.

Consulte también la opción ATOMIC de la Sentencia BEGIN ... END. La construcción BEGIN ATOMIC es útil cuando deben realizarse varios cambios en una variable compartida y es importante evitar que otras instancias vean los estados intermedios de los datos.

Para obtener información sobre los tipos específicos de variables, consulte:
Conceptos relacionados
Propiedades definidas por el usuario en ESQL
Variables de larga duración
Visión general de flujos de mensajes
Tareas relacionadas
Desarrollar flujos de mensajes
Desarrollo de ESQL
Referencia relacionada
Nodos incorporados
Nodo Compute
Nodo Database
Nodo Filter
Sentencia DECLARE
Sentencia BEGIN ... END
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ak01010_