Variables de larga duración

A veces es deseable almacenar datos durante más tiempo del que está un mensaje pasando por un flujo. Una forma de hacerlo, es almacenar los datos en una base de datos. Esto es útil para obtener una transaccionalidad y permanencia de larga duración, pero el acceso (particularmente el acceso de escritura) es lento.

De forma alternativa, puede utilizar tipos de datos ESQL "de larga duración" adecuados, para proporcionar una memoria caché interna de los datos durante un cierto periodo de tiempo. Esto hace que el acceso sea mucho más rápido que desde una base de datos, aunque a expensas de una transaccionalidad y permanencia más cortas.

Las variables de larga duración se crean utilizando la palabra clave SHARED en la sentencia DECLARE.

El Ejemplo Direccionamiento de mensajes muestra cómo definir variables compartidas utilizando la sentencia DECLARE. El ejemplo muestra cómo almacenar información de direccionamiento en una tabla de base de datos y utilizar variables compartidas para almacenar la tabla de base de datos en la memoria en el flujo de mensajes para mejorar el rendimiento.

Los tipos de datos de larga duración permanecen durante más tiempo del que emplea un mensaje en pasar por un nodo. Se comparten entre hebras y duran lo mismo que un flujo de mensajes (hablando con rigor, el tiempo entre cambios de configuración de un flujo de mensajes), tal como se describe en esta tabla:

  Ámbito Duración Compartido
Variables de corta duración
Esquema & Módulo Nodo Hebra dentro del nodo No
Local Rutina Nodo Hebra dentro de la rutina No
Local Bloque Nodo Hebra dentro del bloque No
Variables de larga duración
Compartida Nodo Nodo Duración del nodo Todas las hebras del flujo
Compartida Flujo Flujo Duración del flujo Todas las hebras del flujo
Entre las características de los tipos de datos ESQL de larga duración se incluye:

Un uso típico de estos tipos de datos puede ser en un flujo en el que las tablas de datos son de 'sólo-lectura', por lo que respecta al flujo. Aunque los datos de la tabla no son realmente estáticos, el flujo no los cambia y miles de mensajes pasan a través del flujo antes de que haya ningún cambio en esos datos.

Un ejemplo es una tabla que contiene las transacciones de tarjeta de crédito de un día. La tabla se crea cada día y los mensajes de ese día se ejecutarán para ella. Luego el flujo se detiene, la tabla se actualiza y se ejecutan los mensajes del día siguiente. Es muy probable que estos flujos tuvieran un mejor rendimiento si almacenaran los datos de la tabla en memoria caché, en lugar de leerlos de una base de datos para cada mensaje.

Otro uso de estos tipos de datos puede ser la acumulación e integración de datos de varios mensajes.

Conceptos relacionados
Nodos ESQL y depuración
Variables ESQL
Propiedades definidas por el usuario en ESQL
Referencia relacionada
Sentencia DECLARE
Tipo de datos ESQL ROW
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ak35120_