A árvore LocalEnvironment é uma parte da árvore de mensagem lógica na qual você pode armazenar informações enquanto o fluxo de mensagens processa a mensagem.
A raiz da árvore LocalEnvironment é chamada de LocalEnvironment. Essa árvore está sempre presente na mensagem de entrada: uma árvore Ambiente Local vazia é criada quando uma mensagem é recebida pelo nó input.
Utilize a árvore LocalEnvironment para armazenar variáveis que podem ser referidas e atualizadas por nós de processamento de mensagens que ocorrem posteriormente no fluxo de mensagens. Você também pode utilizar a árvore LocalEnvironment para definir destinos (que são internos e externos ao fluxo de mensagens), para os quais uma mensagem é enviada. O WebSphere Message Broker também armazena informações no LocalEnvironment em algumas circunstâncias e faz referência a ele para acessar valores que podem ser sido configurados para destinos. (Compare isso com o Estrutura em Árvore Environment, que o intermediário menciona em apenas uma situação)
A figura abaixo mostra a estrutura em árvore LocalEnvironment. Os filhos de Destino são dependentes de protocolo. O exemplo abaixo mostra a estrutura para uma mensagem do WebSphere MQ. Se a mensagem for analisada por outro analisador interno, ou por um analisador definido pelo usuário, a estrutura da árvore abaixo do elemento Destino terá conteúdo diferente do mostrado na figura.
Na estrutura em árvore mostrada acima, Ambiente Local possui três filhos:
As variáveis no ambiente local podem ser alteradas por qualquer nó de processamento de mensagens subseqüente e persistem até que o fluxo de mensagens fique fora de escopo e o nó criado tenha concluído seu trabalho e retorne o controle ao nó anterior
As variáveis nessa subárvore são persistentes apenas em uma única instância de um fluxo de mensagens. Se você tiver várias instâncias de uma mensagem que passa pelo fluxo de mensagens e precisar transmitir informações entre elas, será necessário utilizar um banco de dados externo.
As informações de transporte são utilizadas por alguns nós de entrada e saída.
Se o fluxo de mensagens for iniciado com um nó HTTPInput, um único elemento de nome HTTP será incluído ao Destino. O elemento HTTP.RequestIdentifier é criado e inicializado para que possa ser utilizado por um nó HTTPReply. Você também pode criar outros campos na estrutura HTTP para uso pelo nó HTTPRequest, por exemplo, a URL do serviço à qual o pedido é enviado. O tópico de cada nó contém informações adicionais sobre o conteúdo de Destino para o protocolo WebSphere MQ Web Services Transport.
Se o fluxo de mensagens incluir um nó MQOutput, cada elemento será um elemento de nome único, MQDestinationList. Se existir mais de um elemento, cada um será será processado pelo nó de forma seqüencial.
Se você incluiu um nó output definido pelo usuário no fluxo de mensagens, o conteúdo do Destino (se suportado) será definido por esse nó.
Você pode configurar os nós de saída para examinar a lista de destinos e enviar a mensagem para aqueles destinos, definindo as propriedades Modo de Destino como Lista de Destinos. Se fizer isso, deverá criar essa subárvore e seu conteúdo para definir esses destinos, fornecendo a ela o nome de Destino. Se isso não for feito, o nó output não poderá entregar as mensagens.
Se preferir, você poderá configurar o nó output para enviar mensagens para um único destino fixo, definindo a propriedade Modo de Destino como Nome da Fila ou como Responder à Fila. Se você selecionar qualquer uma dessas opções fixas, a lista de destinos não terá nenhum efeito nas operações do intermediário e não será necessário criar essa subárvore.
É possível construir o elemento MQ para conter um único elemento opcional Defaults. O elemento Padrões, se criado, deverá ser o primeiro filho e deverá conter um conjunto de elementos de nome/valor que fornecem os valores padrão para o destino da mensagem e suas opções PUT para esse pai.
Você também pode criar vários elementos chamados DestinationData no MQ. Cada um deles pode ser configurado com um conjunto de elementos de nome/valor que definem um destino de mensagem e suas opções PUT.
O conjunto de elementos que definem um destino é descrito em Tipos de Dados para Elementos na Subárvore Dados de Destino.
O conteúdo de cada instância de Dados de Destino é igual ao conteúdo de Padrões para cada protocolo e pode ser utilizado para substituir os valores padrão em Padrões. Você pode configurar Padrões para conter valores que são comuns a todos os destinos e definir apenas os valores exclusivos em cada subárvore DestinationData. Se não for definido um valor em DestinationData ou Defaults, então, o valor definido para a propriedade do nó correspondente é utilizado. De maneira semelhante, se você especificar um nome ou valor de campo com a ortografia ou tipo errado, ele é ignorado e o valor definido para a propriedade de nó correspondente é utilizado.
As informações inseridas em Dados de Destino dependem da característica da propriedade do nó correspondente: isto é descrito em Acessando a Árvore Ambiente Local.
O filho de Destino é Lista de Roteadores. Ele possui um único elemento filho chamado Dados de Destino, que possui uma única entrada chamada Nome do Rótulo. Se estiver utilizando um cenário de roteamento dinâmico que envolve os nós RouteToLabel e Label, será necessário configurar a subárvore Destino com um Lista de Roteadores que contenha os rótulos de referência.
O tópico de cada nó output contém informações adicionais sobre o conteúdo de Destino da Escrita para WebSphere MQ e WebSphere MQ Everyplace.
Quando o processamento do fluxo de mensagens estiver concluído, a árvore Ambiente Local será descartada.
A Amostra Airline Reservations e a Amostra Message Routing demonstram como utilizar o LocalEnvironment para rotear mensagens dinamicamente com base na lista de destino. A Amostra User-defined Extension utiliza o LocalEnvironment para armazenar informações que serão posteriormente incluídas na mensagem de saída criada pelo fluxo de mensagens.