VM Connector リファレンス - Mule 4

VM Connector v2.0

仮想マシン (VM) 用 Anypoint Connector (VM Connector) は、一時的または永続的な非同期キューを介してアプリケーション内およびアプリケーション間で通信を行います。一時的なキューのほうが高速ですが、システムがクラッシュした場合は永続的なキューよりも信頼性が劣ります。それに対して、永続的なキューは速度は劣りますが、信頼できます。

単一インスタンスで実行すると、永続的なキューは内容をシリアル化してディスクに保存します。クラスターモードで実行すると、永続的なキューは代わりにメモリグリッドによってバッキングされます。つまり、Mule フローが VM Connector を使用して内容をキューにパブリッシュする場合、そのメッセージを同じ発生元ノードで処理するのか、別のノードが取得して処理するようにクラスターに送信するのかは、Mule Runtime Engine (Mule) によって判断されます。これは、クラスター全体で負荷を分散する簡単な方法であり、トランザクションが常にサポートされることが保証されます。

各設定では独自のキューセットを定義し、それぞれのキューセットは、設定を参照するコンポーネントにのみ表示されます。

リリースノート: VM Connector リリースノート

設定


デフォルト設定

デフォルト設定用のパラメーターは次のとおりです。

パラメーター

名前 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定できる接続種別。

x

Queues

Queue (キュー)​ の配列

この設定が所有するキュー。

x

接続種別

Connection (接続)

VMConnection のインスタンスを返します。

パラメーター
名前 説明 デフォルト値 必須

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイが失敗します。

関連操作

関連付けられたソース

操作

Consume

<vm:consume>

この操作は、キューからメッセージを取得します。メッセージがすぐに取得されない場合、Consume 操作は設定された ​queueTimeout​ 値まで待機し、それを過ぎると ​VM:QUEUE_TIMEOUT​ エラーがスローされます。

内容をコンシュームするフローにリスナー (​<vm:listener>​) ソースを含めることはできません。

パラメーター

名前 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Transactional Action (トランザクションアクション)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​: 現在の操作は、現在のトランザクションに結合されます。トランザクションが存在しないか、操作との互換性がない場合、実行は失敗します。

  • JOIN_IF_POSSIBLE​: 現在の操作は、使用可能なトランザクションに結合されます。結合するトランザクションがない場合、現在の操作は既存のトランザクション外で実行されます。

  • NOT_SUPPORTED​: 現在の操作は、既存のトランザクション外で実行されます。

トランザクションに関する操作で実行できる結合アクションの種別。

​JOIN_IF_POSSIBLE

Queue Name (キュー名)

String (文字列)

キューの名前。

x

Timeout (タイムアウト)

Number (数値)

タイムアウトエラーで失敗するまでに、キューが (パブリッシュまたはコンシュームのいずれかの) 操作の完了を待機する時間。デフォルト値は 5 秒です。

5

Timeout Unit (タイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#timeoutUnit に使用できる時間単位

SECONDS (秒)

Target Variable (対象変数)

String (文字列)

操作の出力が配置される変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果は対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

出力

Any (いずれか)

Attributes Type (属性型)

次の設定の場合

スロー

  • VM:EMPTY_QUEUE​

  • VM:RETRY_EXHAUSTED​

  • VM:CONNECTIVITY

Publish

<vm:publish>

この操作は、指定された内容を指定されたキュー名のキューにパブリッシュします。

パラメーター

名前 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Content (内容)

Any (いずれか)

パブリッシュされる内容。

#[payload]

Transactional Action (トランザクションアクション)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​: 現在の操作は、現在のトランザクションに結合されます。トランザクションが存在しないか、操作との互換性がない場合、実行は失敗します。

  • JOIN_IF_POSSIBLE​: 現在の操作は、使用可能なトランザクションに結合されます。結合するトランザクションがない場合、現在の操作は既存のトランザクション外で実行されます。

  • NOT_SUPPORTED​: 現在の操作は、既存のトランザクション外で実行されます。

トランザクションに関する操作で実行できる結合アクションの種別。

​JOIN_IF_POSSIBLE

Queue Name (キュー名)

String (文字列)

キューの名前。

x

Timeout (タイムアウト)

Number (数値)

タイムアウトエラーで失敗するまでに、キューが (パブリッシュまたはコンシュームのいずれかの) 操作の完了を待機する時間。デフォルト値は 5 秒です。

5

Timeout Unit (タイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#timeoutUnit に使用できる時間単位。

SECONDS (秒)

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

次の設定の場合

スロー

  • VM:RETRY_EXHAUSTED​

  • VM:QUEUE_TIMEOUT​

  • VM:CONNECTIVITY

Publish Consume

<vm:publish-consume>

この操作は、指定された内容をキューにパブリッシュした後、この操作で自動作成される一時的な応答先キューに応答が提供されるのを ​queueTimeout​で設定された時間まで待機します。

一時的な応答キューは、応答が受信されるか、タイムアウトの期限が切れた後に自動的に破棄されます。

内容をパブリッシュするフローに Listener (​<vm:listener>​) ソースを含めることはできません。

パラメーター

名前 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Content (内容)

Any (いずれか)

パブリッシュされる内容。

#[payload]

Transactional Action (トランザクションアクション)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​: 現在の操作は、現在のトランザクションに結合されます。トランザクションが存在しないか、操作との互換性がない場合、実行は失敗します。

  • JOIN_IF_POSSIBLE​: 現在の操作は、使用可能なトランザクションに結合されます。結合するトランザクションがない場合、現在の操作は既存のトランザクション外で実行されます。

  • NOT_SUPPORTED​: 現在の操作は、既存のトランザクション外で実行されます。

トランザクションに関する操作で実行できる結合アクションの種別。

​JOIN_IF_POSSIBLE

Queue Name (キュー名)

String (文字列)

キューの名前。

x

Timeout (タイムアウト)

Number (数値)

タイムアウトエラーで失敗するまでに、キューが (パブリッシュまたはコンシュームのいずれかの) 操作の完了を待機する時間。デフォルト値は 5 秒です。

5

Timeout Unit (タイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#timeoutUnit に使用できる時間単位

SECONDS (秒)

Target Variable (対象変数)

String (文字列)

操作の出力が配置される変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価する式。その式の結果は対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

出力

Any (いずれか)

Attributes Type (属性型)

次の設定の場合

スロー

  • VM:RETRY_EXHAUSTED​

  • VM:QUEUE_TIMEOUT​

  • VM:CONNECTIVITY

ソース

リスナー

<vm:listener>

VM キューを作成してリスンするソース。VM キューは、Listener を VM キューに配置することで作成されます。そのため、この Listener にはキューの動作 (永続的か否か、最大容量など) のパラメーターが含まれます。

パラメーター

名前 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Number Of Consumers (コンシューマーの数)

Number (数値)

キューに配置される同時コンシューマーの数。コンシューマーの数が増えると、このソースが所有フローにメッセージをプッシュする速度も上がります。デフォルトの同時コンシューマー数は 4 個です。

4

Transactional Action (トランザクションアクション)

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_BEGIN​

  • None (なし)

ソースがトランザクションに関して実行できる開始アクションの種別。

None (なし)

Transaction Type (トランザクション種別)

Enumeration (列挙)。次のいずれかになります。

  • LOCAL

  • XA

作成するトランザクションの種別。使用できるかどうかは、Mule バージョンによって決まります。

LOCAL

Redelivery Policy (再配信ポリシー)

メッセージの再配信を処理するためのポリシー。

Queue Name (キュー名)

String (文字列)

キューの名前。

x

Timeout (タイムアウト)

Number (数値)

タイムアウトエラーで失敗するまでに、キューが (パブリッシュまたはコンシュームのいずれかの) 操作の完了を待機する時間。デフォルト値は 5 秒です。

5

Timeout Unit (タイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#timeoutUnit に使用できる時間単位

SECONDS

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

Content (内容)

Any (いずれか)

#[payload]

出力

Any (いずれか)

Attributes Type (属性型)

次の設定の場合

Reconnection (再接続)

項目 説明 デフォルト値 必須

Fails Deployment (デプロイに失敗)

Boolean (ブール)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイが失敗します。

Reconnection Strategy (再接続戦略)

使用する再接続戦略。

Reconnect (再接続)

項目 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Count (数)

Number (数値)

再接続の試行回数。

blocking (ブロック)

Boolean (ブール)

false​ の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

Reconnect Forever (繰り返し再接続)

項目 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

blocking (ブロック)

Boolean (ブール)

false​ の場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

Queue (キュー)

項目 説明 デフォルト値 必須

Queue Name (キュー名)

String (文字列)

キューの名前。

x

Queue Type (キューの種類)

Enumeration (列挙)。次のいずれかになります。

  • TRANSIENT

  • PERSISTENT

このストアが永続的か、一時的かを指定します。

TRANSIENT

Max Outstanding Messages (最大送信メッセージ数)

Number (数値)

ブロックが開始されるまでにキューに登録できるメッセージ数を指定します。値が ​0​ の場合は、ブロックは直ちに開始されます。

0

VM Message Attributes (VM メッセージ属性)

項目 説明 デフォルト値 必須

Queue Name (キュー名)

String (文字列)

内容の取得元のキューの名前。

Timestamp (タイムスタンプ)

DateTime

内容が取得された時刻。

Redelivery Policy (再配信ポリシー)

項目 説明 デフォルト値 必須

Max Redelivery Count (最大再配信数)

Number (数値)

正常に処理されずにプロセス失敗メッセージがトリガーされるまでにメッセージを再配信できる最大回数。

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

再配信されたメッセージの識別にセキュアハッシュアルゴリズムを使用するかどうか。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

使用するセキュアハッシュアルゴリズム。設定しない場合、デフォルトの SHA-256 になります。

Id Expression (ID 式)

String (文字列)

メッセージがいつ再配信されたのかを判断するために使用する 1 つ以上の式を定義します。このプロパティは、useSecureHash が ​false​ の場合にのみ設定できます。

Object Store (オブジェクトストア)

ObjectStore

各メッセージの再配信カウンターが保存されるオブジェクトストア。