会话变量在通过Mule ESB中的VM端点时被清除(使用AMQP)
我使用非常简单的流程,从第一个流程开始,我从AMQP(确认模式:会话变量在通过Mule ESB中的VM端点时被清除(使用AMQP),mule,mule-studio,mule-el,mule-component,Mule,Mule Studio,Mule El,Mule Component,我使用非常简单的流程,从第一个流程开始,我从AMQP(确认模式:手动)获取消息,并通过VM将其传递给第二个流程,在第二个流程中,我使用AMQP确认处理器确认每条消息 当我们使用VM时,deliver标记和channel标记都会被删除(这对于AMQP确认消息处理器是必需的,如本url中所述)。因此,我试图在会话变量中保存deliver标记和amqp.channel 我第一次想知道,存储在会话变量中的通道值在通过VM时被擦除,但可以看到交付标签 观察: 而不是VM,如果我们使用flow ref。它很
手动
)获取消息,并通过VM将其传递给第二个流程,在第二个流程中,我使用AMQP确认处理器确认每条消息
当我们使用VM时,deliver标记和channel标记都会被删除(这对于AMQP确认消息处理器是必需的,如本url中所述)。因此,我试图在会话变量中保存deliver标记和amqp.channel
我第一次想知道,存储在会话变量中的通道值在通过VM时被擦除,但可以看到交付标签
观察:
VM
,如果我们使用flow ref
。它很好用。但在我的情况下,我只需要使用虚拟机类型
(java.lang.long)
amqp.channeltype
(com.rabbitmq.client.impl.ChannelN)
如果amqp.channel的“类型”导致问题。如果是,如何将此变量保存在会话中。请建议。请找到我的配置xml
<flow name="testrabbitmqFlow1" doc:name="testrabbitmqFlow1" >
<amqp:inbound-endpoint queueName="amqp.test.queue" exchangeDurable="true" queueDurable="true" responseTimeout="1000000" connector-ref="AMQP_Test" doc:name="AMQP">
<amqp:transaction recoverStrategy="REQUEUE" action="ALWAYS_BEGIN"/>
</amqp:inbound-endpoint>
<byte-array-to-string-transformer doc:name="Byte Array to String"/>
<set-session-variable variableName="storedeliveryTag" value="#[flowVars['amqp.delivery-tag']]" doc:name="Session Variable"/>
<set-session-variable variableName="storeChannel" value="#[flowVars['amqp.channel']]" doc:name="Session Variable"/>
<vm:outbound-endpoint exchange-pattern="one-way" path="/test" doc:name="VM">
<vm:transaction action="NONE"/>
</vm:outbound-endpoint>
有人知道如何解决这个问题吗<vm:outbound-endpoint exchange-pattern="one-way" ...