Uma variável ESQL é um campo de dados utilizado para
ajudar a processar uma mensagem.
Para utiliza uma variável, primeiro você deve declará-la e
informar seu tipo. O tipo de dados de uma variável é fixo; se você escrever
código ESQL que atribua um valor de tipo diferente, ou será
implementado um lançamento implícito para o tipo de dados do destino
ou ocorrerá uma exceção (se o lançamento implícito não for suportado).
Para definir uma variável e nomeá-la, utilize a instrução DECLARE.
Os nomes de variáveis de ESQL fazem distinção entre maiúsculas e minúsculas; portanto, certifique-se
de utilizar a letra correta em todos os lugares. A maneira mais simples de garantir que
você está utilizando a letra correta é sempre definir as variáveis utilizando nomes
maiúsculos.
O ambiente de trabalho marca variáveis que não
foram definidas. Remova todos estes avisos antes de implementar um fluxo de mensagens.
Você pode designar
um valor inicial para a variável na instrução DECLARE. Se um valor inicial não for especificado,
variáveis escalares serão inicializadas com o valor especial NULL e as variáveis ROW
serão inicializadas com um estado vazio. Subseqüentemente, você
pode alterar o valor da variável utilizando a instrução SET.
Três tipos de nó integrado podem conter código ESQL e, portanto, suportam a
utilização de variáveis ESQL:
Escopo, Existência e Compartilhamento de Variáveis
Quão extensa e por quanto tempo uma variável ESQL específica fica disponível são descritos
por seu escopo, existência e compartilhamento:
- O escopo de uma variável
- é a medida da faixa na qual ela está visível. No ambiente do intermediário, o escopo de variáveis
geralmente é limitado ao nó individual.
- A existência de uma variável
- é uma medida do tempo durante o qual ela mantém seu valor. No ambiente do intermediário, a existência de uma variável varia, mas geralmente
é restrita à existência de um encadeamento em um nó.
- As características de compartilhamento de uma variável
- Indique se cada encadeamento possui sua própria cópia da variável ou se uma variável
é compartilhada entre vários encadeamentos. No ambiente do intermediário, as variáveis geralmente não são compartilhadas.
Tipos de Variável
- Externo
- As variáveis externas (definidas com a palavra-chave EXTERNAL) também são conhecidas como
propriedades definidas pelo usuário, consulte Propriedades Definidas pelo Usuário no ESQL. Elas existem durante toda a existência de um fluxo de mensagens e são visíveis para todas
as mensagens que passam pelo fluxo. Você pode definir variáveis externas apenas no
nível do módulo e do esquema. Você pode modificar seus valores iniciais (opcionalmente configurados pela
instrução DECLARE) no tempo de design, utilizando o editor do Fluxo de Mensagens, ou no tempo de
implementação, utilizando o editor Broker Archive. Não é possível modificar
posteriormente seus valores utilizando ESQL.
- Normal
- As variáveis normais têm uma existência de apenas uma mensagem que passa por um nó. Elas são visíveis apenas a essa mensagem.
Para definir uma variável normal, omita as palavras-chave EXTERNAL e SHARED.
- Compartilhado
- As variáveis compartilhadas podem ser utilizadas para implementar um cache de memória no
fluxo de mensagens, consulte Otimizando Tempos de Resposta do Fluxo de Mensagens. As variáveis compartilhadas têm
uma existência longa e são visíveis para várias mensagens que passam por um fluxo, consulte
Variáveis de Existência Longa. Elas ocorrem durante a existência do processo do grupo de execução, a
existência do fluxo ou nó, ou durante a existência da SQL do nó que declara a variável (o que for mais
curto). Elas são inicializadas
quando a primeira mensagem é transmitida pelo fluxo ou nó, após a inicialização de cada intermediário.
Consulte também
a opção ATOMIC do Instrução BEGIN ... END.
A construção BEGIN ATOMIC
é útil quando várias alterações precisam ser feitas em uma variável compartilhada
e é importante evitar que outras instâncias vejam os estados intermediários
dos dados.
Para obter informações sobre tipos específicos de variáveis, consulte: