インストールおよび構成 補足

複数サイト更新 (2 フェーズ・コミット) の使用可能化

このセクションでは、 複数サイト更新機能の概要を、 ホスト・サーバーと AS/400 データベース・サーバーが関係するシナリオに当てはめて紹介しています。 また、複数の DB2 データベースを同一のトランザクションで更新する PC アプリケーション、 UNIX アプリケーション、および Web アプリケーションを実装するのに必要な製品と構成要素について説明します。

複数サイト更新 (分散作業単位 (DUOW) および 2 フェーズ・コミットともいう) は、 アプリケーションが、整合性を保証しながら、 複数のリモート・データベース・サーバー上のデータを更新する機能です。 たとえば、ある口座から、異なるデータベース・サーバー上にある別の口座に送金する銀行業務トランザクションはその一例です。

そのようなトランザクションでは、別の口座への貸方処理で必要な更新がコミットされるまで、 1 つの口座からの借方操作を行う更新をコミットしないことが非常に重要です。 複数サイト更新に関する考慮事項が当てはまるのは、 これらの口座を表すデータがそれぞれ別のデータベース・サーバーにより管理される場合です。

DB2 製品は、複数サイト更新を包括的にサポートしています。 このサポートは、通常の SQL を使って開発されたアプリケーションだけでなく、 X/Open XA インターフェース仕様を実装したトランザクション・モニター (TP モニター) 製品を使ったアプリケーションでも利用できます。 そのような TP モニター製品の例としては、IBM TxSeries (CICS および Encina)、 IBM Message and Queuing Series、IBM Component Broker Series、IBM San Francisco Project、 さらに Microsoft Transaction Server (MTS)、BEA Tuxedo、その他が挙げられます。 ネイティブ SQL の複数サイト更新を使うか、TP モニターの複数サイト更新を使うかで、 セットアップ要件は異なります。

ネイティブ SQL の複数サイト更新プログラムも TP モニターの複数サイト更新プログラムも、 CONNECT 2 SYNCPOINT TWOPHASE オプションを指定してプリコンパイルする必要があります。 どちらのプログラムでも、SQL Connect ステートメントを使って、 後続の SQL ステートメントでどのデータベースを使用するかを指定することができます。 トランザクションを調整することを DB2 に伝える (つまり、 データベース接続を確立するための xa_open を DB2 に送信する) TP モニターがない場合は、 DB2 ソフトウェアがトランザクションを調整するために使用されます。

TP モニターの複数サイト更新を使用する場合、アプリケーションは TP モニターの API (たとえば、 CICS SYNCPOINT、Encina Abort()、MTS SetAbort()) を使って、 コミットまたはロールバックを要求しなければなりません。

ネイティブ SQL の複数サイト更新を使用する場合は、 通常の SQL COMMIT および ROLLBACK を使用します。

TP モニターの複数サイト更新は、DB2 にアクセスするトランザクションと、 非 DB2 リソース・マネージャー (Oracle、Informix、SQLServer など) にアクセスするトランザクションの両方を調整できます。 ネイティブ SQL の複数サイト更新は DB2 サーバーだけに使用します。

複数サイト更新トランザクションを実行するには、分散トランザクションに関与する各データベースが、 分散作業単位をサポートしていなければなりません。 現在、分散トランザクションに参加するための DUOW サポートを提供している DB2 サーバーは以下のとおりです。

サポートされているデータベース・サーバーであれば、 どんな組み合わせでも 1 つの分散トランザクションで更新することができます。 たとえば、DB2 ユニバーサル・データベース (Windows NT または Windows 2000 版)、DB2 (OS/390 版) データベース、 および DB2 (AS/400 版) データベースにある複数の表を、1 つのトランザクションで更新することができます。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]