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

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

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

タイムアウトなしの呼び出しトランザクション

Untimed Invoke Transaction のオペレーションのシーケンス
図 1: タイムアウトなしの呼び出しトランザクション

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

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

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

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

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

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

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

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

タイムアウトなしの呼び出しの制限

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

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

タイムアウトありの呼び出しトランザクション

タイムアウトありの書き込みトランザクションと同様に、タイムアウトありの呼び出しトランザクションもタイムアウトありのリクエスト アクションで開始されます。

Timed Invoke Transaction のオペレーションのシーケンス
図 2: タイムアウトありの呼び出しトランザクション

タイムアウトありのリクエスト アクション

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

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

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

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

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

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

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

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

タイムアウトありの呼び出しの制限

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

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