A figura a seguir descreve a estrutura da mensagem JMS:
Cabeçalho
Um cabeçalho deve estar presente em cada mensagem JMS e é designado automaticamente. A maioria dos valores no cabeçalho são configurados pelo provedor JMS quando a mensagem é colocada em um destino JMS. Alguns valores podem ser declarados pelo cliente JMS quando ele cria uma sessão JMS ou quando ele cria o consumidor ou produtor de mensagens; por exemplo, JMSDeliveryMode, JMSExpiration, JMSReplyTo e JMSCorrelationID são criados quando o cliente JMS cria uma sessão JMS ou cria o consumidor ou produtor de mensagens.
Os elementos de dados de cada cabeçalho formam pares nome-valor e eles podem ser qualquer um dos seguintes tipos Java: Boolean, byte, short, char, long, int, float, double, string ou byte[ ].
Propriedades
As propriedades são opcionais e podem ser divididas nas seguintes subseções:
Um aplicativo Java pode designar propriedades relacionadas a aplicativos e elas são configuradas antes da entrega da mensagem. Os nomes de propriedade do aplicativo são significativos apenas para o envio e recebimento de aplicativos.
Cada provedor JMS pode definir propriedades patenteadas que podem ser configuradas pelo cliente ou automaticamente pelo provedor. As propriedades relacionadas ao provedor são prefixadas com JMS_ seguido pelo nome do fornecedor e pelo nome da propriedade específico. Por exemplo, o cliente JMS do WebSphere MQ configura a propriedade do provedor para ser JMS_IBM_MsgType.
Estas propriedades são configuradas pelo provedor JMS quando uma mensagem é enviada. O fornecedor do provedor JMS pode optar por não suportar nenhuma propriedade padrão, suportar algumas propriedades padrão ou suportar todas as propriedades padrão. Os nomes de propriedade padrão começam com JMSX; por exemplo: JMSXUserid ou JMSXDeliveryCount.
As propriedades são manipuladas como pares nome-valor e podem ser qualquer um dos seguintes tipos Java: Boolean, byte, short, char, long, int, float, double, string ou byte[ ].
Carga Útil
O tipo de carga útil define a mensagem JMS. Ela pode ter um dos seis tipos de mensagem JMS descritos em Tipos de Mensagem JMS.
O JMS não define um formato de ligação. O Especificação Java Message Service, Versão 1.1 descreve a representação física de como uma mensagem é estruturada.