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

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

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

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

時間指定のない呼び出しトランザクションのオペレーションの順序
図 1: 時間指定のない呼び出しトランザクション

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

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

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

  • Invoke リクエスト: クラスタ コマンドへのパスのリストと、コマンドへのオプションの引数(コマンド フィールド)。
  • 時間指定リクエスト: このアクションが時間指定呼び出しトランザクションの一部であるかどうかを示すフラグ。
  • Suppress Response: Invoke Response Action を抑制するかどうかを示すフラグ。
  • インタラクション ID: Invoke Request Action を Invoke Response Action と照合するために使用される整数。

応答アクションを呼び出す

方向: ターゲット -> 開始元

ターゲットが Invoke Request Action を受信すると、次の情報を含む Invoke Response Action でトランザクションを確定します。

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

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

Invoke Request Action はグループキャストでもかまいません。この場合、Suppress Response フラグを設定する必要があります。これは、グループのすべてのメンバーからの同時レスポンスによってネットワークがフラッディングされる可能性があるためです。

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

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

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

時間指定呼び出しトランザクションのオペレーションの順序
図 2: 時間指定呼び出しトランザクション

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

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

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

  • タイムアウト: このトランザクションがオープン状態を維持できるミリ秒数。この期間中、イニシエータから送信された次のアクションは有効と見なされます。

時間指定リクエスト アクションを受信したら、ターゲットはステータス レスポンス アクションで時間指定リクエスト アクションを承認する必要があります。イニシエーターは、エラーがないことを報告するステータス レスポンス アクションを受信すると、Invoke Request Action を送信します。

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

前述のInvoke Request Action と同じです。

対応アクションを呼び出す

前述の Invoke Response Action と同じです。

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

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

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