ご案内: 新しいデベロッパー プレビュー プログラムがまもなくリリースされます。こちらからお申し込みのうえ、新しいツールを試してフィードバックをいち早くご利用ください。

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

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

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

タイミングのない呼び出しトランザクション

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

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

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

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

  • リクエストの呼び出し: クラスタ コマンドへのパスのリストと、コマンドの省略可能な引数(コマンド フィールド)。
  • Timed Request: このアクションが Timed Invoke トランザクションの一部かどうかを示すフラグ。
  • Suppress Response: 呼び出しレスポンス アクションを抑制する必要があるかどうかを示すフラグ。
  • インタラクション ID: 呼び出しリクエスト アクションと呼び出しレスポンス アクションとの照合に使用する整数。

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

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

ターゲットが呼び出しリクエスト アクションを受け取ると、以下を含む呼び出しレスポンス アクションでトランザクションを確定します。

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

タイミングのない呼び出しの制限

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

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

タイミングが指定された呼び出しトランザクション

Timed Write トランザクションと同様に、Timed Invoke トランザクションも時間制限付きリクエスト アクションから始まります。

Timed Invoke トランザクションのオペレーションの順序
図 2: Timed Invoke トランザクション

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

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

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

  • Timeout: このトランザクションが開いたままになっている時間(ミリ秒)。この間、イニシエータから送信された次のアクションは有効とみなされます。

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

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

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

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

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

Timed Invoke の制限

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

呼び出しリクエスト アクションでは、グループとパスでワイルドカードを使用できますが、ワイルドカード アクションではワイルドカードを使用できません。