Este tema contiene los apartados siguientes:
Utilice el nodo Database para interactuar con una base de datos del origen de datos ODBC especificado. La naturaleza de la interacción se define codificando sentencias ESQL que especifican los datos del mensaje de entrada y, quizá, los transforman de algún modo (por ejemplo, para realizar un cálculo) y asignan el resultado a una tabla de base de datos.
Puede establecer una propiedad para controlar si la actualización de una base de datos se debe confirmar inmediatamente, o bien, si se debe diferir hasta que finalice el flujo de mensajes, cuando la actualización se confirma o se restituye según el estado de finalización global del flujo de mensajes.
Aunque puede utilizar este nodo para actualizar la base de datos, no puede realizar ninguna actualización en el mensaje.
Puede utilizar formatos especializados de este nodo para:
El nodo Database se representa en el área de trabajo mediante el icono siguiente:
Consulte los ejemplos siguientes para informarse sobre cómo puede utilizar este nodo:
Imagínese una situación en la que recibe un pedido de 20 monitores. Si dispone de suficientes monitores en el almacén, desea el nivel de existencias de la base de datos de existencias. Puede utilizar el nodo Database para comprobar si tiene suficientes monitores disponibles y disminuir el valor del campo de cantidad de la base de datos.
Se puede configurar al transferir una instancia del nodo Database a un flujo de mensajes. Pulse el botón derecho del ratón en la vista del editor y, a continuación, pulse en Propiedades. Se muestran las propiedades básicas del nodo.
Todas las propiedades obligatorias para las que debe entrar un valor (las que no tienen un valor por omisión definido) se muestran marcadas con un asterisco en el diálogo de propiedades.
Configure el nodo Database tal como se indica a continuación:
En sistemas z/OS, el intermediario utiliza el ID de tarea iniciada del intermediario.
Cuando codifica sentencias ESQL que interactúan con tablas, se presupone que las tablas existen en esta base de datos. Si no es así, el intermediario genera un error de base de datos durante la ejecución.
Codifique sentencias ESQL para personalizar el comportamiento del nodo Database en un archivo ESQL que esté asociado al flujo de mensajes en el que ha incluido esta instancia del nodo Database. El archivo ESQL que, por omisión, tiene el nombre <nombre_flujo_mensajes>.esql, contiene el ESQL para cada flujo de mensajes que lo necesita. Cada parte del código que está relacionada con un nodo específico se conoce como módulo.
Si aún no existe ningún archivo ESQL para este flujo de mensajes, pulse el botón derecho del ratón en el nodo Database y, a continuación, pulse el botón en Abrir ESQL. De este modo, se crea y se abre un nuevo archivo ESQL en la vista del editor ESQL.
Si el archivo ya existe, pulse en el botón Examinar, situado junto a la propiedad Sentencia. De este modo, se visualiza el diálogo Selección de módulo, que lista los módulos de nodos Database disponibles que se han definido en los archivos ESQL a los que puede acceder el flujo de mensajes (los archivos ESQL se pueden haber definido en otros proyectos dependientes). Seleccione el módulo adecuado y, a continuación, pulse el botón en Aceptar. Si no hay ningún módulo adecuado, la lista se muestra vacía.
Si el módulo que ha especificado no existe, se crea automáticamente y el editor sitúa el archivo para su visualización. Si el archivo y el módulo ya existen, el editor sitúa el archivo y visualiza y resalta el módulo correcto.
Si lo prefiere, puede abrir el archivo ESQL adecuado en el navegador de recursos y seleccionar el nodo en la vista Esquema.
El esqueleto del módulo para este nodo se crea en un archivo ESQL nuevo o existente y consta del ESQL siguiente. El nombre del módulo por omisión se muestra en el ejemplo siguiente:
CREATE DATABASE MODULE <flow_name>_Database CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN RETURN TRUE; END; END MODULE;
Si crea su propio módulo ESQL, créelo exactamente como este esqueleto. Puede actualizar el nombre por omisión, pero asegúrese de que el nombre que especifica coincide con el nombre de la propiedad Sentencia del nodo correspondiente.
Añada su propio ESQL para personalizar el nodo después de la sentencia BEGIN y antes de RETURN TRUE.
También puede crear un archivo ESQL pulsando el botón en
.Puede utilizar todas las sentencias ESQL, incluidas SET, WHILE, DECLARE e IF en este módulo, pero (a diferencia del nodo Compute) el nodo Database propaga el mensaje que recibe en el terminal de entrada a su terminal de salida, sin realizar modificaciones, lo que significa que, como en el caso del nodo Filter, en un nodo Database sólo existe un mensaje al que hacer referencia.
Puesto que no puede modificar ninguna parte de los mensajes, la sentencia de asignación (la sentencia SET, no la cláusula SET de la sentencia INSERT) sólo puede asignar valores a variables temporales. Por consiguiente, el ámbito de las acciones que puede llevar a cabo con una sentencia de asignación es limitado.
Si lo prefiere, puede abrir el archivo ESQL adecuado en el navegador de recursos y seleccionar el nodo en la vista Esquema.
Cuando selecciona el recuadro, el nodo maneja todos los códigos de retorno positivos de la base de datos como errores y genera excepciones utilizando el mismo procedimiento que para los errores negativos, o más graves.
Si no selecciona el recuadro, el nodo trata los avisos como códigos de retorno normales y no emite ninguna excepción. El aviso emitido más importante es not found, que se puede manejar, de modo seguro, como un código de retorno normal en la mayor parte de los casos.
Si deselecciona el recuadro, incluya ESQL para comprobar si hay algún error de base de datos que se pueda devolver después de cada invocación de base de datos que realiza (puede utilizar SQLCODE y SQLSTATE para ello). Si se ha producido un error, debe manejarlo en el flujo de mensajes a fin de garantizar la integridad del intermediario y de la base de datos: el error se ignora si no se maneja a través de procesos propios, puesto que se ha elegido que el intermediario no invoque el manejo de errores por omisión. Por ejemplo, puede incluir la sentencia ESQL THROW para que emita una excepción en este nodo, o bien, puede utilizar el nodo Throw para que genere la excepción en un punto posterior.
Pulse el botón en Cancelar para cerrar el diálogo y descartar todos los cambios que ha realizado en las propiedades.
Los terminales del nodo Database se describen en la tabla siguiente:
Terminal | Descripción |
---|---|
Terminal de entrada | Terminal de entrada que acepta un mensaje para que lo procese el nodo. |
Terminal de anomalías | Terminal de salida al que se propaga el mensaje de entrada si se detecta una anomalía durante el cálculo. Si ha seleccionado Tratar los avisos como errores, el nodo propaga el mensaje a este terminal, aunque el proceso se complete satisfactoriamente. |
Terminal de salida | Terminal de salida desde el que sale el mensaje después de la ejecución de la sentencia de base de datos. |
En las tablas siguientes se describen las propiedades del nodo; la columna que tiene el encabezamiento M indica si se trata de una propiedad obligatoria (marcada con un asterisco en el diálogo de propiedades si se debe especificar un valor cuando no se ha definido ningún valor por omisión), la columna que tiene el encabezamiento C indica que se trata de una propiedad configurable (se puede cambiar el valor cuando se añade el flujo de mensajes al archivo bar para su difusión).
Las propiedades básicas del nodo Database se describen en la tabla siguiente:
Propiedad | M | C | Valor por omisión | Descripción |
---|---|---|---|---|
Origen de datos | No | Sí | Nombre de origen de datos ODBC de la base de datos en la que residen las tablas a las que se hace referencia en el ESQL asociado a este nodo (identificado en la propiedad Sentencia). | |
Sentencia | Sí | No | Base de datos | Nombre del módulo del archivo ESQL que contiene las sentencias que se deben ejecutar con respecto a la base de datos. |
Transacción | Sí | No | Automática | Modalidad de transacción para el nodo. Puede ser Automática o Confirmar. |
Tratar los avisos como errores | Sí | No | Deseleccionada | Tratar los avisos SQL de base de datos como errores. Si selecciona el recuadro de selección, se realiza esta acción. |
*Generar excepción en error de la base de datos | Sí | No | Seleccionado | Los errores de base de datos hacen que el intermediario emita una excepción. Si selecciona el recuadro de selección, se realiza esta acción. |
Las propiedades de descripción del nodo Database se describen en la tabla siguiente:
Propiedad | M | C | Valor por omisión | Descripción |
---|---|---|---|---|
Descripción corta | No | No | Descripción breve del nodo. | |
Descripción larga | No | No | Texto que describe la finalidad del nodo en el flujo de mensajes. |
Conceptos relacionados
Flujos de mensajes
Flujos de mensajes, correlaciones y ESQL
Tareas relacionadas
Configuración de DB2
Cómo decidir los nodos que utilizar
Configuración de flujos de mensajes coordinados
Manejo de errores en flujos de mensajes
Configuración de ESQL dentro de nodos
Edición de propiedades configurables
Referencia relacionada
Mandato mqsichangebroker
Mandato mqsicreatebroker
Mandato mqsisetdbparms
Nodo Compute
Nodo DataDelete
Nodo DataInsert
Nodo DataUpdate
Nodo Warehouse
Avisos |
Marcas registradas |
Descargas |
Biblioteca |
Soporte |
Información de retorno (feedback)
![]() ![]() |
ac04670_ |