WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

Processando Mensagens de Bytes com Nós JMS

O comportamento padrão do WebSphere Message Broker ao processar mensagens de bytes pode afetar clientes que são criados para usar os métodos readUTF() e writeUTF(). Construa um fluxo de bits UTF equivalente usando um nó Compute.

Por padrão, o WebSphere Message Broker processa mensagens de bytes usando os métodos JMS readBytes() e writeBytes(). Usando esses métodos, a carga útil é gravada ou lida como uma matriz de bytes bruta. Para a mensagem de entrada, o comportamento é baseado na serialização da árvore de mensagens; para a mensagem de saída, o fluxo de bit resultante é transmitido para o analisador específico do usuário para construir uma árvore lógica.

Esse comportamento pode afetar clientes que são criados para usar os métodos readUTF() e writeUTF(). Uma sequência UTF contém informações de comprimento codificadas, bem como o fluxo de bit bruto. Para construir um fluxo de bits UTF equivalente que possa ser lido pelo método readUTF(), conclua as etapas a seguir.

  1. Inclua um nó Compute imediatamente antes de um nó JMSOutput.
  2. Clique duas vezes no nó Compute para abrir o arquivo ESQL correspondente.
  3. Use o ESQL mostrado no exemplo a seguir para construir um fluxo de bit UTF equivalente de uma mensagem de entrada XMLNSC. Esse fluxo de bit pode ser entendido por um cliente que usa a mensagem readUTF().
    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 | Downloads | Biblioteca | Suporte | Feedback

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

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:30:52


Tópico de TarefaTópico de Tarefa | Versão 8.0.0.5 | bc23530_