MarkLogicのXAトランザクション機能により、MarkLogicと別のデータベースシステム間で統一された1つのACIDトランザクションを実行できます。

MarkLogicのXAトランザクションでは、Open Groupによる「eXtendedアーキテクチャ」の基準に準拠することで、MarkLogicのACIDプロパティをトランザクショナルな更新のために保持し、前の状態に完全にロールバックできます。

XAトランザクションを備えた唯一のNoSQLデータベース

ACIDプロパティを保持

XAトランザクションでは、同じトランザクション内の複数のリソース(データベースやアプリケーションなど)にアクセスできるため、すべてのリソースにわたってACIDプロパティを保持できます。

トランザクションのライフサイクルを管理

MarkLogicでは、仕様で定められたXAトランザクションリソースマネージャを備えています(グローバルトランザクションマネージャが必要)。

XAトランザクションを備えた唯一のNoSQLデータベース

XAトランザクションが必要で、NoSQLデータベースを使用する場合は、MarkLogicが唯一の選択肢になります。

XAトランザクションが必要な理由

分散したDBMSを同期

MarkLogicのXAトランザクション機能により、MarkLogicと別のデータベースシステム間で統一された1つのACIDトランザクションを実行できます。例えば、エンティティに関するコアデータをMarkLogicに格納し、エンティティに関する一部のメタデータをRDBMSに保持する場合は、この機能により、両方のデータベースで該当のエンティティの両方側面を、1つの実行呼び出しの一部として挿入/更新/削除できます。いずれかのデータベースで更新の問題が発生した場合、トランザクションは全体としてコミットされません。

1つのDBMSからMarkLogicに移行(削除)

RDBMSからMarkLogicにデータを段階的に移行する場合は、XAトランザクションを使用します。XAトランザクションを使用することで、2つのデータベース間でも、RDBMSでの削除、MarkLogicへの挿入を1つのトランザクションの一部として実行できます。このシステムでは、JavaのJTAをデータベース間のコーディネータとして使用します。データベース間の複雑な調整をプログラマが意識する必要はありません。

個別のMarkLogicクラスタを同期

2つの個別のMarkLogicクラスタ間でXAトランザクションを実行することもできます。これは、クラスタ間でデータを透過的に移行する場合や、同時パブリッシング用にデータをクラスタのセットにロードする場合に便利です。この最新のシナリオは、オリンピックで実際に使用されました。国際オリンピック委員会のルールでは、競技スコアの更新に差異が発生することは認められていないため、競技スコアは、すべてのMarkLogicクラスタで同期して更新されました。

XAトランザクションの仕組み

XCC APIでは、MarkLogicをXAトランザクションリソースマネージャとしてサポートしています。MarkLogicがリソースマネージャとして機能すると、MarkLogicに送信されたリクエストは常にマルチステートメントの更新トランザクションの一部になります。

ドキュメントを読む

詳細はこちら
マルチステートメントトランザクション

詳細を見る

JavaレイヤーとMarkLogic間の通信

ガイドを読む

エンタープライズ向けに、豊富な機能と開発を支援

当ウェブサイトではクッキーを使用しています。

当Webサイトを継続利用することにより、お客様はMarkLogicのプライバシーステートメントに従ってクッキーの使用に同意するものとします。