VMコネクタは、ESB Muleが管理を行っているコンポーネント間の通信で利用されます。コネクタを一時又は永続キューを使って通信を行うように設定することができます。
このプロバイダのJavadocはここにあります。
VMコネクタのプロパティ
| プロパティ |
説明 |
デフォルト |
必須 |
| queueEvents |
コネクタにリスナー用のキューを設定するか。falseの場合は、コネクタはイベントをESB Muleサーバを介してコンポーネントに送ります。この属性は必須ではありません。設定された場合は、MuleConfigurationに設定されたキュー設定情報を元にキューが設定されます。そこにキューを永続にするか、指定することができます。 |
false |
× |
VMキューの利用
同期VMエンドポイントを利用する場合は、イベントは一つのコンポーネントから他コンポーネントにメモリ上で転送されます(非同期エンドポイントの場合は、スレッドはイベント・キューからデータを読みます)。ただし、「queueEvents」プロパティが設定された場合は、イベントは任意のメモリ・キューに保管されて、後でクライアント又はコンポーネントがそこから読むことができます。なお、キューを永続及びXAトランザクション対応に指定することができます(下を参照)。
VMキューを使うには、コネクタの「queueEvents」プロパティを設定し、全てのイベントをキューするVMエンドポイントはqueueEventsが有効にしたVMコネクタを利用するようにします。「queueEvents」はエンドポイントに設定することはできません。コネクタに設定する必要があります。
例:
<connector name="vmQueue" className="org.mule.providers.vm.VMConnector">
<properties>
<property name="queueEvents" value="true"/>
</properties>
</connector>
<model name="TestModel">
<mule-descriptor name="TestComponent" implementation="org.mule.components.simple.PassThroughComponent">
<inbound-router>
<endpoint address="vm://test.queue" connector="vmQueue"/>
</inbound-router>
</mule-descriptor>
</model>
エンドポイントは明示的にESB Muleに vmQueue コネクタを使うように設定します。このように設定しないと、ESB Muleはエンドポイントのプロトコールに一致したコネクタを探します。
永続キューの利用
サーバ・シャットダウンを跨って、キューの状態を維持させることができます。VMキューを永続にするためには、ESB Mule XML設定に永続設定を行います。この設定はESB Muleインスタンスの全てのVMキューに共有します。
<mule-environment-properties>
<queue-profile persistent="true" maxOutstandingMessages="1000"/>
<persistence-strategy className="org.mule.util.queue.FilePersistenceStrategy"/>
</mule-environment-properties>
VMキュー設定に <queue-profile> 要素を追加して、イベントの永続性を指定する <persistence-strategy> 要素も追加します。 <persistence-strategy> が設定されていないと、ESB Muleはデフォルトのメモリ上の永続ストラティジーを使います。
必要であれば、開発者は独自でデータベースや他保存媒体を利用する永続ストラティジーを作成することもできます。その場合は、永続ストラティジーはQueuePersistenceStrategyを実装する必要があります。
トランザクション
VMキューはトランザクションをサポートし、分散XAトランザクションを行うことも可能です。VMキュー・エンドポイントをトランザクション対応にする場合は以下のように設定します:
<endpoint address="vm://test.queue" connector="vmQueue">
<transaction action="BEGIN_OR_JOIN" factory="org.mule.providers.vm.VMTransactionFactory"/>
</endpoint>
トランザクション管理を設定に追加する必要があります。詳細に付いては、トランザクション管理を参照にしてください。
エンドポイント
VMエンドポイントは「資源」エンドポイントです。ただ資源に名前を付けるだけです。ホストやその他の設定は不要です。
例:
「myComponent」を指定します。vm://myComponentを監視しているものは、vm://myComponentに発行されたイベントを受信します。
VMキューの文法も同じです。
トランスフォーマー
VMトランスポート用に特化したトランスフォーマーはありません。