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

クライアントでの TCP/IP の構成

このセクションでは、TCP/IP が クライアントおよびサーバー・ワークステーションで機能していることを想定しています。 個々のプラットフォームでの通信プロトコル要件の詳細については、 ソフトウェア要件を参照してください。 特定のクライアントおよびサーバーでサポートされている通信プロトコルの詳細については、 クライアント - サーバー間の接続の想定シナリオを参照してください。

TCP/IP 通信を DB2 クライアントでセットアップするには、以下のステップを実行します。

ステップ 1.

パラメーター値を識別して記録します。

ステップ 2.

次のようにクライアントを構成します。

  1. サーバーのホスト・アドレスを解決します。
  2. サービス・ファイルを更新します。
  3. TCP/IP ノードをカタログ化します。
  4. データベースをカタログ化します。

ステップ 3.

クライアントとサーバーとの間に確立された接続をテストします。



ヒント

TCP/IP プロトコルの特性が原因で、 別のホストにあるパートナーの障害はただちに TCP/IP に通知されないことがあります。 その結果、 TCP/IP を使ってリモート DB2 サーバーにアクセスしようとするクライアント・アプリケーションや、 それに対応するエージェント (サーバーに存在する) は、 場合によってハングしたように見えることがあります。 障害が生じて TCP/IP 接続が失敗したとき、 DB2 は TCP/IP SO_KEEPALIVE ソケット・オプションを使ってそれを検出します。

TCP/IP 接続において問題が生じた場合、このパラメーターの調整方法について、また、 他のよくある TCP/IP 問題について、問題判別の手引き を参照してください。

ステップ 1. パラメーター値の識別および記録

構成ステップを進めるにつれて、 次の表内の「使用値 (Your Value)」列に記入を済ませます。 このプロトコルの構成を始める前に、値の一部を記入することができます。

表 9. TCP/IP クライアントで必要な値
パラメーター 説明 サンプル値 使用値

ホスト名

  • ホスト名 (hostname) または
  • IP アドレス (ip_address)

リモート・サーバー・ワークステーションの hostname または ip_address を使用します。

このパラメーターを解決するには、次のようにします。

  • サーバーで hostname コマンドを入力して、 hostname パラメーターを取得します。
  • ネットワーク管理者に ip_address を問い合わせるか、 ping hostname コマンドを入力します。
  • UNIX システムでは、 DB2/bin/hostlookup hostname コマンドを使用することもできます。

    ここで、 DB2 は DB2 がインストールされているディレクトリーを表します。


serverhost

または

9.21.15.235

サービス名

  • 接続サービス名 (svcename) または
  • ポート番号 / プロトコル (port_number/tcp)

サービス・ファイルに必要な値。

接続サービス名は、 サーバーでの接続ポート番号 (port_number) を 表す任意のローカル名です。

ポート番号は、 サーバーの services ファイルにある svcename パラメーターがマップしているポート番号と 同じでなければなりません。 (svcename パラメーターは、 サーバーのデータベース・マネージャー構成ファイルにあります。) この値は、他のアプリケーションで使用されていてはならず、 サービス・ファイル内で固有でなければなりません。

サーバーを構成するのに使用される値については、データベース管理者に問い合わせてください。

server1

3700/tcp


ノード名 (node_name)

接続を確立しようと試みているノードを記述するローカル別名またはニックネーム。 任意の名前を選択することができますが、 ローカル・ノード・ディレクトリー内のノード名値はそれぞれ固有でなければなりません。

db2node

ステップ 2. クライアントの構成

以下のステップを実行すると、 クライアントが TCP/IP を使用してサーバーと通信できるように構成します。 サンプル値を各自のワークシート値に置換してください。

A. サーバーのホスト・アドレスの解決



高速経路

ユーザーのネットワークにネーム・サーバーがある場合、 またはサーバーの IP アドレス (ip_address) を直接指定しようと している場合には、このステップを飛ばして、ステップ B. サービス・ファイルの更新 に進んでください。

クライアントは、通信を確立しようとするサーバーの IP アドレスを 認識しなければなりません。 ネーム・サーバーがネットワークに存在しない場合には、 ローカル・ホスト・ファイル内のサーバーの IP アドレス (ip_address) にマップするホスト名を直接指定することができます。 プラットフォームごとのホスト・ファイルのロケーションについては、 表 10 を参照してください。

ネットワーク情報サービス (NIS) を使用する UNIX クライアントをサポートすることを計画していて、 ご使用のネットワークでネーム・サーバーを使用していない場合には、 NIS マスター・サーバーにあるホスト・ファイルを更新しなければなりません。

表 10. ローカル・ホストとサービス・ファイルのロケーション
プラットフォーム ロケーション
OS/2 etc 環境変数により指定されます。 set etc コマンドを入力して、 ローカル・ホスト または サービス・ファイルのロケーションを判別します。
Windows NT または Windows 2000 winnt\system32\drivers\etc ディレクトリーにあります。
Windows 9x windows ディレクトリーにあります。
UNIX /etc ディレクトリーにあります。

クライアントのホスト・ファイルを編集して、 サーバーのホスト名のためのエントリーを追加します。 たとえば、次のようにします。

      9.21.15.235     serverhost   # host address for serverhost

ここで、

9.21.15.235
ip_address を表します。

serverhost
hostname を表します。

#
エントリーを説明する注釈を表します。

サーバーがクライアントと同じドメインにない場合には、 serverhost.vnet.ibm.com のような完全に修飾されたドメイン名を 提供しなければなりません (vnet.ibm.com はドメイン名)。

ステップ B. サービス・ファイルの更新



高速経路

ポート番号 (port_number) を使用して TCP/IP ノードをカタログ化しようとしている場合には、このステップを飛ばして、 ステップ C. TCP/IP ノードのカタログ化に進んでください。

ローカル・テキスト・エディターを使用して、 TCP/IP サポートのクライアントのサービス・ ファイルに、接続サービス名およびポート番号を追加します。 たとえば、次のようにします。

      server1  3700/tcp  # DB2 connection service port

ここで、

server1
接続サービス名を表します。

3700
接続ポート番号を表します。 クライアントで指定されるポート番号は、サーバーで使用される ポート番号と一致していなければなりません。

tcp
使用している通信プロトコルを表します。

#
エントリーを説明する注釈を表します。

ネットワーク情報サービス (NIS) を使用する UNIX クライアントをサポートすることを計画している場合には、NIS マスター・サーバーにあるサービス・ファイルを更新しなければなりません。

サービス・ファイルは、ローカルの hosts ファイル (A. サーバーのホスト・アドレスの解決で編集したもの) と同じディレクトリーにあります。

プラットフォームごとのサービス・ファイルのロケーションについては、 表 10 を参照してください。

ステップ C. TCP/IP ノードのカタログ化

リモート・ノードを記述するため、 クライアントのノード・ディレクトリーに項目を追加しなければなりません。 この記入項目では、クライアントがリモート・サーバーにアクセスするときに使用する、 別名 (node_name)、hostname (または ip_address)、 および svcename (または port_number) を指定します。

TCP/IP ノードをカタログ化するには、以下のステップを実行します。

ステップ 1.

有効な DB2 ユーザー ID を使用してシステムにログオンします。 詳しくは、付録 F, 命名規則を参照してください。



ヒント

DB2 サーバーまたは DB2 コネクト・サーバー製品がインストールされているシステムへデータベースを追加する場合は、 システム管理 (SYSADM) 権限またはシステム・コントローラー (SYSCTRL) 権限のあるユーザーとしてシステムにログオンします。 詳細については、システム管理グループの処理を参照してください。

この制限を制御するには、 catalog_noauth データベース・マネージャー構成パラメーターを使用します。 詳細については、 管理の手引き を参照してください。

ステップ 2.

UNIX クライアントを使用する場合は、 次のように始動スクリプトを実行します。

   . INSTHOME/sqllib/db2profile    (bash、Bourne、または Korn シェルの場合)
   source INSTHOME/sqllib/db2cshrc (C シェルの場合)

ここで、INSTHOME は、インスタンスのホーム・ディレクトリーです。

ステップ 3.

次のコマンドを入力してノードをカタログ化します。

   db2 "catalog tcpip node node_name remote [hostname|ip_address]
     server [svcename|port_number]"
   db2 terminate

たとえば、サービス名 server1 を使用して、 db2node というノードでリモート・サーバー serverhost をカタログ化するには、次のように入力します。

   db2 catalog tcpip node db2node remote serverhost server server1
   db2 terminate

たとえば、ポート番号 3700 を使用して、db2node というノードに IP アドレス 9.21.15.235 でリモート・サーバーをカタログ化するには、 次のように入力します。

   db2 catalog tcpip node db2node remote 9.21.15.235 server 3700
   db2 terminate



ヒント

catalog node コマンドを使って設定した値を変更する必要がある場合は、以下のステップを実行します。

ステップ 1.

次のように、コマンド行プロセッサーで uncatalog node コマンドを実行します。

   db2 uncatalog node node_name

ステップ 2.

使いたい値でノードを再びカタログ化します。

ステップ D. データベースのカタログ化

クライアント・アプリケーションからリモート・データベースにアクセスできるようにするには、 サーバー・ノードと、そのサーバーに接続される任意のクライアント・ノードで、 そのデータベースをカタログ化しなければなりません。 デフォルトでは、データベースを作成すると、そのデータベースは、 データベース名 (database_name) と同じデータベース別名 (database_alias) を使ってサーバーで自動的にカタログ化されます。 データベース・ディレクトリー内の情報に加え、 ノード・ディレクトリー内の情報がクライアントで使用されて、 リモート・データベースへの接続が設定されます。

データベースをクライアントでカタログ化するには、次に示すステップを実行します。

ステップ 1.

有効な DB2 ユーザー ID を使用してシステムにログオンします。 詳しくは、付録 F, 命名規則を参照してください。



ヒント

DB2 サーバーまたは DB2 コネクト・サーバー製品がインストールされているシステムへデータベースを追加する場合は、 システム管理 (SYSADM) 権限またはシステム・コントローラー (SYSCTRL) 権限のあるユーザーとしてシステムにログオンします。 詳細については、システム管理グループの処理を参照してください。

この制限を制御するには、 catalog_noauth データベース・マネージャー構成パラメーターを使用します。 詳細については、 管理の手引き を参照してください。

ステップ 2.

次に示すワークシートの「使用値 (Your Value)」に記入します。


表 11. ワークシート: データベースをカタログ化するためのパラメーター値
パラメーター 説明 サンプル値 使用値
データベース名 (database_name) リモート・データベースのデータベース別名 (database_alias)。 データベースを作成すると、特に指定しないかぎり、そのデータベースは、 データベース名 (database_name) と同じデータベース別名 (database_alias) を使ってサーバーで自動的にカタログ化されます。 sample
データベース別名 (database_alias) クライアントでの、リモート・データベース用の任意のローカル・ニックネーム。 これを指定しない場合には、 デフォルトはデータベース名 (database_name) と同じになります。 データベース別名は、 クライアントからデータベースに接続するときに使用する名前です。 tor1
認証 (auth_value) ユーザーの会社で必要な認証の値。 このパラメーターについての詳細は、 DB2 コネクト 使用者の手引き を参照してください。 DCS

これは、ユーザー ID およびパスワードは、 ソフトまたは AS/400 でのみ妥当性検査されるということを意味します。

ノード名 (node_name) データベースの常駐場所を記述したノード・ディレクトリー項目の名前。 前のステップでノードをカタログ化するのに使用したのと同じ値をノード名 (node_name) に使用します。 db2node

ステップ 3.

UNIX クライアントを使用する場合は、 次のように始動スクリプトを実行します。

   . INSTHOME/sqllib/db2profile    (bash、Bourne、または Korn シェルの場合)
   source INSTHOME/sqllib/db2cshrc (C シェルの場合)

ここで、INSTHOME はインスタンスのホーム・ディレクトリーを表します。

ステップ 4.

データベースをカタログ化するには、次のコマンドを入力します。

   db2 catalog database database_name as database_alias at node node_name
   db2 terminate

たとえば、ノード db2node で、 sample という名前のリモート・データベースをカタログ化して、 別名 tor1 を付けるには、次のコマンドを入力します。

   db2 catalog database sample as tor1 at node db2node
   db2 terminate



ヒント

catalog database コマンドを使って設定した値を変更する必要がある場合は、以下のステップを実行します。

ステップ a.

uncatalog database コマンドを次のように実行します。

   db2 uncatalog database database_alias

ステップ b.

使いたい値でデータベースを再びカタログ化します。

ステップ 3. クライアントとサーバーの接続のテスト

通信用のクライアントの構成が終わったら、 リモート・データベースに接続して接続をテストする必要があります。

ステップ 1.

データベース・マネージャーを始動するには、 サーバーで db2start コマンドを入力します (ブート時に自動的に始動していない場合)。

ステップ 2.

UNIX クライアントを使用している場合には、 次のようにして始動スクリプトを実行します。

   . INSTHOME/sqllib/db2profile    (Bash、Bourne、または Korn シェルの場合)
   source INSTHOME/sqllib/db2cshrc (C シェルの場合)

ここで、INSTHOME はインスタンスのホーム・ディレクトリーです。

ステップ 3.

クライアントに次のようなコマンドを入力し、 クライアントをリモート・データベースに接続します。

   db2 connect to database_alias user userid using password

userid および password の値は、 この 2 つが認証されるシステムで有効なものでなければなりません。 デフォルトでは、認証は DB2 サーバー用のサーバーや、 DB2 コネクト・サーバー用のホストまたは AS/400 マシンで行われます。

接続が正常に完了したら、接続先のデータベースの名前を示したメッセージが表示されます。 これで、そのデータベースからデータを取り出すことができます。 たとえば、システム・カタログ表にリストされているすべての表名のリストを取り出したい場合、 次のような SQL コマンドをコマンド・センターまたは CLP に入力します。

     "select tabname from syscat.tables"

データベース接続の使用が終わったら、command reset コマンドを入力してデータベース接続を終了します。

クライアントとサーバーの接続のトラブルシューティング

接続が失敗した場合、次のような項目を検査します。

サーバーで:

  1. db2comm レジストリー値に、値 tcpip が含まれています。



    ヒント

    db2set DB2COMM コマンドを入力して、 db2comm レジストリーの設定値を検査します。 詳細については、 管理の手引き を参照してください。

  2. サービス・ファイルは正常に更新されました。
  3. データベース・マネージャー構成ファイルで、 サービス名 (svcename) パラメーターが正しく更新されました。
  4. セキュリティー・サービスが始動されました。 net start db2ntsecserver コマンドを入力します (Windows NT および Windows 2000 サーバーの場合のみ)。
  5. データベースが正しく作成され、カタログ化されました。
  6. データベース・マネージャーが停止されてから開始されました (サーバーで db2stop および db2start コマンドを入力)。



ヒント

プロトコルの接続マネージャーに開始時に問題が発生すると、 警告メッセージが表示され、 UNIX プラットフォームでは INSTHOME/sqllib/db2dump ディレクトリーにある db2diag.log ファイルに、 非 UNIX プラットフォームでは x:\sqllib\db2dump ディレクトリーにある db2diag.log ファイルにエラー・メッセージが記録されます。

db2diag.log ファイルの詳細については、 問題判別の手引き を参照してください。

クライアントで:

  1. 使用されている場合には、サービスおよびホスト・ファイルが正しく更新されました。
  2. ノードが正しいホスト名 (hostname) また は IP アドレス (ip_address) でカタログ化されました。
  3. ポート番号は、サーバーで使用されるポート番号に一致しているか、 またはサービス名がそのポート番号にマップされていなければなりません。
  4. データベース・ディレクトリー内に指定されているノード名 (node_name) は、ノード・ディレクトリー内の正しい項目を指します。
  5. データベースは、サーバーのデータベース別名 (database_alias、データベースが作成されたときにクライアントでカタログ化されたもの) クライアントのデータベース名 (database_name) として使用してカタログ化されました。

これらの項目を確認した後でまだ接続が失敗する場合は、 問題判別の手引き を参照してください。


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