我有一个流程,它是异步重定向到3个不同的流程。我在初始流程中设置了一些会话变量,我希望在这3个不同的流程中进一步使用它们,并使用相同的名称。为了避免覆盖值,我已经为3个流中的每个流(单向)使用了vm tranport。我没有得到任何其他选项,而不是使用vm队列传输我的要求,因为它也是异步的。
现在我有疑问,如果我有超过1个请求即将创建多个vm队列,如果假设有3个单独的请求进入初始流,将mule创建9个vm队列或最多只有3个vm队列将是创建。请有人请澄清一下。还有如何以及何时在mule中创建和销毁vm队列。它需要多少JVM内存,我可以在vm队列的内存中控制这种创建,破坏和大小。
还可以采用其他方法,在两个流之间传递而不是使用传输时更改骡子消息吗?
我仍然对这个问题没有任何答案。如果我没有定义VM队列大小,那么当从vm队列中读取消息时它是否会减小其大小?
答案 0 :(得分:0)
每个VM队列名称对应一个队列,因此您将获得三个队列,每个队列接收三个消息。在Mule启动/停止时创建和销毁队列,但您也可以以编程方式管理它们,就像Mule上下文中的任何其他内容一样。
您可以通过多种方式更改Mule消息的属性,因此您可能不需要"清理"通过传输发送消息的属性。有关详细说明,请参阅此处:http://blogs.mulesoft.org/mule-school-the-mulemessage-property-scopes-and-variables/
更新:
要在Mule应用中查看当前的vm队列大小,请参阅此帖子:Number of Messages in Mule ESB VM inbound endpoint Queue
如果您只想在将某些属性发送到另一个流之前将其附加到特定消息,则可以使用<set-property propertyName="myprop" value="myval"/>
执行此操作,并在其他流程中使用#[message.outboundProperties['myprop']]
进行检索。
当我们没有定义最大尺寸时,尺寸增量或减量如何。