WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

Validando Mensagens

O broker fornece validação com base no modelo de mensagens predefinidas.

Antes de começar:

Leia os tópicos de conceitos sobre fluxos de mensagens e analisadores, especificamente Domínio e Analisador DFDL e Analisador XMLNSC.

A validação se aplica apenas a mensagens modeladas e implementadas no broker. Especificamente, os domínios de mensagens que suportam validação são DFDL, MRM, XMLNSC, SOAP e IDOC.

O broker não fornece nenhuma validação para mensagens de autodefinição. Os domínios DFDL, XMLNSC e SOAP validam mensagens predefinidas diretamente nos arquivos de esquema de modelo de mensagem. Os analisadores MRM e IDOC validam mensagens predefinidas em relação ao dicionário de mensagens gerado a partir de um conjunto de mensagens.

Os fluxos de mensagens são projetados para transformar e rotear mensagens que estão de acordo com determinadas regras. Por padrão, os analisadores desempenham alguma verificação de validade em uma mensagem, mas apenas para assegurar a integridade da operação de análise. Entretanto, você pode validar rigorosamente uma mensagem em relação ao modelo de mensagem contido no conjunto de mensagens, especificando as opções de validação em determinados nós no fluxo de mensagem.

Você pode utilizar opções de validação para validar as seguintes mensagens:
  • Mensagens de entrada que são recebidas por um nó input
  • As mensagens de saída que são criadas, por exemplo, por um nó Compute, Mapeamento ou JavaCompute
Essas opções de validação podem garantir a validade de dados que estão entrando e saindo do fluxo de mensagens. As opções fornecem algum grau de controle sobre a validação executada para:
  • Manter um equilíbrio entre requisitos de desempenho e requisitos de segurança
  • Validar em estágios diferentes de conclusão do fluxo de mensagens; por exemplo, na entrada de uma mensagem, antes de uma mensagem ser propagada ou em qualquer ponto broker
  • Suportar mensagens que seu modelo de mensagem não descreve totalmente

Também é possível especificar qual ação executar quando a validação falhar.

A validação de mensagens envolve a navegação em uma árvore de mensagens e a verificação da validade da árvore. A validação de mensagens é uma extensão da criação da árvore quando a mensagem de entrada é analisada e da criação do fluxo de bits quando a mensagem de saída é gravada.

As opções de validação estão disponíveis nos seguintes nós:
Tipo de Nó Nós com opções de validação
Nó Input FileInput, FTEInput, HTTPInput, JMSInput, MQInput, EntradaSCA, SOAPInput,TCPIPClientInput, TCPIPClientReceive, TCPIPServerInput, TCPIPServerReceiveTimeoutNotification
Nó Output EmailOutput, FileOutput, FTEOutput, HTTPReply, JMSOutput, JMSReply, MQOutput, MQReply, RespostaSCA, SOAPReply, TCPIPClientOutput, TCPIPServerOutput
Outros nós Compute, CICSRequest, DatabaseRetrieve, HTTPRequest, FileRead, JavaCompute, Mapeamento, MQGet, PHPCompute, ResetContentDescriptor, RespostaAssíncronaSCA, SCARequest, SOAPRequest, SOAPAsyncResponse, Validate, XSLTransform

As opções de validação também podem ser especificadas na instrução ESQL CREATE e na função ASBITSTREAM.

Para validar mensagens de entrada que são recebidas em um nó de entrada, é possível especificar propriedades de validação no nó de entrada. A mensagem de entrada é então validada quando o fluxo de bits da mensagem é analisado para formar a árvore de mensagens.

Também é possível utilizar a propriedade Tempo de Análise do nó de entrada para controlar se a mensagem inteira será analisada e validada neste momento ou se os campos individuais na mensagem serão analisados e validados apenas quando referidos.

Para validar mensagens de saída criadas por um nó de transformação, especifique propriedades de validação no próprio nó ou no nó de saída que envia a mensagem. A validação ocorre quando o fluxo de bits da mensagem é criado a partir da árvore de mensagens pelo nó output.

Alternativamente, utilize um nó Validate para validar uma árvore de mensagens em um local específico em seu fluxo de mensagens, ou utilize a função ESQL ASBITSTREAM em um nó Compute, Filter, ou Banco de Dados.

Por padrão, ocorre uma quantidade limitada de validação, se você deixar as configurações de validação inalteradas. Nesse nível padrão, será emitida uma exceção se uma das seguintes condições for aplicável:
  • Há uma incompatibilidade de dados; por exemplo, o analisador não pode interpretar os dados fornecidos para o tipo de campo especificado.
  • A ordem de elementos na mensagem de saída não corresponde à ordem de elementos na árvore de mensagens lógica (apenas modelos de comprimento fixo DFDL,MRM CWF e MRM TDS).
Além disso, o analisador DFDL desempenha uma ação reparatória limitada nas seguintes circunstâncias:
  • Na ausência de conteúdo obrigatório, valores padrão serão fornecidos, se disponíveis no esquema, na saída.
  • Se o tipo de dados de um elemento na árvore for CHARACTER e não corresponder ao especificado no esquema, o tipo de dados será convertido na saída para corresponder ao esquema, se possível.
Além disso, o analisador MRM desempenha uma ação reparatória limitada nas seguintes circunstâncias:
  • Os campos externos são descartados na saída para formatos fixos (somente modelos de comprimento fixo CWF e TDS).
  • Na ausência de conteúdo obrigatório, valores padrão serão fornecidos, se disponíveis, na saída para formatos fixos (somente modelos de comprimento fixo CWF e TDS).
  • Se o tipo de dados de um elemento na árvore não corresponder ao especificado no dicionário, o tipo de dados será convertido na saída para corresponder à definição do dicionário, se possível, para todos os formatos.
No entanto, utilizando opções de validação, você pode solicitar uma validação de mensagens mais completa. Por exemplo, talvez você queira validar uma ou mais das seguintes condições e lançar uma exceção ou registrar os erros:
  • Toda a mensagem no início do fluxo de mensagens
  • Que os elementos complexos possuam a Composição e Validação de Conteúdo corretas
  • Que todos os campos de dados contenham o tipo de dados correto
  • Que os campos de dados estejam de acordo com as restrições de valores no modelo de mensagem
  • Que todos os campos obrigatórios estejam presentes na mensagem
  • Que apenas os campos esperados estejam presentes na mensagem
  • Que os elementos da mensagem estejam na ordem correta

As amostras ilustram algumas dessas opções de validação.

Você só pode visualizar informações sobre amostras quando usa o centro de informações que está integrado ao WebSphere Message Broker Toolkit ou o centro de informações on-line. Você só poderá executar amostras quando usar o centro de informações que está integrado ao WebSphere Message Broker Toolkit.

Ao utilizar opções de validação, é importante entender o seguinte comportamento.
  • A propriedade Tempo de Análise, que controla se a análise on-demand (às vezes chamada de análise parcial) ocorrerá, se afetará o tempo da validação de mensagens de entrada, incluindo cabeçalhos da mensagem.

    Para obter informações adicionais sobre a propriedade Tempo de Análise, consulte Analisando On Demand.

  • Se uma árvore de mensagens for transmitida para um nó output, por padrão, o nó output herdará as opções de validação em vigor para a árvore de mensagens. É possível substituir estas opções especificando um novo conjunto de opções de validação no nó output.
  • Se uma árvore de mensagens for transmitida como entrada para um nó Compute, Mapeamento, XSLTransform, DatabaseRetrieve ou JavaCompute, as novas árvores de mensagens de saída criadas pelo nó terão as opções de validação especificadas pelo próprio nó (mesmo que a mensagem inteira seja copiada). Você pode substituir esse comportamento e especificar que as mensagens criadas pelo nó herdem as opções de validação da árvore de mensagem de entrada.
  • (Apenas domínios DFDL e MRM) Quando o fluxo de bits é gravado e as opções de validação forem aplicadas, toda a mensagem é validada. A árvore de mensagem pode conter um tipo não resolvido (por exemplo, se um nó Compute copiou um tipo não resolvido de uma mensagem de entrada para uma mensagem de saída sem resolvê-lo). Se tal tipo for encontrado, ocorrerá um erro de validação porque não é possível validar o tipo. Para evitar este erro, assegure-se de que todos os tipos não resolvidos sejam resolvidos antes de serem copiados para mensagens de saída.
  • (Somente domínio MRM) Não marque a caixa de seleção Truncar sequências de comprimento fixo porque a validação é feita antes do truncamento, e um campo de comprimento fixo causará falha na validação se seu comprimento exceder o comprimento definido no conjunto de mensagens. Para obter informações adicionais sobre a propriedade Truncar cadeias de comprimento fixo, consulte Conjuntos de Mensagens: Propriedades do Conjunto de Mensagens Custom Wire Format e Conjuntos de Mensagens: Propriedades do Conjunto de Mensagens Formato TDS.

Para obter informações sobre como controlar a validação utilizando propriedades diferentes, consulte Propriedades de Validação.

Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:28:11


Tópico de TarefaTópico de Tarefa | Versão 8.0.0.5 | ac00400_