ここでは、外部トランザクションについて説明し、様々なタスクに対して個々の問合せを実行する場合とは対照的に、外部トランザクション内で問合せや更新を発行する場合に役立つ推奨事項を提供します。
通常は、特定のデータ・ドメインについて、Integratorまたは別のデータ・ロード・メカニズムを使用してデータや構成をEndeca Serverにロードします。データ・インジェストWebサービスやバルク・ロード・インタフェースにWebサービス・リクエストを行いデータをロードします。各Webサービス・リクエストは、データ・ドメインで独自の操作を表し、 単独で成功または失敗するため、それ自体がトランザクションになります。これらのトランザクションには他のトランザクションが含まれないため、内部トランザクションとも呼ばれます。
Endecaデータ・ドメインの一部の内部トランザクションが成功し、その他のトランザクションが失敗する場合、結果として作成されるデータ・ドメインは、部分的に更新されたデータセットのみを反映します(更新が一部成功しなかった場合など)。ただし、通常は、データ更新リクエストのセット全体から、Endeca Serverでホストされるデータ・ドメインへのデータ変更は1つの単位として完了または失敗するようにできるため、作成される索引ファイルのセットは、全体的に更新されたデータ・ドメインを表します。エンドユーザーがフロントエンド・アプリケーションの中間状態のデータにアクセスしないようにすることもできます。かわりに、更新前の状態(データ更新グラフは完了している)の索引ファイルにのみアクセスでき、完全に更新されたデータ・ドメインへの問合せにシームレスに移行できます。
更新が完全に成功または失敗するように保証するには、外部トランザクション内でリクエストを行います。
外部トランザクションは、1つの単位として表示される、データ・ドメインで実行される一連の操作です。外部トランザクションがコミットされる場合、このトランザクション時に行われたデータと構成の変更はすべて正常に完了し、データ・ドメインの索引にコミットされることを意味します。
外部トランザクションを実行するには、Integratorを使用するか、トランザクションWebサービスでリクエストを発行できます。このように、外部トランザクション内で内部トランザクションを実行できます。通常、外部トランザクション内での内部トランザクション(それぞれのトランザクションはDgraphへのリクエストを表す)の実行は、更新の実行に役立ちます。このような外部トランザクションが完了すると、レコードの更新がデータ・ドメインの索引に対して完全にコミットされることが保証されます。