ここでは、Webサービスの操作のロジックと、そのリクエストおよびレスポンスの構造について説明します。
startOuterTransaction操作でトランザクションのIDを指定できます。指定しない場合、Dgraphプロセスはレスポンスで一意の外部トランザクションIDを発行します。
外部トランザクションが進行中の間、外部トランザクションIDを参照する索引への更新リクエストは外部トランザクション内で処理されます。これらの更新は、データ・インジェストWebサービス、構成Webサービス、バルク・ロード・インタフェースなど、サーバーにリクエストを発行できる任意の使用可能なインタフェースを通じて行うことができます。IDを参照しないすべてのインタフェース(バルク・ロードを除く)からの更新リクエストは、外部トランザクションがコミット(またはロールバック)されるまで待機し、索引の発行済バージョンに基づいて計算されます(外部トランザクションの進行中は、IDを指定しないバルク・ロード・インタフェースからのリクエストは拒否されます)。
外部トランザクションのコミットに失敗すると、そのトランザクションはオープンのままになります。コミットに失敗した外部トランザクションをコミットまたはロールバックするまで、別の外部トランザクションを開始できません。コミットまたはロールバック操作を手動で発行して、データ・ドメインのDgraphプロセスを再起動せずに、失敗したトランザクションをリカバリできます。(この文には例外が1つあります。Dgraphの失敗が原因で外部トランザクションがコミットできない場合、そのトランザクションは適用されず、コミットやロールバックの必要はありません)。
変更のコミットとロールバックに失敗したトランザクションを手動で終了するには、この外部トランザクションのIDを指定して、rollBackOuterTransaction操作を発行できます。トランザクションをロールバックした場合、IDを指定せず、キューで待機していた更新リクエストは、トランザクションが正常にロールバックされた後で処理されます。
トランザクションをサポートするコネクタの詳細は、Oracle Endeca Information Discovery Integratorユーザーズ・ガイドを参照してください。
Webサービスへの入力は、使用される操作によって決まり、トランザクションの開始、コミット、ロールバック、または外部トランザクションIDのリストの操作を含めることができます。
startOuterTransaction操作では、トランザクションIDを指定できます。指定されていない場合、DgraphプロセスはIDを自動的に発行し、それをレスポンスで返します。また、listOuterTransaction操作を使用してデータ・ドメインで実行するDgraphからIDを取得できます。
トランザクションWebサービスへのレスポンスは、各操作が成功したかどうかを示します。
いずれかの操作が成功しない場合は、Webサービス・トランザクション全体がSOAPフォルトを返し、操作はどれも適用されません。