WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Procesar mensajes de bytes con nodos JMS

El comportamiento predeterminado de WebSphere Message Broker al procesar mensajes de bytes puede afectar a clientes que se han designado para utilizar los métodos readUTF() y writeUTF(). Construya una secuencia de bits UTF equivalente utilizando un nodo Compute.

De forma predeterminada, WebSphere Message Broker procesa mensajes de bytes utilizando los métodos JMS readBytes() y writeBytes(). Con estos métodos, la carga útil se escribe o lee como una matriz de bytes sin procesar. Para el mensaje de entrada, el comportamiento se basa en la serialización del árbol de mensajes; para el mensaje de salida, la secuencia de bits resultante se pasa al analizador especificado por el usuario para construir un árbol lógico.

Este comportamiento puede afectar a clientes que se han diseñado para utilizar los métodos readUTF() y writeUTF(). Una serie UTF contiene información de longitud codificada así como la secuencia de bits sin procesar. Para construir una secuencia de bits UTF equivalente que pueda ser leída por el método readUTF(), realice los pasos siguientes.

  1. Añada un nodo Compute inmediatamente antes de un nodo JMSOutput.
  2. Efectúe una doble pulsación en el nodo Compute para abrir el correspondiente archivo ESQL.
  3. Utilice el ESQL que se muestra en el siguiente ejemplo para construir una secuencia de bits UTF equivalente desde un mensaje de entrada XMLNSC. Un cliente que utiliza el mensaje readUTF() puede interpretar esta secuencia de bits.
    CALL CopyMessageHeaders();
    
    DECLARE byteData BLOB ASBITSTREAM (InputRoot.XMLNSC ccsid
    InputProperties.CodedCharSetId);
    DECLARE stringData CHARACTER CAST(byteData AS CHARACTER ccsid
    InputProperties.CodedCharSetId );
    DECLARE dataLen INTEGER LENGTH (byteData);
    
    DECLARE blobLen BLOB CAST(dataLen AS BLOB ENCODING
    InputProperties.Encoding);
    DECLARE str2byteBlobLen CHARACTER SUBSTRING (CAST(blobLen AS
    CHARACTER) FROM 15 FOR 4);
    
    SET OutputRoot.BLOB.BLOB = CAST(str2byteBlobLen as BLOB) ||
    byteData ;
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última actualización:
        
        Última actualización: 2015-02-28 17:00:52


Tema de tareaTema de tarea | Versión 8.0.0.5 | bc23530_