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

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

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

時間指定なしの呼び出しトランザクション

Untimed Invoke Transaction のオペレーションのシーケンス
図 1: 時間指定なしの呼び出しトランザクション

呼び出しリクエスト アクション

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

読み取りリクエスト アクションと書き込みリクエスト アクションと同様に、このアクションでは、イニシエータがターゲットに次の情報を提供します。

  • 呼び出しリクエスト: クラスタ コマンドへのパスのリスト。コマンドの省略可能な引数(コマンド フィールド)も含まれます。
  • 時間指定リクエスト: このアクションが時間指定呼び出しトランザクションの一部であるかどうかを示すフラグ。
  • レスポンスの抑制: 呼び出しレスポンス アクションを抑制するかどうかを示すフラグ。
  • インタラクション ID: 呼び出しリクエスト アクションを 呼び出しレスポンス アクションに照合するために使用される整数。

呼び出しレスポンス アクション

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

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

  • 呼び出しレスポンス: 送信された呼び出し リクエストごとに、コマンド レスポンスまたはステータスのリスト。
  • インタラクション ID: 呼び出しレスポンス アクションを呼び出しリクエスト アクションに照合するために使用される整数。

時間指定なしの呼び出しの制限

呼び出しリクエスト アクションはグループキャストにできますが、この場合は レスポンスの抑制 フラグを設定する必要があります。そうしないと、グループのすべてのメンバーからの同時レスポンスによってネットワークがフラッディングする可能性があります。

この動作を有効にするには、呼び出しリクエスト リストで使用されるパスにグループを含めることができます。また、ワイルドカードを含めることもできますが、エンドポイント フィールドのみです。さらに、アクションがグループキャストの場合、このトランザクションはレスポンスなしで終了します。

時間指定呼び出しトランザクション

時間指定書き込みトランザクションと同様に、時間指定呼び出しトランザクションも時間指定リクエスト アクションで開始されます。

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

時間指定リクエスト アクション

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

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

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

時間指定リクエスト アクションを受信したら、ターゲットはステータス レスポンス アクションで時間指定リクエスト アクションを確認する必要があります。イニシエータがエラーなしを報告するステータス レスポンス アクションを受信すると、呼び出しリクエスト アクションが送信されます。

呼び出しリクエスト アクション

前に説明した呼び出しリクエスト アクションと同じです。

呼び出しレスポンス アクション

前に説明した呼び出しレスポンス アクションと同じです。

時間指定呼び出しの制限

時間指定インタラクションでは、すべての呼び出しコマンドを呼び出すことができます。時間指定リクエスト アクション、呼び出しリクエスト アクション、呼び出しレスポンス アクションは Unicast専用であるため、時間指定 呼び出しトランザクションでグループキャストとして使用することはできません。

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