使用者の手引き

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

複数サイト更新 (分散作業単位 (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 つのトランザクションで更新することができます。

SPM を必要とするホストおよび AS/400 複数サイト更新のシナリオ

ホストおよび AS/400 データベース・サーバーでは、PC、UNIX、 および Web アプリケーションから出された分散トランザクションに DB2 コネクトが関与する必要があります。 さらに、ホストおよび AS/400 データベース・サーバーが関係した多くの複数サイト更新シナリオでは、 同期点管理プログラム (SPM) 構成要素を構成する必要があります。 DB2 インスタンスが作成されるときに、DB2 SPM は自動的にデフォルト設定で構成されます。

SPM が必要かどうかは、使用するプロトコル (SNA または TCP/IP) および使用する TP モニターによって決まります。 以下の表では、SPM を使用する必要のあるシナリオがまとめられています。 さらに、この表は Intel または UNIX マシンからホストまたは AS/400 にアクセスする場合に、 DB2 コネクトが必要なことを示しています。 複数サイト更新ではまた、SNA を経由する場合や、 TP モニターを使用する場合に、DB2 コネクトの SPM 構成要素が必要です。

表 1. SPM を必要とするホストおよび AS/400 複数サイト更新のシナリオ
TP モニターを使用 プロトコル SPM が必要 必要な製品 (1 つ選択) サポートされているホストおよび AS/400 データベース
はい TCP/IP はい
  • DB2 コネクト エンタープライズ・エディション
  • DB2 ユニバーサル・データベース エンタープライズ・エディション
  • DB2 ユニバーサル・データベース エンタープライズ拡張エディション

  • DB2 (OS/390 版) V5.1
  • DB2 ユニバーサル・データベース (OS/390 版) V6.1 以降

はい SNA はい
  • DB2 コネクト エンタープライズ・エディション*
  • DB2 ユニバーサル・データベース エンタープライズ・エディション*
  • DB2 ユニバーサル・データベース エンタープライズ拡張エディション

注:*AIX、OS/2、Windows NT、および Windows 2000 プラットフォームのみ。

  • DB2 (MVS/ESA 版) V3.1 および 4.1
  • DB2 (OS/390 版) V5.1
  • DB2 ユニバーサル・データベース (OS/390 版) V6.1 以降
  • DB2 (AS/400 版) V3.1 以降 (ただし、以前の名称は DB2 AS/400 版)
  • DB2 Server (VSE および VM 版) V5.1 以降

いいえ TCP/IP いいえ
  • DB2 コネクト パーソナル・エディション
  • DB2 コネクト エンタープライズ・エディション
  • DB2 ユニバーサル・データベース エンタープライズ・エディション
  • DB2 ユニバーサル・データベース エンタープライズ拡張エディション

  • DB2 (OS/390 版) V5.1
  • DB2 ユニバーサル・データベース (OS/390 版) V6.1 以降

いいえ SNA はい
  • DB2 コネクト エンタープライズ・エディション*
  • DB2 ユニバーサル・データベース エンタープライズ・エディション*
  • DB2 ユニバーサル・データベース エンタープライズ拡張エディション

注:*AIX、OS/2、Windows NT、および Windows 2000 プラットフォームのみ。

  • DB2 (MVS/ESA 版) V3.1 および 4.1
  • DB2 (OS/390 版) V5.1
  • DB2 ユニバーサル・データベース (OS/390 版) V6.1 以降
  • DB2 (AS/400 版) V3.1 以降 (ただし、以前の名称は DB2 AS/400 版)
  • DB2 Server (VSE および VM 版) V5.1 以降

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

2 フェーズ・コミットに関する詳細、 および一般的ないくつかの TP モニターのセットアップ手順については、 管理の手引き を参照してください。

また、Web 上の DB2 Product and Service Technical Library にアクセスすることもできます。

  1. http://www.ibm.com/software/data/db2/library/ にアクセスします。
  2. 「DB2 Universal Database」リンクを選択します。
  3. 検索キーワード「DDCS」、「SPM」、「MTS」、「CICS」、「ENCINA」を使用して、 「Technotes」を検索します。

DRDA とデータ・アクセス

DRDA は、データベース通信プロトコルを定義しますが、アプリケーション・プログラマーが使用するプログラミング・インターフェース、つまり API は定義しません。 一般に、DRDA はアプリケーション・プログラムによって使用され、宛先 DRDA サーバーが実行できる要求を渡します。 現在使用可能なすべての DRDA サーバーは、 アプリケーション・プログラムによって DB2 コネクト経由で送られる SQL 要求を実行することができます。

IBM は、Windows、OS/2、およびいくつかの UNIX プラットフォーム用 の SQL 要求を生成するためのツールを、アプリケーション・プログラマーに提供します。 これらのツールは、DB2 アプリケーション開発クライアントです。 DB2 アプリケーション開発クライアントは複数の API タイプ (組み込み SQL、JDBC、SQLJ、DB2 コール・レベル・インターフェース (DB2 CLI) など) をサポートしています。 これらの API は、各種のプログラミング言語でアプリケーションを構築するプログラマーが使用します。 これらの API の詳細については、アプリケーション構築の手引き を参照してください。

アプリケーション開発者は、他社が提供する API を使用することもできます。 たとえば、Microsoft ODBC および ADO はデータベース・アプリケーションを開発するために Windows アプリケーション・プログラマーによって使用されています。 DB2 コネクトには、ODBC および ADO API を使って開発されたアプリケーションをサポートする、 ODBC ドライバーと OLE DB Provider が用意されています。 ODBC アプリケーション開発用のツールは、IBM ではなく、Microsoft Corporation が提供しています。

コントロール・センターによる複数サイト更新の使用可能化

コントロール・センターを使って複数サイト更新を行えます。 以下に示すように、その手順は簡単なものです。 複数サイト更新の構成手順 (システムを手操作で構成する方法も含む) について詳しくは、 オンラインのコネクティビティー 補足 を参照してください。

複数サイト更新ウィザードの開始

コントロール・センターで [+] 符号をクリックし、ツリー視点を展開します。 構成するインスタンスを右マウス・ボタンで選択します。 ポップアップ・メニューが開きます。 「複数サイト更新 (Multisite Update)」-->「構成 (Configure)」の順にメニュー項目を選択します。

ウィザードのステップ

このウィザードはノートブック形式のインターフェースになっています。 ウィザードの各ページでは、構成対象に関する特定の情報を入力するよう要求されます。 以下に、これらのページを表示される順に示します。

ステップ 1.

「トランザクション処理プログラム (TP) モニターの指定 (Specify a Transaction Processor (TP) monitor)」。

このフィールドには、使用可能にした TP モニターの省略時値が表示されます。 TP モニターを使用しないときは、 「TP モニターを使用しない (Do Not Use a TP Monitor)」を選択します。

ステップ 2.

「使用する通信プロトコルの指定 (Specify the communications protocols you will use)」。

ステップ 3.

「トランザクション・マネージャー・データベースの指定 (Specify a Transaction Manager database)」。

このパネルでは、(1ST_CONN) に接続する最初のデータベースが省略時指定されています。 この省略時値をそのままにしておくか、 カタログ化されている別のデータベースを選択することができます。

ステップ 4.

「更新に関係するデータベース・サーバーのタイプ、 および TCP/IP を排他的に使用するかどうかの指定 (Specify the types of database servers involved in the update, and also whether or not TCP/IP is to be used exclusively)」。

ステップ 5.

「同期点管理プログラムの設定値の指定 (Specify the Syncpoint Manager settings)」。

このページが表示されるのは、前のページの設定で、 複数サイト更新のシナリオで DB2 の同期点管理プログラムを使う必要があることが示されている場合だけです。

複数サイト更新機能のテスト

ステップ 1.

インスタンスを右マウス・ボタンで選択し、 ポップアップ・メニューから「複数サイト更新 (Multisite Update)」-->「テスト (Test)」の順にメニュー・オプションを選択します。 「複数サイト更新のテスト (Test Multisite Update)」ウィンドウが開きます。

ステップ 2.

「使用可能データベース (Available databases)」リスト・ボックスにある使用可能データベースから、 テストするデータベースを選択します。 選択したデータベースを「選択済みデータベース (Selected databases)」リスト・ボックスに入れたり出したりするには、2 つのリスト・ボックスの間にある矢印ボタンを使います。 また、選択したユーザー ID およびパスワードを変更したい場合は、 「選択済みデータベース (Selected databases)」リスト・ボックスで直接編集することが可能です。

ステップ 3.

選択が済んだら、ウィンドウの最下部にある「了解 (OK)」をクリックします。 「複数サイト更新のテスト結果 (Multisite Update Test Result)」ウィンドウがオープンします。

ステップ 4.

「複数サイト更新のテスト結果 (Multisite Update Test Result)」ウィンドウには、 選択したデータベースのうち、どれが更新のテストに成功し、また失敗したかが表示されます。 このウィンドウには、失敗したデータベースの SQL コードとエラー・メッセージも表示されます。


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