トランザクションを呼び出す

Invoke Transactions は、ターゲット ノードで 1 つ以上のクラスタ コマンドを呼び出すために使用されます。これは、クラスタで定義されたコマンドに対して行われるリモート プロシージャ コールに似ています。

書き込みトランザクションと同様に、呼び出しトランザクションは時間指定トランザクションと時間指定なしトランザクションをサポートしています。Timed Transaction の詳細については、時間指定アクションと時間指定なしアクションのセクションをご覧ください。

Untimed Invoke Transaction

Untimed Invoke Transaction のオペレーションのシーケンス
図 1: 時間指定なしの Invoke Transaction

Invoke Request アクション

方向: イニシエータ -> ターゲット

Read Request Action や Write Request Action と同様に、この Action では Initiator が Target に次の情報を提供します。

  • Invoke Requests: クラスタ コマンドのパスのリストと、コマンドの省略可能な引数(コマンド フィールド)です。
  • Timed Request: このアクションが Timed Invoke Transaction の一部であるかどうかを示すフラグ。
  • レスポンスを抑制: Invoke Response アクションを抑制するかどうかを示すフラグ。
  • インタラクション ID: Invoke Request Action を Invoke Response Action に照合するために使用される整数。

Invoke Response Action

方向: ターゲット -> イニシエータ

ターゲットは、呼び出しリクエスト アクションを受信すると、次の情報を伝達する呼び出しレスポンス アクションでトランザクションを完了します。

  • 呼び出しレスポンス: 送信されたすべての呼び出しリクエストのコマンド レスポンスまたはステータスのリスト。
  • Interaction ID: Invoke Response Action を Invoke Request Action に照合するために使用される整数。

時間制限のない呼び出しの制限

Invoke Request Action はグループキャストの場合もありますが、この場合は Suppress Response フラグを設定する必要があります。そうしないと、グループのすべてのメンバーからの同時応答によってネットワークが過負荷になる可能性があるためです。

この動作を有効にするには、[Invoke Requests] リストで使用されるパスにグループを含めるか、ワイルドカードを含めることができます。ただし、ワイルドカードは [Endpoint] フィールドでのみ使用できます。また、Action が groupcast の場合、このトランザクションはレスポンスなしで終了します。

Timed Invoke Transactions

Timed Write Transactions と同様に、Timed Invoke Transactions も Timed Request Action で始まります。

Timed Invoke Transaction のオペレーションのシーケンス
図 2: 時間指定された呼び出しトランザクション

Timed Request Action

方向: イニシエータ -> ターゲット

イニシエータが、次の情報を含むアクションを送信してトランザクションを開始します。

  • タイムアウト: このトランザクションが開いたままになることができる時間(ミリ秒単位)。この期間中、イニシエータから送信された次のアクションは有効と見なされます。

Timed Request Action を受け取ると、Target は Status Response Action で Timed Request Action を確認する必要があります。イニシエータは、エラーがないことを報告するステータス レスポンス アクションを受信すると、呼び出しリクエスト アクションを送信します。

Invoke Request アクション

前述のリクエスト アクションの呼び出しと同じです。

Invoke Response Action

前述のレスポンス アクションの呼び出しと同じです。

時間指定の呼び出し制限

すべての呼び出しコマンドは、Timed Interaction で呼び出すことができます。Timed Request Action、Invoke Request Action、Invoke Response Action は Unicast 専用であるため、Timed Invoke Transactions でグループキャストとして使用することはできません。

Invoke Request アクションは、グループを含むパスとワイルドカードの使用をサポートしていますが、Invoke Response アクションはワイルドカードの使用をサポートしていません。