Notas del release


20.4 Visión general funcional de MQSeries

Con DB2 UDB Versión 7.2 se ofrecen un grupo de funciones de MQSeries que permiten que las sentencias de SQL incluyan operaciones de gestión de mensajes. Esto significa que este soporte está disponible para las aplicaciones escritas en cualquier lenguaje soportado, por ejemplo C, Java, SQL utilizando cualquiera de las interfaces de bases de datos. Todos los ejemplos que se muestran a continuación están en SQL. Este SQL se puede utilizar desde otros lenguajes de programación de todas las formas estándares. Todos los estilos de gestión de mensajes de MQSeries descritos anteriormente reciben soporte. Para obtener más información sobre funciones de MQSeries, consulte la sección Consulta de SQL de las Notas del release.

En una configuración básica, hay un servidor de MQSeries situado en la máquina servidor de bases de datos junto con DB2. Las funciones de MQSeries se instalan en DB2 y ofrecen acceso al servidor de MQSeries. Los clientes DB2 pueden estar en cualquier máquina a la que pueda acceder el servidor de DB2. Varios clientes pueden acceder simultáneamente a las funciones de MQSeries a través de la base de datos. Mediante las funciones suministradas, los clientes de DB2 pueden realizar operaciones de gestión de mensajes dentro de sentencias de SQL. Estas operaciones de gestión de mensajes permiten que las aplicaciones de DB2 se comuniquen entre sí o con otras aplicaciones de MQSeries.

El mandato enable_MQFunctions sirve para habilitar una base de datos de DB2 para las funciones de MQSeries. Establecerá automáticamente una configuración sencilla por omisión que pueden utilizar las aplicaciones de clientes sin realizar ninguna acción administrativa adicional. Para ver una descripción, consulte los apartados 20.6, enable_MQFunctions y 20.7, disable_MQFunctions. La configuración por omisión ofrece a los programadores de aplicaciones un método rápido de comenzar y una interfaz sencilla para el desarrollo. Se pueden ir configurando de forma incrementan funciones adicionales a medida que se necesitan.

Ejemplo 1: para enviar un mensaje sencillo utilizando la configuración por omisión, la sentencia de SQL sería la siguiente:

VALUES DB2MQ.MQSEND('mensaje simple')

Esta sentencia enviará el mensaje mensaje simple al gestor de colas de MQSeries y a la cola especificada por la configuración por omisión.

La Interfaz de gestión de aplicaciones (AMI) de MQSeries ofrece una separación clara entre acciones de gestión de mensajes y las definiciones que indican cómo se deben llevar a cabo estas acciones. Estas definiciones se mantienen en un archivo de repositorio externo y se gestionan mediante la herramienta de administración de AMI. Esto facilita el desarrollo y el mantenimiento de las aplicaciones AMI. Las funciones de MQSeries que se suministran con DB2 se basan en la interfaz AMI de MQSeries. AMI da soporte al uso de un archivo de configuración externo, denominado Repositorio de AMI, para almacenar la información de configuración. La configuración por omisión incluye un Repositorio de AMI de MQSeries configurado para que se utilice con DB2.

Hay dos conceptos de la AMI de MQSeries, puntos de servicio y políticas, que se transfieren en DB2 MQSeries Functions. Un punto de servicio es un punto final lógico desde el que se envía o en el que se recibe un mensaje. En el repositorio de AMI, cada punto de servicio se define con un nombre de cola de MQSeries y un gestor de colas. Las políticas definen las opciones de calidad de servicio que se deben utilizar para una determinada operación de gestión de mensajes. Las calidades clave de servicio incluyen prioridad y permanencia del mensaje. Se ofrecen puntos de servicio y definiciones de políticas por omisión que pueden utilizar los programadores para simplificar sus aplicaciones. El ejemplo 1 se puede reescribir del siguiente modo para especificar de forma explícita el nombre de política y punto de servicio por omisión:

Ejemplo 2:

VALUES DB2MQ.MQSEND('DB2.DEFAULT.SERVICE', 'DB2.DEFAULT.POLICY',
                                         'mensaje simple')

Una o más aplicaciones pueden dar servicio a colas en el servidor en el que residen las colas y aplicaciones. En muchas configuraciones se definen varias colas para dar soporte a distintas aplicaciones y diferentes objetivos. Por este motivo, suele ser importante definir diferentes puntos de servicio cuando se realizan peticiones de MQSeries. Esto se demuestra en el siguiente ejemplo:

Ejemplo 3:

VALUES DB2MQ.MQSEND('ODS_Input', 'mensaje simple')

Nota:
En este ejemplo, no se especifica ninguna política, por lo que se utilizará la política por omisión.

20.4.1 Limitaciones

MQSeries ofrece la posibilidad de combinar operaciones de mensajes y operaciones de bases de datos en una sola unidad de trabajo como una transacción atómica. Esta característica inicialmente no recibe soporte de MQSeries Functions en Unix y Windows.

Cuando se utilizan las funciones de envío o recepción, la longitud máxima de un mensaje de tipo VARCHAR es de 4000 caracteres. La longitud máxima para enviar o recibir un mensaje de tipo CLOB es de 1 MB. Éstos son también los tamaños máximos de mensaje para publicar un mensaje mediante MQPublish.

Algunas veces, se necesitan funciones distintas para trabajar con mensajes CLOB y mensajes VARCHAR. Generalmente, la versión CLOB de una función MQ utiliza una sintaxis idéntica a la de su contrapartida. La única diferencia es que el nombre contiene, al final, los caracteres CLOB. Por ejemplo, el equivalente CLOB de MQREAD es MQREADCLOB. Para ver una lista detallada de estas funciones, consulte 43.6.3, Ahora se soportan datos CLOB en funciones de MQSeries.

20.4.2 Códigos de error

Los códigos de retorno que devuelve MQSeries Functions se encuentran en el Apéndice B del manual de la Interfaz de gestión de mensajes de aplicaciones de MQSeries.


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]