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

Lançando uma Exceção

Se você detectar um erro ou outra situação em seu fluxo de mensagens na qual deseja que o processamento de mensagens seja finalizado, é possível lançar uma exceção em um fluxo de mensagens de duas maneiras.

Usando opções de instrução ou propriedades do nó, é possível especificar um identificador de mensagem e valores que são inseridos no texto da mensagem para fornecer informações adicionais e identificação aos usuários que interpretam a exceção. Você pode especificar qualquer mensagem em qualquer catálogo que esteja disponível para o broker. Consulte a seção Usando a Criação de Log de Erros a partir de uma Extensão Definida pelo Usuário para obter informações adicionais.

As situações nas quais talvez você queira emitir uma exceção são determinadas pelo comportamento do fluxo de mensagens e é necessário decidir quando projetar o fluxo de mensagens, no qual esta ação pode ser apropriada. Por exemplo, talvez você queira examinar o conteúdo da mensagem de entrada para assegurar-se de que ele atenda critérios específicos que não podem ser detectados pelo nó de entrada (que pode verificar se um determinado formato de mensagem é recebido).

O exemplo a seguir usa o Mensagem de Exemplo para mostrar como você pode usar a instrução ESQL THROW. Para verificar se o número da fatura está dentro de um intervalo específico, lance uma exceção para qualquer mensagem de fatura recebida que não esteja no intervalo válido.

--Check for invoice number lower than permitted range
IF Body.Invoice.InvoiceNo  < 100000 THEN
   THROW USER EXCEPTION CATALOG 'MyCatalog' MESSAGE 1234 VALUES
   ('Invoice number too low', Body.Invoice.InvoiceNo);

-- Check for invoice number higher than permitted range
ELSEIF Body.Invoice.InvoiceNo > 500000 THEN
      THROW USER EXCEPTION CATALOG 'MyCatalog' MESSAGE 1235 VALUES
   ('Invoice number too high', Body.Invoice.InvoiceNo);

ELSE DO
  -- invoice number is within permitted range
  -- complete normal processing
ENDIF;
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:24


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