SIMessage
A interface SIMessage é a interface pública para uma mensagem de barramento de integração de serviços a ser usada por mediações e outros componentes do barramento de integração de serviços. Essa interface estende java.lang.Cloneable e java.lang.Serializable.
A versão dos Objetos de Dados de Serviço (SDO) suportada pelas mediações é Versão 1.
A interface SIMessage possui vários métodos que permitem
trabalhar com as propriedades de mensagem, conteúdos do cabeçalho, caminho de roteamento,
metadados e outros:
- O método getDataGraph retorna o gráfico de dados SDO. Isso contém o conteúdo de carga útil SIMessage em uma representação em árvore. Utilizando o gráfico de dados, você pode trabalhar diretamente com campos individuais na carga útil da mensagem. Para obter informações adicionais sobre os gráficos de dados SDO, consulte Gráficos de Dados SDO.
- Você pode transcodificar uma carga útil de mensagem, chamando o método getNewDataGraph(format). Ele retorna uma cópia da carga útil no novo formato. É possível gravar o novo gráfico de dados de volta para a mensagem ao usar setDataGraph(DataGraph, format). Para obter mais informações, consulte Transcodificação entre Formatos de Mensagens.
- Se desejar registrar uma mensagem como um fluxo de byte simples, será possível recuperar a carga útil de mensagem como uma matriz de byte ao usar o método getDataGraphAsBytes. Para obter informações adicionais sobre a conversão do gráfico de dados para bytes e o inverso novamente, consulte Transcodificação de uma Carga Útil da Mensagem em uma Matriz de Byte e Transcodificação de uma Matriz de Bytes em uma Carga Útil da Mensagem.
- Há métodos para obter, definir, excluir e limpar as propriedades do usuário e propriedades da mensagem. Você também pode recuperar uma lista dos nomes de propriedade do usuário. Para obter informações adicionais sobre como trabalhar com propriedades, consulte Trabalhando com Propriedades de Mensagem.
- Os caminhos de roteamento de avanço e retrocesso definem uma lista seqüencial de
destinos de barramentos intermediários através da qual as mensagens passam para chegar a um destino
de barramento alvo. Utilize o caminho de roteamento para aplicar as mediações configuradas em vários
destinos para as mensagem enviadas juntamente com o caminho. Os métodos a seguir permitem obter e
definir o conteúdo de ForwardRoutingPath e ReverseRoutingPath para um SIMessage:
- getForwardRoutingPath()
- setForwardRoutingPath()
- getReverseRoutingPath()
- setReverseRoutingPath()
- Se sua mediação alterar o conteúdo da mensagem, corre-se o risco de que ela não seja mais válida. Se o gráfico de dados não for válido, a mensagem não poderá ser enviada por meio do barramento de integração de serviços ou armazenada no armazenamento de mensagens. Nesse caso, a mensagem não está bem formada. Uma mensagem é bem formada quando todos os valores das propriedades da mensagem puderem ser serializados e o gráfico de dados da mensagem estiver em conformidade com o formato da mensagem. É possível testar sua mensagem ao usar o método isWellFormed. Ele retornará true quando a mensagem contiver um gráfico de dados bem formado. Este teste possui implicações para desempenho. Para obter mais informações, consulte Definindo Propriedades de Ajuste para uma Mediação.
- Você pode trabalhar com o tempo para a mensagem permanecer ativa, medido em
milissegundos da hora em que a mensagem foi enviada originalmente:
- Os métodos getTimeToLive e setTimeToLive permitem obter e definir o valor do campo TimeToLive no cabeçalho da mensagem. Um valor 0 indica que a mensagem nunca expirará.
- Os métodos getRemainingTimeToLive e setRemainingTimeToLive permitem obter e definir o tempo restante em milissegundos antes que a mensagem expire.
Para obter informações adicionais sobre SIMessage, consulte a documentação da API.