第2章

DB2データベースの設定

この章では、SilverMasterまたは展開データベースとしてNovell exteNd Application Serverで使用するDB2データベースの設定方法について説明します。この章の節は次のとおりです。

For more information    サポートされているデータベースバージョンの最新情報については、Novell exteNd Application Serverのリリースノートを参照してください。

 
Top of page

DB2データベースへの接続

Novell exteNd Application Serverは、Universal Databaseクライアントに含まれている、IBMによって作成されたType 2 JDBCドライバを使ってDB2に接続します。このドライバは、UDBクライアントとのインタフェースによってバックエンドのDB2サーバとデータベース接続を確立します。アプリケーションサーバは、正式にTCP/IP接続をサポートしますが、ユーザはIBMのネイティブプロトコルであるAPPCを使って接続できます。

アプリケーションサーバでDB2データベースを使用できるようにするには、次の手順に従います。

手順1: DB2環境に関する情報を収集する

手順2: Universal Database ClientからDB2に接続できるよう準備する

手順3:データベースクライアントをインストールする

手順4: DB2クライアント接続を設定する

手順5: DB2CLI.INIファイルを変更する

手順6:環境変数を設定する

手順7:アプリケーションサーバでデータベースを使用する

サポートされているデータベースの使用法   DB2は、SilverMasterデータベースとして使用することができ、展開データベースに必要なアプリケーションサーバのシステムテーブルを保存することができます。ただし、DB2がAS/400またはSystem 390上で動作している場合、DB2をSilverMasterとして使用することはできません(つまり、システムテーブルを保存できません)。

SilverMasterと展開データベース   展開データベースは、SilverMasterデータベースと必要なテーブルの名前がまったく同じものがいくつかあるため、両データベースが同じ物理スペース内に存在することはできません。

 
Top of section

手順1: DB2環境に関する情報を収集する

DB2環境の次の情報を収集します。

注記:   DB2のバージョンがV4R2より前の場合、Universal Database Clientをサポートするには、さまざまな設定が必要なことがあります。

 
Top of section

手順2: Universal Database ClientからDB2に接続できるよう準備する

Universal Database Clientからの接続をサポートするため、IBMではデータベースとクライアントソフトウェアの設定に関する多数のマニュアルを提供しています。これらのマニュアルは、Universal Database ClientとともにインストールされるInformation CenterあるいはIBMのWebサイトから入手できます。

データベーススキーマが非常に大きい場合は、DB2CLI.INIファイルにおけるスキーマのスキャン時間の短縮に役立つ追加のデータベース設定がないかどうかを確認してください。また、次のIBMマニュアルを参照してください。

 
Top of section

手順3:データベースクライアントをインストールする

データベースクライアントは、アプリケーションサーバが常駐するシステム上にインストールする必要があります。

Universal Database Clientバージョン5.2 (Enterprise Edition)の使用

Windows NT   セットアッププログラムの指示に従います。Universal Database ClientとClient Application Enablers (CAE)を混同しないよう注意してください。CAEをインストールしても必要なコンポーネントがすべて揃うわけではありません。すべてのEnterprise Connect製品をインストールする必要があります。

Solaris   SolarisにDB2データベースのインストールを開始するには、インストールに合わせていくつかのカーネル設定を変更する必要があります。/etc/systemディレクトリで次のように設定します。

  set msgsys:msginfo_msgmax=65535 
  set msgsys:msginfo_msgmnb=65536 
  set msgsys:msginfo_msgseg=8192 
  set msgsys:msginfo_msgssz=16

CDからデータベースクライアントをインストールします。このインストールの際にDB2インスタンスをインストールおよび作成して、アプリケーションサーバがDB2 JDBCを正常に使用するためにDB2プロファイルスクリプトを参照できるようにする必要があります。

DB2 Connectバージョン6.1 (Enterprise Edition)の使用

Windows NT   セットアッププログラムを実行するため次の指示に従います。

  1. [DB2 Enterprise - Extended Edition]チェックボックスをオンにします。

    サーバインスタンスに関する情報はデフォルト設定のままにしておきます。

  2. [Custom]を選択します。

  3. リストから次の項目を選択します。

UNIX   Solarisにバージョン5.2をインストールする場合も、これと同じ指示に従います。ただし、DB2 Connect - Enterprise Editionバージョン6.1をインストールする点が異なります。

HP-UXメモ   DB2 6.1をインストールする場合のHP-UXカーネル設定パラメータの推奨値は次のとおりです。

DB2 Connectバージョン7 (Enterprise Edition)の使用

Windows NT   セットアッププログラムの指示に従います。

HP-UXとSolaris    DB2 ConnectのインストールおよびHP-UXとSolarisのパラメータ設定については、IBM Webサイトの『IBM DB2 Connect Enterprise Edition for UNIX Quick Beginnings』ガイドを参照してください。

 
Top of section

手順4: DB2クライアント接続を設定する

Windows NT   アプリケーションサーバは、DB2クライアントの「エイリアス」を使用して接続します。これらのエイリアスは、DB2 for Windows NTプログラムフォルダの中にあるIBMのClient Configuration Assistantを使用して設定されます。Client Configuration Assistantを実行するには、使用するNTログインに管理者権限があり、IDが8文字未満でなければなりません。これらの手順を完了するには、DB2管理者であるか、または管理者特権を持っている必要があります。

Procedure 新規のDB2クライアントエイリアスを作成する

注記:   これらの手順に必要な情報を得るためDB2管理者に連絡を取る必要があります。

  1. DB2 for Windows NTプログラムフォルダのClient Configuration Assistantを開きます。

  2. Client Configuration Assistant画面の右上の[Add]ボタンをクリックします。続行するには[Next]を選択します。

  3. 手動でDB2データベース接続を設定するよう選択します。続行するには[Next]を選択します。

  4. 該当するプロトコル(デフォルトはTCP/IP)を選択します。続行するには[Next]を選択します。

  5. 該当するプラットフォームまたはLANベースを選択します。

  6. DB2サーバーが動作しているDB2サーバホスト名、TCPポート番号、およびサービス名(オプション)を設定します。続行するには[Next]を選択します。

  7. ターゲットデータベース名を入力します。続行するには[Next]を選択します。

  8. エイリアス名を入力します(後でアプリケーションサーバーにデータベースを追加する際にこの名前を使用します)。続行するには[Next]を選択します。

  9. (オプション)これらの設定をODBCデータソースとして登録します。この手順は必須ではありませんが、これを行うようお勧めします。

  10. 最後に、Client Configuration Assistant内部から接続をテストします。

For more information    インストールの詳細については、IBMのWebサイトにある「Most Common DB2 Connect Problems」を参照してください。

Solaris   DB2データベースとの接続を確立するため、DB2コマンドラインプロセッサを起動し、次の2つのコマンドを入力します。

  catalog tcpip node tcpipnodealias remote servername server port# 

ここで、tcpipnodealiasはDB2サーバーのローカルエイリアス(通常はservernameと同じ)、servernameはDB2サーバの名前、port# はTCP/IPコールを受信するよう設定されているデータベースサーバのポートです。

  catalog database databasename as aliasname at node tcpipnodealias 

ここで、databasenameは実際のデータベース名、aliasnameはデータベースのローカル名(実際の名前と同じ名前を使用できます)、tcpipnodealiasは最初のカタログステートメントで指定されている名前です。

DB2接続をテストするには次のようにします。

  connect to aliasname user userid using password

For more information    インストールの詳細については、IBMのWebサイトにある「Most Common DB2 Connect Problems」を参照してください。

 
Top of section

手順5: DB2CLI.INIファイルを変更する

データベースへのクライアント接続を調整するため、IBMによってクライアントサイドの.iniファイルが提供されています。変更を加えない場合、アプリケーションサーバは「すべて」のDB2テーブルとビューを環境に追加しようとします。ほとんどのアプリケーションではリスト全体のサブセットだけが必要になります。DB2データベースに変更を加えないで.iniファイルに追加すると、非常に時間がかかる場合があります。

アプリケーションサーバがスキーマを読み込むのにかかる時間を短縮するためにできることがいくつかあります。また、採るべき2つの主な手法があります。

exteNdツールの使用

1つのオプションは、サーバにデータベースを追加する際にアプリケーションサーバが読み込むテーブルのサブセットを指定することです。詳細については、『機能ガイド』のSilverCmdに関する章または『管理者用ガイド』のデータベースの追加(データソース設定に関する章の中)に関する節を参照してください。

IBMツールの使用

GUI手法   別の方法として、次の指示に従ってClient Configuration Assistantから.iniファイルのパラメータに変更を加えることができます。

  1. エイリアスのプロパティを表示し、ODBC設定を変更するように選択します。

  2. データベースに接続して、[advanced]を選択します。

    アプリケーションサーバのインストールに役立つ具体的な設定を次にリストします。完全なリストは、IBMの『Call Level Interface』のマニュアルにあります。

Text手法   オプションで、テキストエディタを使用して、sqllibディレクトリにあるDB2クライアントの.iniファイルを読み込んで変更することもできます。最初のエイリアスエントリ(Client Configuration Assistantを使って入力した名前)は次のようになります。

  [db2alias] 
  DBALIAS=db2alias 

テーブルの数を制限するには、特定の「スキーマ」を指定できます。AS/400の場合、このスキーマとは、オブジェクトの所有者/ユーザまたはライブラリを指します。

  SCHEMALIST="userid","userid2" 

データセットが極端に大きい場合は、SCHEMALISTを使用するだけではスキャン時間を十分に短縮できないことがあります。アプリケーションサーバが問い合わせるテーブルの総数を大幅に減らすためには、次の手順を完了する必要があります。

  1. 別の所有者を使用して、すべてのシステムテーブルのビューを作成します(DBAが実行する必要があります)。これらのビューは、アプリケーションでアクセスするテーブルと同じ所有者IDでは作成せずに、一意な所有者IDで作成してください。

  2. .iniファイルでビューの所有者を参照します。

      SYSSCHEMA="owner"
    

たとえば、異なる3人の所有者のオブジェクトを表示するためのビューを作成することができます。このサンプルビューの構文は、NT上のDB2用に使用されています。

  CREATE VIEW MYSCHEMA.SYSTABLES AS  SELECT *  FROM SYSIBM.SYSTABLES  WHERE CREATOR IN (\qUSER1\q,\qUSER2\q,\qUSER3\q) 

必要なすべてのシステムテーブルのビューを同じスキーマに従って作成すると、iniファイル内のエントリは次のようになります。

  SYSSCHEMA="MYSCHEMA"

アプリケーションサーバは、これらのオブジェクトのみをスキャンします。SCHEMALISTと組み合せて使用した場合、サーバは3人の所有者のオブジェクトをスキャンしますが、SCHEMALISTで参照されている所有者に属するオブジェクトのみを追加します。

重要:   インストール時間とサーバ起動時間を短縮するため、先に述べたオプションを使用することをお薦めします。

その他の設定オプション

MVS環境では、ロングのデータタイプとの互換性のため変数を設定する必要があります。この設定についての詳細は、『Call Level Interface』マニュアルのLONGDATACOMPATに関する節を参照してください。

  LONGDATACOMPAT=1 

データベースを追加した後にDB2にレコードを保存できない場合は、トランザクション変数を設定する必要があります。次にリストされている例はAS/400用で、テーブルジャーナルの必要はありません。オプションの完全なリストについては、『Call Level Interface』マニュアルのTXNISOLATIONに関する節を参照してください。

  TXNISOLATION=32 

 
Top of section

手順6:環境変数を設定する

Windows NT   アプリケーションサーバをDB2に接続するには、DB2ライブラリをAGCLASSPATH環境変数に追加する必要があります。これを行うためには、[コントロールパネル]、[システム]の順に開き、[環境]タブを選択します。 AGCLASSPATHという名前のシステム環境変数を作成し、その値をC:\sqllib\java\db2java.zipに設定します(DB2クライアントをデフォルトの場所であるC:ドライブにインストールしたと仮定しています)。DB2クライアントをC:ドライブ以外にインストールした場合は、それに応じてAGCLASSPATH変数を設定してください。

デフォルトでは、これは JDBC 1.0ドライバに設定されています。DB2 7.xでは、スクリプトsqllib\java12\usejdbc2を実行してJDBC 2.0ドライバを使用できます(詳細については、ここをクリックして、www-3.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/document.d2w/report?&fn=1008960にアクセスしてください)。

UNIX   DB2ではDB2 JDBCドライバのネイティブライブラリとJavaクラスをJavaクラスパスとシステムライブラリパスに追加する必要があります。これを行うため、先に作成したDB2インスタンスをアプリケーションサーバの環境ファイル.agprofile(アプリケーションサーバのインストールライブラリに保存されています)で直接参照できます。次の行を追加して.agprofileを編集します。

  . /export/home/db2inst1/sqllib/db2profile

デフォルトでは、これは JDBC 1.0ドライバに設定されています。 DB2 7.xでは、次の行を.agprofileファイルに追加してJDBC 2.0ドライバを使用できます(詳細については、ここをクリックして、www-3.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/document.d2w/report?&fn=1008960にアクセスしてください)。

  . /home/db2inst1/sqllib/db2profile
  . /home/db2inst1/sqllib/java12/usejdbc2

For more information    AGCLASSPATHと.agprofileファイルの編集の詳細については、『管理者用ガイド』のデータソース設定に関する章を参照してください。

 
Top of section

手順7:アプリケーションサーバでデータベースを使用する

これでアプリケーションサーバーからDB2データベースにアクセスする準備が整いました。これで、次の作業を実行できるようになります。

For more information    詳細については、『管理者用ガイド』のデータソース設定に関する章を参照してください。

 
Top of page

トラブルシューティング

SQL0551N "user does not have the privilege to perform operation GRANT"   DB2 6.1と接続中にDB2クライアントからこのメッセージを受け取ったときは、DB2ユーティリティをデータベースにバインドする必要があります。この手順は、アプリケーションサーバで使用している各データベースに適用してください。バインド手順は次のとおりです。

  1. DB2インスタンスユーザ(たとえばdb2inst1)としてログインし、そのインスタンスのbndサブディレクトリを変更してから、DB2ユーティリティを起動します。

      db2inst1@mymachine>  cd sqllib/bnd
      db2inst1@mymachine>  db2
    
  2. DB2管理者としてデータベースに接続します。

      db2 => connect to mydatabase user db2admin using db2admin
    

    次のメッセージが表示されます。

      Database Connection Information
      Database server        = DB2/NT 6.1.0
      SQL authorization ID   = DB2ADMIN
      Local database alias   = MYDATABASE
    
  3. 最初のバインドコマンドを実行します。

      db2 => bind @db2ubind.lst blocking all grant public
    
  4. 2番目のバインドコマンドを実行します。

      db2 => bind @db2cli.lst blocking all grant public 
    


Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.  more ...