quinta-feira, 25 de agosto de 2016

Sessão Variable

Sessão Variable 

Use uma  variável de sessão  para definir ou remover uma variável que está vinculado a uma mensagem para todo seu ciclo de vida, potencialmente através de múltiplos fluxos, aplicações e até mesmo servidores. As variáveis ​​de sessão pode ser facilmente propagado a partir de um fluxo para outro através do transporte VM, ou uma referência de fluxo, mas não através do conector HTTP .Pelo contrário, as variáveis ​​especificadas através do transformador variável persistirem apenas enquanto a mensagem com o qual eles estão associados permanece dentro do mesmo fluxo. Para saber mais sobre escopos de mensagens, consulte  Conceitos de mula .
O transformador variável de sessão é diferente do transformador variável eo transformador propriedade. Consulte a tabela abaixo para uma comparação destes três transformadores.
Sessão transformador variávelTransformador variávelpropriedade Transformer
Usar
Use para definir ou remover uma variável que está ligada à mensagem atual para todo o seu ciclo de vida, através de múltiplos fluxos, aplicações e até mesmo servidores.
Use para definir ou remover uma variável na mensagem, vinculado ao fluxo de corrente.
Use para definir, remover ou copiar as propriedades do escopo de saída de uma mensagem.
Persistência
As variáveis ​​de sessão criados com um transformador variável de sessão persistir durante o ciclo de vida mensagem inteira, independentemente de barreiras de transporte, exceto para o conector HTTP que não propagá-los.
As variáveis ​​estabelecidas com um transformador variável persistem somente para o fluxo de corrente e não pode atravessar a barreira de transporte.
Uma vez que uma mensagem atinge um de saída do conector, todas as propriedades no âmbito de saída são enviados com a mensagem na forma de metadados específico de transporte (cabeçalhos HTTP para uma saída do conector HTTP, por exemplo).
Depois de ter definido uma variável de sessão, você pode chamá-lo usando o sessionVarsmapa em uma expressão Mule. Por exemplo, se você tiver definido uma variável de sessão com o nome "SVname" eo valor "SVvalue", mais tarde você pode invocar essa variável de sessão usando a expressão #[sessionVars.SVname], que avalia a SVvalue.
Note-se que a variável de sessão está ligada a uma mensagem de mula, mas não a um MuleEvent. Isto significa que se você faz uso de um elemento que faz cópias da mensagem - como um escopo assíncrono ou uma dispersão reunir componente - mudanças nas variáveis ​​de fluxo não será mantido entre estas mensagens replicadas, mesmo que começou como um.

Configuração

session_transformer
CampoValorDescriçãoXML
Mostrar nome
variável de sessão
Personalize para exibir um nome exclusivo para o transformador em sua aplicação.
doc:name="Session Variable"
Operação
Ajuste variável de sessão
Selecione para definir uma nova variável de sessão na sua mensagem (como mostrado no exemplo imagem acima).
<set-session-variable>
Remover Session variável
Selecione para excluir uma variável de sessão existente a partir de sua mensagem.
<remove-session-variable>
Nome
String ou expressão Mule
Especifique o nome para a variável de sessão que está a criar ou identificar o nome da variável de sessão que está a remover. Se você estiver removendo as variáveis ​​de sessão, este campo aceita um curinga "*" caráter.
variableName="MyNewSessionVariableName"
Valor
String ou expressão Mule
exibe mula este campo somente se você estiver configurando uma nova variável de sessão.Especificar o valor usando uma string ou uma expressão Mule.
value="MyNewSessionVariableValue"

Exemplo

Em muitos casos, as mensagens de viajar através de múltiplos fluxos, aplicações e até mesmo servidores. Em tais casos, pode ser útil para anexar algum tipo de metadados de uma mensagem, de modo a controlar-lo a partir da sua origem até ao destino final em todos os sistemas. No exemplo abaixo, vamos definir uma variável de sessão chamada messageID. Este messageID contém um identificador exclusivo que persiste na mensagem ao longo de todo o ciclo de vida (a menos que seja explicitamente removido por outra sessão transformador variável).

Exemplo completo de código

 Ver namespace
1
2
3
4
5
6
7
<http:listener-config name="listener-config" host="localhost" port="8081"/>
<flow name="SessionVariableTransformingFlow" doc:name="SessionVariableTransformingFlow">
   <http:listener config-ref="listener-config" path="/" doc:name="HTTP Connector"/>
   <set-session-variable variableName="messageID" value="#[java.util.UUID.randomUUID().toString()]" doc:name="Set Message ID"/>
   <logger message="Variable set with #[sessionVars.messageID]" level="INFO"/>
   <remove-session-variable "NameofSessionVariabletoRemove" doc:name="Session Variable"/>
</flow>

Nenhum comentário:

Postar um comentário