Nó Database

Finalidade

Utilize o nó Database para interagir com um banco de dados na origem de dados ODBC especificada. Defina a natureza da interação, codificando as instruções ESQL que especificam os dados a partir da mensagem de entrada e, talvez, transforme-a de alguma forma (por exemplo, para executar um cálculo) e designe o resultado para uma tabela de banco de dados.

Você pode definir uma propriedade para controlar se a atualização ao banco de dados é consolidada imediatamente ou adiada até que o fluxo de mensagens seja concluído, momento em que a atualização é consolidada ou revertida de acordo com o status geral de conclusão do fluxo de mensagens.

Embora você possa utilizar esse nó para atualizar o banco de dados, não poderá fazer atualizações na mensagem.

Você pode utilizar formatos especializados deste nó para:
  • Atualizar valores em uma tabela do banco de dados (o nó DataUpdate)
  • Inserir linhas em um banco de dados (o nó DataInsert)
  • Excluir linhas de uma tabela do banco de dados (o nó DataDelete)
  • Armazenar a mensagem ou partes da mensagem, em um armazém (o nó Warehouse)

O nó Database é representado no workbench pelo seguinte ícone:

 Ícone do nó Database

Utilizando este nó em um fluxo de mensagens

Veja as amostras a seguir para consultar sobre como utilizar este nó:

Considere uma situação na qual você receba um pedido para 20 monitores. Se você possui quantidade suficiente de monitores em seu armazém e deseja reduzir o nível de estoque em seu banco de dados de estoque. Você pode utilizar o nó Database para verificar se existem monitores suficientes disponíveis e diminuir o valor do campo de quantidade no banco de dados.

Configurando o Nó Database

Quando tiver colocado uma instância do nó Database em um fluxo de mensagens, será possível configurá-lo. Clique com o botão direito do mouse na visualização do editor clique em Propriedades. As propriedades básicas do nó são exibidas.

Todas as propriedades obrigatórias, para as quais é necessário inserir um valor (aquelas que não possuem um valor padrão definido) são marcadas com um asterisco no diálogo das propriedades.

Configure o nó Database da seguinte forma:

  1. Especifique em Origem de Dados o nome através do qual o banco de dados apropriado será é conhecido no sistema no qual o fluxo de mensagens será executado. O intermediário conecta-se às informações de ID de usuário e senha especificadas no comandomqsicreatebroker, mqsichangebroker oumqsisetdbparms.

    Em sistemas z/OS, o intermediário utiliza o ID da tarefa iniciada ou o ID do usuário e a senha que foram especificados no comando JCL mqsisetdbparms de BIPSDBP, no conjunto de dados de customização <hlq>.SBIPPROC.

  2. Em Instrução, identifique o módulo em um arquivo ESQL que contém as instruções ESQL que devem ser executadas neste nó. Para que o nome do módulo inclua um ou mais espaços, coloque o nome entre aspas na propriedade Instrução.

    Quando você codificar instruções ESQL que interagem com tabelas, essas tabelas serão assumidas como existentes nesse banco de dados. Se não existirem, o intermediário gerará um erro do banco de dados no tempo de execução.

    Codifique as instruções ESQL para personalizar o comportamento do nó Database em um arquivo ESQL que está associado ao fluxo de mensagens no qual foi incluída essa instância do nó Database. O arquivo ESQL, que, por padrão, tem o nome <nome_fluxo_mensagem>.esql, contém ESQL para cada nó no fluxo de mensagens necessário. Cada parte do código que está relacionada a um nó específico é conhecida como um módulo.

    Se um arquivo ESQL ainda não existir para esse fluxo de mensagens, clique com o botão direito do mouse no nó Database e clique em Abrir ESQL.Isso cria e abre um novo arquivo ESQL na visualização do editor ESQL.

    Se um arquivo ESQL já existir, clique no botão Procurar ao lado da propriedade Instrução. Isso exibe o diálogo Seleção de Módulo, que lista os módulos de nó Database disponíveis definidos nos arquivos ESQL que podem ser acessados por este fluxo de mensagens (os arquivos ESQL podem ser definidos em outros projetos dependentes). Selecione o módulo apropriado e clique em OK.Se não houver módulos adequados disponíveis, a lista estará vazia.

    Se o módulo que você especificou não existir, ele será criado para você e o editor posicionará o arquivo para exibi-lo. Se o arquivo e o módulo já existirem, o editor posicionará o arquivo e exibirá e realçará o módulo correto.

    Se preferir, você pode abrir o arquivo ESQL apropriado no Navegador de Recursos e selecionar este nó na visualização Contorno.

    Se for criada uma estrutura de módulo para esse nó em um arquivo novo ou existente, ela consistirá no seguinte ESQL. O nome do módulo padrão será mostrado neste exemplo:

    CREATE DATABASE MODULE <flow_name>_Database
           CREATE FUNCTION Main() RETURNS BOOLEAN
           BEGIN
                   RETURN TRUE;
           END;
    END MODULE;

    Se você criar seu próprio módulo ESQL, crie exatamente essa estrutura. Você pode atualizar o nome padrão, mas assegure-se de que o nome que você especifica corresponde ao nome da propriedade de nó correspondente Instrução.

    Inclua seu próprio ESQL para personalizar esse nó após a instrução BEGIN e antes de RETURN TRUE.

    Também é possível criar um arquivo ESQL, clicando em Arquivo > Novo > Arquivo ESQL do Fluxo de Mensagens.

    Você pode utilizar todas as instruções ESQL incluindo SET, WHILE, DECLARE e IF nesse módulo, mas (diferente do nó Compute) o nó Database propagará de forma inalterada a mensagem que recebe em seu terminal de entrada para o seu terminal de saída. Isso significa que, como o nó Filter, você tem apenas uma mensagem a ser referida em um nó Database.

    Como não é possível modificar nenhuma parte de nenhuma mensagem, a instrução de designação (a instrução SET, não a cláusula SET da instrução INSERT) poderá designar os valores apenas para variáveis temporárias. O escopo das medidas que você toma com uma instrução de designação é, portanto, limitada.

    Se preferir, você pode abrir o arquivo ESQL apropriado no Navegador de Recursos e selecionar este nó na visualização Contorno.

  3. Selecione a definição Transação no menu drop down. Os valores são:
    • Automático (o padrão).O fluxo de mensagens, do qual o nó Database faz parte, será consolidado se for bem-sucedido. Ou seja, as ações definidas no módulo ESQL são executadas e a mensagem continua no fluxo de mensagens. Se o fluxo de mensagens falhar, ele será revertido. Se você escolher Automático, a capacidade de consolidar ou reverter a ação do nó Database no banco de dados dependerá do sucesso ou da falha do fluxo de mensagens inteiro.
    • Consolidar.Se desejar consolidar quaisquer ações não consolidadas executadas nesse fluxo de mensagens no banco de dados conectado a este nó, independentemente do êxito ou defeito do fluxo de mensagens como um todo, selecione Consolidar.As alterações no banco de dados serão consolidadas mesmo que o próprio fluxo de mensagens falhe.
  4. Selecione Básico no navegador do diálogo de propriedades e defina ou limpe as caixas de opções:
    • Se quiser que mensagens de aviso do banco de dados sejam tratadas como erros e que o nó propague a mensagem de saída para o terminal de falha, selecione a caixa de opções Tratar Avisos como Erros. A caixa é inicialmente limpa.

      Quando selecionar a caixa, o nó tratará todos os códigos de retorno positivos no banco de dados como erros e gerará exceções da mesma forma que faria para os erros negativos ou mais sérios.

      Se você não selecionar a caixa, o nó tratará avisos como códigos de retorno normais e não gerará nenhuma exceção. O aviso mais significativo gerado é não-localizado, que pode ser tratado como um código de retorno normal de forma segura na maioria das circunstâncias.

    • Se desejar que o intermediário gere uma exceção quando for detectado um erro do banco de dados, selecione a caixa de opções Emitir Exceção em Erro do Banco de Dados. A caixa é inicialmente selecionada.

      Se você limpar a caixa, inclua o ESQL para verificar erros do banco de dados que podem ser retornados após cada chamada do banco de dados feita (pode utilizar SQLCODE e SQLSTATE para fazer isso). Se tiver ocorrido um erro, será necessário tratá-lo no fluxo de mensagens para assegurar a integridade do intermediário e do banco de dados: o erro será ignorado se você não tratá-lo pelo seu próprio processamento, porque você escolheu não chamar o tratamento de erros padrão pelo intermediário. Por exemplo, você pode incluir a instrução ESQL THROW para emitir uma exceção neste nó, ou pode utilizar o nó Throw para gerar sua própria exceção posteriormente.

  5. Selecione Descrição no navegador de diálogo de propriedades para inserir uma descrição breve, uma descrição longa, ou ambas.
  6. Clique em Aplicar para fazer as alterações no nó Database sem fechar o diálogo de propriedades. Clique em OK para aplicar as alterações e fechar o diálogo de propriedades.

    Clique em Cancelar para fechar o diálogo e descartar todas as alterações feitas nas propriedades.

Terminais e Propriedades

Os terminais do nó Banco de Dados estão descritos na tabela a seguir.

Terminal Descrição
Entrada O terminal de entrada que aceita a mensagem para processamento pelo nó.
Defeito O terminal de saía para qual a mensagem de entrada será propagada caso seja detectada uma falha durante o cálculo. Se você tiver selecionado Tratar Avisos como Erros, o nó propagará a mensagem para esse terminal mesmo se o processamento for concluído com êxito.
Saída O terminal de saída para o qual a mensagem transformada será roteada quando o processamento no nó estiver concluído. A mensagem transformada também pode ser roteada para este terminal por uma instrução PROPAGATE.
Out1 O primeiro terminal de saída alternativo para o qual a mensagem transformada pode ser roteada por uma instrução PROPAGATE.
Out2 O segundo terminal de saída alternativo para o qual a mensagem transformada pode ser roteada por uma instrução PROPAGATE.
Out3 O terceiro terminal de saída alternativo para o qual a mensagem transformada pode ser roteada por uma instrução PROPAGATE.
Out4 O quarto terminal de saída alternativo para o qual a mensagem transformada pode ser roteada por uma instrução PROPAGATE.
Nota: Consulte Instrução PROPAGATE para obter a sintaxe da instrução PROPAGATE.

As tabelas a seguir descrevem as propriedades do nó; a coluna com cabeçalho M indica se a propriedade é obrigatória (marcado com um asterisco no diálogo de propriedades caso seja necessário digitar um valor quando nenhum padrão for definido), a coluna com cabeçalho C indica se a propriedade é configurável (você poderá alterar o valor quando incluir o fluxo de mensagens no arquivo bar para implementá-lo).

As propriedades Básicas do nó Database são descritas na tabela a seguir.

Propriedade M C Padrão Descrição
Fonte de Dados Não Sim   O nome da origem de dados ODBC do banco de dados no qual residem as tabelas as quais foram referidas no ESQL associado a este nó (identificado pela propriedade Instrução).
Instrução Sim Não Banco de Dados O nome do módulo no arquivo ESQL que contém as instruções a serem executadas no banco de dados.
Transação Sim Não Automático O modo de transação para o nó. Ele pode ser Automático ou Consolidação.
Tratar Avisos como Erros Sim Não Não selecionada Trata aviso SQL do banco de dados como erros. Se você selecionar a caixa de opções, esta ação é executada.
Emitir Exceção em Erro do Banco de Dados Sim Não Selecionada Erros de banco de dados fazem com que o intermediário lance uma exceção. Se você selecionar a caixa de opções, esta ação é executada.

As propriedades Descrição do nó Database estão descritas na tabela a seguir.

Propriedade M C Padrão Descrição
Descrição Breve Não Não   Uma breve descrição do nó.
Descrição Longa Não Não   Texto que descreve a finalidade do nó no fluxo de mensagens.
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac04670_