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ável | Transformador variável | propriedade 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
sessionVars
mapa 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

Campo | Valor | Descrição | XML | |
---|---|---|---|---|
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>