Uma tabela de eventos armazena informações sobre mudanças nas tabelas de aplicativos.
A tabela de eventos é uma tabela de banco de dados criada pelo usuário, geralmente no mesmo esquema da tabela de aplicativos na qual ele armazena eventos. A tabela de eventos descreve o tipo de mudança feita em uma tabela de aplicativos, além de conter um identificador da linha alterada.
Para preencher uma tabela de eventos, um ou mais acionadores devem ser criados. Um acionador é uma construção de banco de dados que pode executar um script SQL quando uma ação predefinida ocorre. Por exemplo, um acionador pode inserir uma linha na tabela de eventos quando ocorre uma atualização na tabela de aplicativos.
Para obter exemplos de acionadores e tabelas de eventos, consulte a amostra Nó DatabaseInput. 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.
A tabela a seguir mostra algumas colunas típicas em uma tabela de eventos e as razões para incluí-las.
Nome da Coluna | Função de coluna | Valor de exemplo |
---|---|---|
EVENT_ID | Obrigatório. A chave primária, que identifica o evento que está sendo processado. | 1 |
OBJECT_KEY | Obrigatório. Elemento de identificação da linha alterada na tabela de aplicativos, normalmente o elemento da linha na coluna de chave primária. | cust1 |
OBJECT_VERB | Opcional. A alteração executada, normalmente CRREATE, UPDATE ou DELETE. Esse evento é usado para distinguir um evento DELETE, em que a tabela de aplicativos não contém linha a ser recuperada quando a mensagem para o fluxo é construída. | CREATE |
OBJECT_NAME | Opcional. Nome da tabela de aplicativos que foi alterada. Essa coluna será obrigatória se o nó DatabaseInput estiver sendo usado para suportar atualizações em mais de uma tabela de aplicativos. | cliente |
EVENT_PRIORITY | Opcional. A prioridade do evento. Por exemplo, você pode assegurar-se de que as transações de alto valor sejam calculadas primeiro. | 1 |
EVENT_TIME | Opcional. Horário no qual a operação foi executada. Geralmente usado para a criação de log ou monitoramento de desempenho do fluxo. | 2010-10-19T17:10:00 |
EVENT_STATUS | Opcional. Usado para determinar se o evento já foi processado. Requerido se os eventos não forem excluídos ou arquivados após o processamento. | 0 |
EVENT_COMMENT | Opcional. Campo de formato livre, por exemplo, ele pode ser usado para armazenar o resultado do processamento de mensagens se o evento não tiver sido excluído após o processamento. | Processado com exceções |
Os nomes das colunas são apenas exemplos. Você pode usar outros nomes. Se você tiver uma tabela de aplicativos de alto rendimento, uma única linha poderá ser alterada várias vezes entre a recuperação de eventos na tabela de eventos. Nesse caso, somente os detalhes da última mudança serão selecionados pelo fluxo. Se um registro de mudanças intermediárias for necessário, inclua mais detalhes na tabela de eventos. Assegure-se também de que a tabela de eventos tenha informações suficientes sobre os eventos gerados pelas operações DELETE. Aqui, como a linha na tabela de aplicativos não existe mais, todas as informações necessárias para processar o evento com êxito devem estar presentes na tabela de eventos.
Por exemplo, se um novo cliente com a chave primária cust1 for criado na tabela de aplicativos, uma linha será incluída na tabela de eventos:
EVENT_ID | OBJECT_KEY | OBJECT_VERB |
---|---|---|
1 | cust1 | Criar |
O nó DatabaseInput responde à mudança e processa a nova linha em um fluxo de mensagens.
Quando o fluxo de mensagens tiver processado um evento, o fluxo poderá tratar o evento das seguintes maneiras: