2017-08-06 1 views
0

Ich bin eine Sitzung var auf wahr in einem Fluss A. Ich habe eine Umfrage in einem anderen Fluss B, die regelmäßig überprüft, wenn die Sitzung Var ist wahr, aber ich werde immer Null. Warum ist der Sitzungs-Variablenwert in der Abfrage in Ablauf B ungültig?Mule Sitzung vars null in Abfrage

<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/> 
<flow name="poll-session-varFlow"> 
    <http:listener config-ref="HTTP_Listener_Configuration" path="/sessionvar" doc:name="HTTP"/> 
    <logger message="In flow A..." level="INFO" doc:name="Logger"/> 
    <set-session-variable variableName="sVar" value="#[true]" doc:name="Session Variable"/> 
</flow> 
<flow name="poll-session-varFlow1"> 
    <poll doc:name="Poll"> 
     <logger message="Polling..." level="INFO" doc:name="Logger"/> 
    </poll> 
    <logger message="value of sVar : #[sessionVars.sVar]" level="INFO" doc:name="Logger"/> 
</flow> 

Antwort

1

Vom Mule Variable Scope doc:

Session-Variablen mit einer Session-Variable Transformator bestehen für die gesamte Nachricht Lebenszyklus, unabhängig von Transportbarrieren gesetzt.

Es sei denn, Sie sind irgendwie Polling erzeugte Nachrichten von Flow A im Flow B, können Sie keine Session-Variablen von Flow A. Ihre Session Var Zugang ist wahrscheinlich null, weil der Fluss B Poll eine neue Nachricht mit einem eigenen Satz von Session erzeugt Vars.

0

Können Sie mitteilen, wie Sie Ihre Variable einstellen? So verwende ich eine Variable und referenziere dann einen Flow, der sie benutzt. Diese

<set-variable variableName="ImportMonth" value="#[payload]" doc:name="Set Month"/> 
<flow-ref name="another-flow" doc:name="another-flow"/> 

ist, wie ich die Validierung, dass es etwas in diesen Variablen in einem "anderen-flow"

<logger message="#[flowVars['ImportMonth']]" level="INFO" doc:name="Logger"/> 

I hoffe, das hilft.