Processamento adicional é requerido para lidar com a carga útil do ObjectMessage, pois a carga útil do ObjectMessage JMS é 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 assegurar que esteja acessível através 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 criado a partir do objeto.
O Objeto Java pode ser subseqüentemente serializado mais uma vez em um Nó JavaCompute ou em uma extensão definida pelo usuário e é atualizado por meio de suas chamadas de método.
A carga útil para MapMessage e StreamMessage pode ser extraída apenas como elementos individuais e deve ser reformatada pelo nó JMSInput antes de ser utilizada 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 anexa cada par nome-valor a um fluxo de bits como um elemento e valor XML e preserva o tipo do 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 em 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.