トランザクションWebサービスの操作

ここでは、トランザクションWebサービスで使用できる操作をリストします。

トランザクションWebサービスへのリクエストは、Request要素から構成されます。

操作は次のとおりです。
操作 説明
startOuterTransaction 外部トランザクションを開始する操作。オプションで、OuterTransactionId要素でトランザクションIDを指定できます。

この操作に成功すると、外部トランザクションが開始し、トランザクションIDが返され、Dgraphプロセスがトランザクション・モードになります。

この操作が成功しない場合は、Dgraphプロセスは外部トランザクションを開始せず、トランザクションIDを返しません。

外部トランザクションが進行中の場合は、次のアクションが実行されます。
  • トランザクションIDを参照するすべての問合せがトランザクション内で処理されます。トランザクションIDを参照しない更新問合せは、外部トランザクションがコミット(またはロールバック)されるまで待機し、索引の発行済トランザクション・バージョンに基づいて計算されます。
  • トランザクションIDを参照しない読取り専用問合せは拒否されず、索引の発行済バージョンに対して処理されます。

外部トランザクション内で適用された更新は、別のcommitOuterTransaction操作が正常に戻るまで、索引の発行済バージョンになりません。

listOuterTransaction 実行中の外部トランザクションのIDをリクエストする操作。外部トランザクションが進行中の場合、この操作はそのIDを返します。
rollBackOuterTransaction OuterTransactionIdToRollBack要素で指定されたIDの外部トランザクションをロールバックする操作。
commitOuterTransaction 外部トランザクションを終了する操作。

指定されたIDを持つ外部トランザクションが進行中の場合、操作に成功すると、Dgraphプロセスはトランザクションをコミットし、トランザクション・モードを終了します。Dgraphプロセスは、修飾されていない問合せの受入れを再開します。すべてのノードに伝播される索引のバージョンが最後の発行済バージョンになります。

操作に成功しない場合、外部トランザクションはコミットされません。Dgraphプロセスは、トランザクションIDを参照した更新を適用しません。すべての問合せは、索引のトランザクション前のバージョンを引き続き使用します。

注意: 外部トランザクションのコミットに失敗した場合、そのトランザクションはオープンのままになり、失敗したトランザクションをコミットまたはロールバックするまで別の外部トランザクションを開始できません。Dgraphプロセスを停止せずに、トランザクションを手動でコミットし、トランザクションのIDを指定したrollBackOuterTransaction操作を使用して変更をロールバックできます。別の可能なシナリオで、Dgraphの失敗が原因で外部トランザクションがコミットできない場合、そのトランザクションは適用されないため、手動でロールバックする必要はありません。