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 dado de uma variável é fixo; se você codificar
ESQL que designe um valor de um tipo diferente, um cast implícito será
implementado no tipo de dado do destino ou uma exceção será levantada
(se o cast implícito não for suportado).
Para definir uma variável e nomeá-la, utilize a instrução DECLARE.
Os nomes das variáveis ESQL fazem distinção entre maiúsculas e minúsculas;
portanto, certifique-se de utilizar as letras corretas em todos os locais. A maneira mais simples de garantir que
você está utilizando a letra correta é sempre definir as variáveis utilizando nomes
maiúsculos.
O WebSphere Message Broker Toolkit 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. Em seguida, é possível alterar o valor de uma
variável utilizando a instrução SET.
As variáveis ESQL declaradas no nível de módulo 'pertencem' a um único nó. No entanto, as variáveis declaradas no nível de esquema também são fornecidas para cada nó que referencia esse esquema. Embora as variáveis no nível de esquema só sejam declaradas uma vez, cada nó ESQL possui sua própria cópia, que não é compartilhada com nenhum outro nó (a menos que a variável seja marcada como SHARED).
Três tipos de nó integrado podem conter código ESQL e, portanto, suportam a
utilização de variáveis ESQL:
Escopo, Tempo de Vida e Características de Compartilhamento de Variáveis
O
escopo, o tempo de vida e as características de compartilhamento das variáveis
descrevem quão difundida é uma determinada variável ESQL e por quanto tempo ela
fica disponível:
- Escopo
- É uma medida do intervalo no qual uma variável fica visível. No ambiente do intermediário, o escopo de variáveis
geralmente é limitado ao nó individual.
- Ciclo de Vida
- É uma medida do tempo pelo qual uma variável retém seu valor.
No ambiente do broker, o tempo de vida das variáveis varia, mas normalmente ele está restrito à vida de um encadeamento dentro
de um nó.
- Características de compartilhamento
- Indica se cada encadeamento tem sua própria cópia de uma 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. É possível definir
variáveis externas apenas no nível do módulo e do esquema. É
possível modificar os valores iniciais de variáveis externas
(opcionalmente configurados pela instrução DECLARE) no tempo
de design pelo uso do editor Fluxo de Mensagens ou no tempo
de implementação pelo uso do editor Archive do Broker. É possível consultar e configurar os valores de propriedades definidas pelo usuário
no tempo de execução usando o API do Message Broker (também conhecido como CMP API). Para
obter mais informações, consulte Configurando Propriedades Definidas pelo Usuário do Fluxo de Mensagens no Tempo de Execução em um Aplicativo CMP.
- 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 variáveis normais, 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 transmitidas por um fluxo, consulte
Variáveis de Existência Longa.
As variáveis compartilhadas
existem no tempo de vida do processo do grupo de execução, no
tempo de vida do fluxo ou nó ou no tempo de vida do nó SQL que
declara a variável (seja qual for o mais curto). As variáveis
compartilhadas são inicializadas quando a primeira mensagem passa
pelo fluxo ou nó após cada inicialização do broker.
Consulte também
a opção ATOMIC do Instrução BEGIN ... END. A construção BEGIN
ATOMIC é útil quando inúmeras mudanças devem ser feitas em uma variável
compartilhada, além de ser importante para evitar que outras instâncias
vejam os estados intermediários dos dados.