カンタン!DB2テクテク第1歩 拡張機能編

DB2コネクト 第2話

Comments

コンテンツシリーズ

このコンテンツは全#シリーズのパート#です: カンタン!DB2テクテク第1歩 拡張機能編

このシリーズの続きに乞うご期待。

このコンテンツはシリーズの一部分です:カンタン!DB2テクテク第1歩 拡張機能編

このシリーズの続きに乞うご期待。

はじめに

前回、遠隔地にあるリレーショナル・データベースをアクセスするために定義された分散リレーショナル・データベース体系(Distributed Relational Database Architecture:以下DRDAとします)とそのアプリケーション・リクエスターの機能を持つDB2コネクトをご紹介しました。

今回は、DB2とアプリケーションとの一般的な稼働形態からDRDAが出てきた背景を探ってみたいと思います。また、DB2コネクトを、ネットワーク負荷削減のために備えている機能を中心にご紹介します。OS/390およびz/OS、OS/400、VM、VSEの各OS(以下ホストとします)上で稼働するDB2としては、 OS/390およびz/OS上のDB2を例に説明します。

アプリケーション・インターフェース

WindowsやOS2、UNIX系のDB2を利用したアプリケーションの場合、一般的にアプリケーションとデータベース管理システムは 別マシンで稼働する形態をとります。この形態をサポートするために、DB2はデータベース・サーバーとネットワークを介して接続可能な ランタイム・クライアント・モジュールを提供しています。この間は業界標準のDRDAプロトコルではなく、独自のプライベート・プロトコルを使用してコミュニケーションを行っています。ランタイム・クライアント・モジュールは現在、DRDAプロトコルをサポートしていません。

他方、オンライン・アプリケーション、バッチ・アプリケーション等様々なワークロードを同一システム上で管理・運用することを得意とするホスト・システムでは、同一オペレーティング・システム上にアプリケーションとデータベース管理システムが共存する環境で十分にその機能を発揮してきました。そのため、ホストDB2が提供するアプリケーション・インターフェースは同一オペレーティング・システム上のアドレス・スペース(プロセスにあたります)間のインターフェースのみとなっています。つまり、つまり、ホスト上のDB2は、データベース・サーバーとネットワークを介したランタイム・クライアント・モジュールとの接続をサポートしていません。

それでは、別のオペレーティング・システム上のアプケーションからホスト上のDB2に接続したい場合にはどうすればよいのでしょうか?

このような要求に応えるために規定されたのが、分散リレーショナル・データベース体系です。ホスト上のDB2はDRDAにおけるアプリケーション・サーバーならびにリクエスターの機能を有するので、DRDAプロトコルを利用して遠隔地にあるアプリケーション・リクエスターならびにサーバーとコミュニケーションを図り、データ交換をすることができます。そして、ホスト以外のDB2では、DB2コネクトがアプリケーション・リクエスターの機能を提供します。

図4.アプリケーション・インターフェース
図4.アプリケーション・インターフェース
図4.アプリケーション・インターフェース

DB2コネクトの機能

DB2コネクトは、遠隔地のデータベースに対するアクセス機能を提供するだけではありません。クライアント・アプリケーションが、データベースのプラットフォームを含め物理的にどこに存在するかを意識せずに、透過的なデータアクセスを可能にする環境を提供します。

  • DB2コネクトとアプリケーション・サーバー間の通信プロトコル
    • SNA APPCとTCP/IPのサポート
  • DB2コネクトとクライアント間の通信プロトコル(3層の場合)
    • TCP/IP、NetBIOS、IPX/SPX、APPCのサポート
  • アプリーション・インターフェース
    • ODBC、ADO、OLE DB、JDBC、SQLJ、DB2 CLI、埋め込みSQL(動的SQLと静的SQL)
    • DRDAを通してDB2へアクセスするクライアント・アプリケーションのためのODBC、JDBCドライバー、OLE DBプロバイダーはDB2コネクトが提供します。
    • ローカル・データベースにアクセスする場合と同様にアプリケーションを開発することができます。

DB2コネクトはネットワークを介した遠隔地にあるデータベースにアクセスするので、そのオーバーヘッドを減らすための機能を提供しています。

  • ストアード・プロシージャーのサポート
    • サーバー側で実行するSQLやプログラム・ロジックをクライアント・アプリケーションから呼び出すことができます。
  • レコード・ブロッキング
    • データをまとめて受信することによりネットワーク負荷を軽減します。
    • ホストDB2がDB2 for OS/390 V6以上、DB2コネクトがV7.2FP5以上の場合には1回の転送で複数ブロックを受信することもできます。
  • コネクション・プーリング
    • クライアントからDB2コネクトへの接続が終了した後もDB2コネクトからホストへの接続をプールに保持しておくことができるので、接続に要する時間が短縮されます。
図5.DB2コネクトの機能−ネットワーク・オーバーヘッドの軽減−
図5.DB2コネクトの機能−ネットワーク・オーバーヘッドの軽減−
図5.DB2コネクトの機能−ネットワーク・オーバーヘッドの軽減−

複数サイトの同期更新を制御する2フェーズ・コミットをサポートしています。

ホストDB2のパラレル・シスプレックス環境に対応することができます。

  • ロード・バランシング機能
    • OS/390のワークロード・マネージャーから得た情報により、ワークロードが分散するよう接続先DB2を変更します。
  • フォルト・トレランス機能
    • 接続失敗時にデータ共用グループ内の他のDB2へ接続しなおすこともできます

また、DB2コネクトはWindowsやOS2、UNIX系DB2の便利なツール群を備えているので、それらをホストDB2に対して適用することができます。主なツールをご紹介します。

  • DB2コントロール・センター
  • スナップショット・モニターおよびイベント・モニター
  • ストアード・プロシージャー・ビルダー

最後にセキュリティについて簡単にご紹介します。DB2は認証(ユーザー名、パスワードによるユーザーの識別)と許可(認証されたユーザーには要求した操作権限があるか)の概念を使用して管理するデータやリソースを保護しています。許可はDB2の機能で実施しますが、認証はDB2以外の機密保護サービスを利用しています。

DB2コネクトを使用することにより、クライアントの認証をどこで行うかを簡単に指定することができます。図6はホストDB2にアクセスするために必要な定義です。認証についてもこの中で定義します。この例ではホストDB2側で認証を行うように指定しています(2.赤字部分)。この他にクライアント、DB2コネクトを置くゲートウェイ・サーバー、DCEサーバーで認証を行うように設定することができます。また、DB2コネクトでもパスワードの暗号化をサポートしています。

ホスト上のDB2にアクセスするための定義内容については次回ご紹介いたします。

図6.DB2コネクトの機能−認証−
図6.DB2コネクトの機能−認証−
図6.DB2コネクトの機能−認証−

ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Information Management
ArticleID=319906
ArticleTitle=カンタン!DB2テクテク第1歩 拡張機能編: DB2コネクト 第2話
publish-date=11302005