0

Mule ESB vm インバウンドエンドポイントキューのメッセージ数をコードから取得する方法は?

構成は次のとおりです。

    <vm:connector name="queue.vm.connector">
    <vm:queue-profile maxOutstandingMessages="${oms.process.flow.max.queue.size}"/>
</vm:connector>

...
<flow name="Flow1"...
<vm:inbound-endpoint exchange-pattern="one-way" path="inbound_parcel.create.queue" responseTimeout="10000" mimeType="text/plain" connector-ref="queue.vm.connector" doc:name="Inbound Parcel Create Queue"/>

ありがとうございました。

4

1 に答える 1

1

これは、次のカスタム コードを使用して実現できます。

VMConnector vmConnector = (VMConnector) muleContext.getRegistry().lookupConnector("queue.vm.connector");
vmConnector.getQueueManager().getQueueSession().getQueue("inbound_parcel.create.queue").size();

キューが永続的である場合、メッセージが保存されているフォルダーを監視することで同じ結果を得ることができます。

${MULE_HOME}/.mule/${app.name}/queuestore/inbound_parcel.create.queue

于 2012-10-08T11:27:26.387 に答える