Variáveis de Existência Longa

Às vezes, é desejável armazenar dados por um período superior ao da existência de uma única mensagem que passa por um fluxo. Uma maneira de fazer isso é armazenar os dados em um banco de dados. Isto é válido para persistência e transacionalidade de longo prazo, mas o acesso (especificamente acesso de gravação) é lento.

Como alternativa, você pode utilizar os tipos de dados ESQL de "existência longa" apropriados para fornecer um cache de memória dos dados por um período de tempo específico. Isto torna o acesso muito mais rápido do que seria a partir de um banco de dados, embora isto dependa de uma persistência mais breve e de nenhuma transacionalidade.

As variáveis de existência longa são criadas utilizando a palavra-chave SHARED na instrução DECLARE.

O Amostra Message Routing demonstra como definir variáveis compartilhadas utilizando a instrução DECLARE. A amostra demonstra como armazenar as informações de roteamento em uma tabela de banco de dados e utilizar variáveis compartilhadas para armazenar a tabela de banco de dados da memória no fluxo de mensagens para aprimorar o desempenho.

Os tipos de dados de existência longa possuem uma existência que se estende além da de uma única mensagem que passa por um nó. Eles são compartilhados entre encadeamentos e existem durante a existência de um fluxo de mensagens (estritamente falando, o tempo entre as alterações na configuração em um fluxo de mensagens), conforme descrito nesta tabela:

  Escopo Existência Compartilhado
Variáveis de existência curta
Esquema & Módulo Encadeamento no nó Nenhum
Rotina Local Encadeamento na rotina Nenhum
Bloco Local Encadeamento no bloco Nenhum
Variáveis de existência longa
Nó Compartilhado Existência do nó Todos os encadeamentos do fluxo
Fluxo Compartilhado Fluxo Existência do fluxo Todos os encadeamentos do fluxo
Os recursos de tipos de dados ESQL de existência longa incluem:

Uma utilização típica destes tipos de dados pode ser em um fluxo no qual as tabelas de dados são 'de leitura' em relação ao fluxo. Embora os dados da tabela não sejam de fato estáticos, o fluxo não os altera e milhares de mensagens passam pelo fluxo antes de existir qualquer alteração nos dados da tabela.

Um exemplo é uma tabela que contém transações de cartões de crédito de um dia. A tabela é criada a cada dia e as mensagens desse dia serão executadas nela. Em seguida, o fluxo é parado, a tabela atualizada e as mensagens do dia seguinte são executadas. É provável que tais fluxos tenham um melhor desempenho se armazenarem em cache os dados da tabela em vez de lê-los a partir de um banco de dados para cada mensagem.

Outra utilização destes tipos de dados pode ser o acúmulo e integração de dados de várias mensagens.

Conceitos relacionados
Nós ESQL e Depuração
Variáveis ESQL
Propriedades Definidas pelo Usuário no ESQL
Referências relacionadas
Instrução DECLARE
Tipo de Dados ESQL ROW
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ak35120_