VM队列的数量不基于请求的数量或仅基于vm队列的名称

时间:2014-03-13 00:45:42

标签: queue virtual-machine mule

我有一个流程,它是异步重定向到3个不同的流程。我在初始流程中设置了一些会话变量,我希望在这3个不同的流程中进一步使用它们,并使用相同的名称。为了避免覆盖值,我已经为3个流中的每个流(单向)使用了vm tranport。我没有得到任何其他选项,而不是使用vm队列传输我的要求,因为它也是异步的。

现在我有疑问,如果我有超过1个请求即将创建多个vm队列,如果假设有3个单独的请求进入初始流,将mule创建9个vm队列或最多只有3个vm队列将是创建。请有人请澄清一下。还有如何以及何时在mule中创建和销毁vm队列。它需要多少JVM内存,我可以在vm队列的内存中控制这种创建,破坏和大小。

还可以采用其他方法,在两个流之间传递而不是使用传输时更改骡子消息吗?

我仍然对这个问题没有任何答案。如果我没有定义VM队列大小,那么当从vm队列中读取消息时它是否会减小其大小?

1 个答案:

答案 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']]进行检索。

当我们没有定义最大尺寸时,尺寸增量或减量如何。