Como a carga útil é extraída da mensagem JMS para cada tipo de Mensagem JMS.
O processamento adicional é exigido para lidar com a carga útil ObjectMessage, porque a carga útil JMS ObjectMessage é um objeto Java serializado.
O nó JMSInput obtém a carga útil chamando getObject( ) na mensagem. getObject( ) retorna um objeto desserializado da classe original. Essa definição de classe deve ser disponibilizada para o nó JMSInput, e você deve garantir que ela esteja acessível por meio do caminho de classe Java do intermediário. (O caminho de classes está definido no arquivo em lote mqsiprofile, que está no diretório executável do intermediário; por exemplo, no Windows, é o mqsiprofile.cmd no diretório install_dir/bin.) O nó JMSInput chama o analisador BLOB que cria o corpo da mensagem utilizando um fluxo de bits criados a partir do objeto.
O Objeto Java pode ser serializado novamente em seqüência em um nó JavaCompute ou em uma extensão definida pelo usuário e é atualizado utilizando essas chamadas de método.
A carga útil para MapMessage e StreamMessage pode ser extraída somente como elementos individuais e deve ser reformatada pelo nó JMSInput antes que ele possa ser utilizado para criar o corpo da mensagem.
O domínio JMSMap é um sinônimo para o analisador XML do intermediário, que espera um fluxo de dados XML. Os dados de carga útil de MapMessage, no entanto, são extraídos como conjuntos de pares nome-valor do objeto de mensagem. A API JMS é utilizada para obter os pares nome-valor.
O nó JMSInput conecta cada par nome-valor a um fluxo de bits como um elemento e valor XML e preserva o tipo de valor utilizando o atributo dt=.
<map> <Item_8_of_10_Char dt='char'>A</Item_8_of_10_Char> <Item_5_of_10_Double dt='r8'>999999.0</Item_5_of_10_Double> <Item_10_of_10_String>Last Map Item</Item_10_of_10_String> <Item_9_of_10_Boolean dt='boolean'>0</Item_9_of_10_Boolean> <Item_2_of_10_Integrer dt='i4'>999</Item_2_of_10_Integrer> <Item_3_of_10_Short dt='i2'>9999</Item_3_of_10_Short> <Item_7_of_10_Byte dt='i1'>9</Item_7_of_10_Byte> <Item_6_of_10_Float dt='r4'>2.24</Item_6_of_10_Float> <Item_1_of_10_String>P2P Map Msg Number:1</Item_1_of_10_String> <Item_4_of_10_Long dt='i8'>99999</Item_4_of_10_Long> </map>Neste exemplo, a mensagem contém 10 campos. Os nomes dos campos foram gerados por um aplicativo Cliente JMS e têm o formato item_n_of_x_t, em que:
Os dados de carga útil de StreamMessage são uma seqüência de campos, em que cada campo tem um tipo específico. Os campos não têm nomes associados e, portanto, um nome de elemento padrão elt é utilizado para gerar os elementos XML. Semelhante a MapMessage, a API JMS permite que os campos sejam recuperados somente individualmente. O nó JMSInput extrai campos da mensagem JMS e anexa cada um a um fluxo de bits no formato XML.
<stream> <elt>P2P Stream Message Number :7</elt> <elt dt='i4'>999</elt> <elt dt='i2'>9999</elt> <elt dt='i8'>99999</elt> <elt dt='r8'>999999.0</elt> <elt dt='r4'>2.24</elt> <elt dt='i1'>9</elt> <elt dt='char'>A</elt> <elt dt='boolean'>0</elt> <elt>Last Stream Item</elt> </stream>Neste exemplo, 10 valores especificados são incluídos no StreamMessage por um aplicativo cliente JMS.