ESQL


WMB / IIB: Problemas con la codificación Base64 en la migración de Message Broker a Integration Bus v9

Durante la migración al nuevo IBM Integration Bus v9 (IIB9) encontramos problemas en las clases referenciadas para codificar o decodificar datos en formato Base64, obteiendo un error como el siguiente: Exception: java.lang.NoClassDefFoundError: com/ibm.broker/javacompute/Base64. BIP3202E: An error occurred when trying to resolve the Java class or method ‘com.ibm.broker.javacompute.Base64.encode’ BIP2943E: The Java method ‘com.ibm.broker.javacompute.Base64.encode’ could not be found as its containing class could not be found in the deployed bar file or in the ‘workpath/shared-classes/’ directory. Las soluciones son: – Usar las nuevas funciones nativas que se incorporan desde WMBv8 (BASE64ENCODE y BASE64DECODE). – Utilizar un nuevo jar propio que contenga las […]


WMB: Problema compartiendo un servicio configurable CICS entre varios Grupos de Ejecución

Escenario Tenemos dos o más Grupos de Ejecución que utilizan un servicio configurable para una conexión a una transacción CICS (CICSConnection). Problema El problema es que cuando un flujo desplegado en el Grupo de Ejecución A ha conectado utilizando el servicio configurable, cuando otro flujo desplegado en el Grupo de Ejecución B intenta utilizar el mismo servicio configurable, da un error. Para ello hay que conocer cómo trabaja WMB internamente con las conexiones. Para ello, veamos en la ayuda que nos ofrece el Infocenter de IBM.


ESQL: Formato y codificación UTF-8 y EBCDIC para los conjuntos de mensajes (MessageSet)

Para codificar en UTF-8 por código ESQL con un conjunto de mensajes XML:

Para codificar en EBCDIC por código ESQL con un conjunto de mensajes MRM (Text1):


WMB: Uso eficiente y escalable de variables compartidas (SHARED ROW)

Normalmente en ESQL las variables compartidas (SHARED) son usadas para almacenar datos extraídos de una base de datos, los cuales se recorren con sentencias SELECT, que, mientras más aumenten los datos en memoria, son más lentas. Aquí se muestra una forma eficiente de estructurar la caché que escala bien y es más rápido que un acceso a base de datos incluso cuando se excede de 10.000 registros. Nuestro ejemplo se basa en un flujo que recibe mensajes que contienen un código de aeropuerto (por ejemplo LHR) y accede a una tabla de base de datos de la correspondiente ciudad (Londres). […]


WMB: Formatear un tipo FLOAT a tipo CHARACTER sin formato exponencial en ESQL

Cuando en un XML llega un campo con un valor FLOAT, por ejemplo, 12.67 en WMB, por defecto, si no se está validando contra ningún schema xsd, o algún message set, lo convierte a formato exponencial 1.267E+3. Para evitar esto, hay que hacer un CAST() para convertirlo a tipo CHARACTER y que WMB no le cambie el formato. Pero no hay un CAST() directo de FLOAT a CHAR, sino que tendremos que pasarlo de la siguiente forma:

En este ejemplo usamos COALESCE() para asignar algo siempre al campo.