Tipos de Mensagem JMS

O JMS define seis tipos de interfaces de mensagem; um tipo de mensagem básico e cinco subtipos. Os tipos de mensagem são definidos de acordo com o tipo de carga útil da mensagem, em que a carga útil é o corpo de uma mensagem que possui o conteúdo. O JMS especifica somente a interface e não especifica a implementação. Isto permite a implementação e transporte de mensagens específicas do fornecedor enquanto utiliza uma interface comum.

A tabela a seguir descreve os seis tipos de mensagem:
Tipo de Mensagem Descrição
Mensagem A classe-base. Este tipo de mensagem é utilizado para notificação de eventos e não possui uma carga útil.
BytesMessage A carga útil é armazenada como uma matriz de bytes. Este tipo de mensagem é útil para trocar dados em um formato nativo de aplicativo e quando o JMS é utilizado como um transporte entre dois sistemas, em que o cliente JMS não conhece o tipo de carga útil da mensagem.
TextMessage Os dados são armazenados como uma cadeia. Este tipo de mensagem é útil para a troca de mensagens de texto simples e para dados de caracteres mais complexos, como documentos XML.
StreamMessage Uma mensagem de Fluxo é uma seqüência de tipos Java primitivos. O objeto de mensagem rastreia a ordem e os tipos destes primitivos no fluxo. As regras de conversão formal se aplicam; por exemplo, será emitida uma exceção se um aplicativo JMS tentar ler um valor duplo como um valor resumido. Consulte Especificação Java Message Service, Versão 1.1 para obter uma lista completa das regras de conversão.
21ABCDEFGH32.345 é um exemplo de uma carga útil StreamMessage. Consiste nos três campos a seguir:
  • um Inteiro, 21
  • uma Cadeia, ABCDEFGH
  • uma Flutuação, 32.345

Se a estrutura de dados for desconhecida, o método genérico readObject() poderá ser utilizado para retornar o próximo objeto no fluxo. Se a estrutura dos dados for conhecida, o cliente JMS poderá ser específico sobre o tipo de objeto sendo acessado.

MapMessage A carga útil de um MapMessage é armazenada como um conjunto de pares nome-valor. O nome é definido como uma cadeia e o valor é especificado. O MapMessage é útil para entregar dados chaveados que podem ser alterados de uma mensagem para a seguinte.

NumberOfCopies:5 é um exemplo de carga útil de MapMessage, em que NumberOfCopies é a chave e 5 é o valor.

Os dados podem ser acessados utilizando-se getMapNames(), que retorna um objeto de Enumeração Java. É possível iterar por meio de MessageMap utilizando hasMoreElements() para recuperar os pares nome-valor mapeados.

ObjectMessage A mensagem de Objeto transporta um Objeto Java serializável como sua carga útil. É útil para a troca de objetos Java.
Referências relacionadas
Estrutura da Mensagem JMS
Representação de Mensagens no Transporte JMS
Mensagem JMS como Entrada
Mensagem JMS para Saída
Objetos Administrados por JNDI
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac24862_