分散トランザクション
実際には、商用のデータベースシステムは並行性制御のために、厳密な二相ロック(SS2PL)を使用する。参加する全てのデータベースがこれを採用すれば、大域的な直列化可能性を保証することができる(コミット順序を参照)。
分散トランザクションの正しい完了を保証する一般的な方法は2相コミットプロトコルである。このアルゴリズムは通例数ミリ秒から数分単位の短い時間でコミットできる更新操作に適用される。
寿命の長い分散トランザクションも存在する。たとえば旅行を予約するトランザクションは航空券の予約、レンタカー、ホテルの予約などからなる。航空券の予約は確認が取れるまで数日かかることもあるため、資源を長期間ロックしてしまう二相コミットは適用できない。この場合より適切な方法は、複数のアンドゥレベルを持つことである。これにより、ホテルの予約をキャンセルし、システムは特定の操作をアンドゥできるよう設計することができる(不可逆な操作が完了の場合を除く)。
長寿命の分散トランザクションは、Webサービス上に実装されている。これらのトランザクションは補償トランザクションの原則を用いており、ロックを施さず楽観的に分離性が保たれているものとする。 X/Open の標準でも、超寿命の分散トランザクション処理は対象としていない。
Enterprise JavaBeans(EJB) やMicrosoft Transaction Server(TMS)といった多数の現代的なテクノロジーが分散トランザクションの業界標準をそれなりにサポートしている。