管理の手引き


プロセス・モデル

ローカルおよびリモート・アプリケーション・プロセスは、 同一のデータベースを処理できます。 リモート・アプリケーションとは、 データベース・マシンから離れているマシンからデータベース・アクションを開始するアプリケーションのことです。 ローカル・アプリケーションは、 サーバー・マシンでデータベースに直接接続されています。

以下の図にある円は、エンジン・ディスパッチャブル・ユニット (EDU) を示します。 これらは、UNIX プラットフォームでは "プロセス"、 Windows NT および OS/2 プラットフォームでは "スレッド" と呼ばれます。

図 73. プロセス・モデルの概要


PMSP0000

アプリケーションとデータベース・マネージャーとの間の通信の手段は、 アプリケーションがデータベースで実行しようとしている作業が完了する前に確立しておかなければなりません。

上図の A1 では、 ローカル・クライアントは、最初に db2ipccm エンジン・ディスパッチャブル・ユニット (EDU) を処理して、 通信を確立します。 A2 で、この EDU は db2agent EDU を処理します。 これは、ローカル・クライアントからのアプリケーション要求の調整エージェントになります。 調整エージェントは、A3 でクライアント・アプリケーションに接触して、 A4 でクライアント・アプリケーションとデータベースとの間の共用メモリーおよびセマフォー通信を確立します。 こうして、ローカル・クライアントのアプリケーションは、データベースに接続されます。

上図の B1 では、 リモート・クライアントは、最初に db2tcpcm EDU を処理して、 通信を確立します。 他の通信プロトコルが選択された場合には、 適切な EDU が使用されます。 B2 では、db2tcpcm EDU が論理エージェントを処理します。 A3 で、この EDU は db2agent EDU を処理します。 これは、リモート・クライアントからのアプリケーション要求の調整エージェントになります。 調整エージェントは、B4 でクライアント・アプリケーションに接触して、 B5 でクライアント・アプリケーションとデータベースとの間の TCP/IP 通信を確立します。 こうして、リモート・クライアントのアプリケーションは、データベースに接続されます。

この図で他に注意することは以下のとおりです。

図 74. プロセス・モデル 2


PMSP0002

この図は、 サーバー・マシン環境の一部である追加のエンジン・ディスパッチャブル・ユニット (EDU) を示します。 活動状態のデータベースには、それぞれ プリフェッチャー (db2pfchr) とページ・クリーナー (db2pclnr) の共用プール、 そして独自のロガー (db2loggr) およびデッドロック検出機能 (db2dlock) があります。

図の右下にある "db2udfp" および "db2dari" の円は、 それぞれ、分離ユーザー定義関数 (UDF) およびストアード・プロシージャーとして DB2 ユニバーサル・データベース内で実行されるプロセスを表します。 これらのプロセスは、 作成および破棄に関連したコストを最小限に押さえるために管理されます。 keepdari データベース構成パラメーターの省略時値は "YES" であり、 ストアード・プロシージャー・プロセスを、次のストアード・プロシージャー呼び出しで再使用できます。
注:さらに、 エージェントのアドレス・スペースで直接実行する非分離 UDF およびストアード・プロシージャーもあります。 このように処理すると、パフォーマンスが改善されます。 ただし、エージェントのアドレス・スペースへのアクセスに制限がないため、 使用前には厳しくテストする必要があります。

詳しくは、アプリケーション開発の手引き のストアード・プロシージャーの章を参照してください。

複数区画処理モデルは、 単一の区画処理モデルの論理拡張です。 実際、いずれのモードの操作も、 共通のコード・ベースでサポートされています。 以下の図では、 上記の 2 つの図に示されたような単一区画処理モデルと、 複数区画処理モデルとの類似点や相違点を示します。

図 75. プロセス・モデルと複数区画


PMMP0000

エンジン・ディスパッチャブル・ユニット (EDU) の大半は、 単一区画処理モデルと、複数区画処理モデルで同じです。

複数区画 (またはノード) 環境では、区画の 1 つがカタログ・ノードとみなされます。 カタログには、 データベース内のオブジェクトに関する情報すべてが保持されています。

上の図で示すとおり、アプリケーション A は Node0000 で PROD データベースを作成するため、 PROD データベースのカタログがこのノードに作成されます。 同様に、アプリケーション B が Node0001 に TEST データベースを作成するため、 TEST データベースのカタログがこのノードに作成されます。 ご使用のシステム環境のノード間で各データベースのカタログに関連するアクティビティーの均衡を保つために、 異なる複数ノード上にデータベースを作成することもできます。

ここには、インスタンスに関連付けられる追加の EDU (db2pdbc および db2fcmd) があり、 これらは、複数区分データベース環境の各ノードに見つかります。 これらの EDU は、データベース区画間の要求を調整し、 高速コミュニケーション・マネージャー (FCM) を使用可能にするのに必要です。

さらに、データベースのカタログ・ノードに関連した追加の EDU (db2glock) があります。 この EDU は、活動状態のデータベースがあるノード間のデッドロック状況を制御します。

アプリケーションからの各 CONNECT は、データベースの論理エージェントによって示され、 結果として単一調整エージェントになります。 調整エージェントは、アプリケーションの接続先の区画に存在します。 この区画は、アプリケーションの "調整プログラム・ノード" になります。 調整プログラム・ノードは、 SET CLIENT CONNECT_NODE コマンドを使用することによっても設定できます。 アプリケーションからのデータベース要求のパーツは、 調整プログラム・ノードにより他の区画のサブエージェントに分割されます。次いで、 他の区画からの結果すべてが調整プログラム・ノードで統合されてから、アプリケーションに戻されます。

CREATE DATABASE コマンドが出されたデータベース区画は、 データベースの "カタログ・ノード" と呼ばれます。 カタログ表は、このデータベース区画に保管されます。 通常、すべてのユーザー表は一連のノード間で区画化されます。
注: 複数の区画を、同じマシンで稼働するように構成できます。 これは、"複数論理区画"、あるいは"複数論理ノード"構成と呼ばれます。 このような構成は、 巨大なメイン・メモリーのある大きい対称マルチプロセッサー (SMP) マシンで大変役立ちます。 この環境では、区画間の通信は、共用メモリーおよびセマフォーを使用するように最適化されます。


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