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

Capturando o Estado do Banco de Dados

Se ocorrer um erro quando o intermediário acessar um banco de dados externo, você poderá deixar o intermediário emitir uma exceção durante o processamento do nó ou utilizar instruções ESQL para processar a exceção no próprio nó.

Permitir que o broker lance uma exceção durante o processamento de nós é a ação padrão; o processamento ESQL no nó atual é abandonado. Em seguida, a exceção é propagada para trás através do fluxo de mensagens até alcançar um nó de captura ou o nó input desse fluxo de mensagens. Se a exceção atingir o nó de entrada, nenhuma transação ativa será retrocedida.

A utilização de instruções ESQL para processar a exceção no próprio nó requer um entendimento de códigos de retorno do banco de dados e um curso lógico de ação a ser executada quando ocorrer um erro. Para ativar este processamento de erro do banco de dados seqüencial, é necessário limpar a propriedade Emitir Exceção em Erro do Banco de Dados do nó Filter, Banco de Dados ou Compute. Se você desmarcar esta propriedade, o nó configurará os indicadores de estado do banco de dados SQLCODE, SQLSTATE, SQLNATIVEERROR e SQLERRORTEXT com informações apropriadas do gerenciador de banco de dados em vez de emitir uma exceção.

Os indicadores contêm informações somente quando ocorre um erro (não um aviso), a menos que você tenha selecionado a propriedade Tratar Avisos como Erros. Se uma operação do banco de dados for bem-sucedida, ou retornar êxito com informações, os indicadores conterão seus valores de êxito padrão.

Você pode utilizar os valores contidos nesses indicadores em instruções ESQL para tomar decisões sobre a ação a ser tomada. É possível acessar esses indicadores com as funções SQLCODE, SQLSTATE, SQLNATIVEERROR e SQLERRORTEXT.

Se estiver tentando o processamento de erro sequencial, verifique os indicadores de estado após a execução de cada instrução do banco de dados para assegurar que tenha capturado e avaliado todos os erros. Ao processar os indicadores, se encontrar um erro que não possa ser manipulado de forma sequencial, será possível gerar uma nova exceção para lidar com ele enviando dados em um nó de captura, ou deixá-lo passar pelo nó de entrada para que a transação seja recuperada, para a qual é possível utilizar a instrução ESQL THROW.

Você pode verificar o caso especial em que o SELECT não retorna nenhum dado. Esta situação não é considerada um erro e SQLCODE não é configurado, portanto, é necessário fazer o teste explicitamente; consulte Verificando Retornos para SELECT.

Utilizando ESQL para Acessar Indicadores de Estado do Banco de Dados

O exemplo de ESQL a seguir mostra como utilizar as quatro funções de estado do banco de dados e como incluir as informações de erro retornadas em uma exceção:

DECLARE SQLState1 CHARACTER;   
DECLARE SQLErrorText1 CHARACTER;   
DECLARE SQLCode1 INTEGER;   
DECLARE SQLNativeError1 INTEGER;  
  
-- Faça uma inserção no banco de dados em uma tabela que não exista --
INSERT INTO Database.DB2ADMIN.NONEXISTENTTABLE (KEY,QMGR,QNAME) 
                              VALUES (45,'REG356','my TESTING 2');

--Recupere os códigos de retorno do banco de dados --
SET SQLState1 = SQLSTATE;
SET SQLCode1 = SQLCODE;
SET SQLErrorText1 = SQLERRORTEXT;
SET SQLNativeError1 = SQLNATIVEERROR;

--Use the THROW statement to back out the database and issue a user exception--
THROW USER EXCEPTION MESSAGE 2950 VALUES
( 'The SQL State' , SQLState1 , SQLCode1 , SQLNativeError1 , 
SQLErrorText1 );

Não é necessário emitir uma exceção quando você detectar um erro de banco de dados; talvez você prefira salvar as informações de erro retornadas na árvore de ambiente local e incluir um nó do Filter em seu fluxo de mensagens que roteia a mensagem aos subfluxos de erro ou êxito de acordo com os valores salvos.

O programa de amostra a seguir fornece outro exemplo de ESQL que utiliza estas funções do banco de dados:

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.

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:29:59


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