リリース情報


6.8 Informix データ・ソースへのアクセス (新しい章)

Informix データ・ソースを DB2 連合サーバーに追加する前に、Informix クライアント SDK ソフトウェアを連合サーバーにインストールして構成しておく必要があります。クライアント SDK ソフトウェアのインストール方法に関する特定の事柄の詳細は、Informix データベース・ソフトウェアに付属の資料に記載されているインストール手順を参照してください。インストール手順の一部として、Informix クライアント SDK ライブラリーを組み込むことを忘れないでください。

Informix データ・ソースに保管されているデータにアクセスできるように連合サーバーをセットアップするには、以下を行う必要があります。

  1. DB2 リレーショナル・コネクトをインストールします。6.3.3, DB2 リレーショナル・コネクトのインストールを参照してください。
  2. 最新の DB2 フィックスパックを適用します。
  3. Informix データ・ソースを連合サーバーに追加します。

この章では、ステップ 3 について説明しています。

この章での説明は、AIX、Solaris オペレーティング環境、および HP-UX オペレーティング・システムに適用されます。オペレーティング・システム固有の違いは、そのつど示されています。

6.8.1 連合サーバーへの Informix データ・ソースの追加

Informix データ・ソースを連合サーバーに追加するには、以下を行う必要があります。

  1. 環境変数を設定し、プロファイル・レジストリーを更新します。
  2. DB2 を Informix クライアント・ソフトウェアにリンクします。
  3. DB2 インスタンスを再生します。
  4. Informix sqlhosts ファイルを作成します。
  5. ラッパーを作成します。
  6. オプション: DB2_DJ_COMM 環境変数を設定します。
  7. サーバーを作成します。
  8. ユーザー・マッピングを作成します。
  9. 表、視点、および Informix 同義語のニックネームを作成します。

上記のステップは、このセクションで詳しく説明されています。

6.8.1.1 ステップ 1: 環境変数の設定およびプロファイル・レジストリーの更新

データ・ソース環境変数を、db2dj.ini ファイルを変更し、db2set コマンドを実行することで設定します。db2dj.ini ファイルには、連合サーバーにインストールされている Informix クライアント・ソフトウェアについての構成情報が含まれています。db2set コマンドは、DB2 プロファイル・レジストリーをユーザーの設定で更新します。

区分データベース・システムでは、特定インスタンスのすべてのノードに対して単一の db2dj.ini ファイルを使用、または特定インスタンスの 1 つ以上のノードに対して固有の db2dj.ini ファイルを使用することができます。非区分データベース・システムでは、保持できる db2dj.ini ファイルはインスタンスごとに 1 つです。

環境変数を設定するには、以下を行います。

  1. sqllib/cfg ディレクトリーにある db2dj.ini ファイルを編集し、次の環境変数を設定します。
    注:
    |このファイルがシステムにまだない場合は、ご自身で |作成できます。 |

    INFORMIXDIR

    INFORMIXDIR 環境変数には、Informix クライアント SDK ソフトウェアがインストールされているディレクトリーのパスを設定します。以下に例を示します。

    |INFORMIXDIR=/informix/csdk
    
    

    INFORMIXSERVER

    この変数により、デフォルトの Informix サーバーの名前が識別されます。

    |INFORMIXSERVER=inf93
    | 
    
    

    注 : Informix ラッパーはこの変数の値を使用しませんが、Informix クライアントはこの変数が設定されていることを必要とします。ラッパーは、ユーザーがアクセスする Informix データベース・サーバーを指定する node サーバー・オプションの値を使用します。

    INFORMIXSQLHOSTS

    Informix sqlhosts ファイルのデフォルトのパス ($INFORMIXDIR/etc/sqlhosts) を使用している場合は、この変数を設定する必要はありません。しかし、Informix sqlhosts ファイルについてデフォルト以外のパスを使用している場合は、この変数に Informix sqlhosts ファイルの全パス名を設定する必要があります。以下に例を示します。

    |INFORMIXSQLHOSTS=/informix/csdk/etc/my_sqlhosts
    | 
    
    
  2. Informix 環境変数を使用して、DB2 インスタンスの .profile ファイルを更新します。これを行うには、次のコマンドを発行し、各変数を設定してエクスポートします。
    PATH=$INFORMIXDIR/bin:$PATH
    export PATH
     
    INFORMIXDIR=<informix_client_path>
    export INFORMIXDIR
    

    ここで informix_client_path は、連合サーバー上で Informix クライアントがインストールされているディレクトリーのパスです。パス内にブランクを含んでいる名前がある場合は、パスを二重引用符 (") で囲んでください。

  3. 次のコマンドを入力して、DB2 インスタンス .profile を実行します。
    . .profile
    
  4. db2set コマンドを実行して、DB2 プロファイル・レジストリーに変更を適用します。このコマンド db2set の構文は、使用しているデータベース・システムによって異なります。このステップは、以下のデータベース・システム構造のいずれかで db2dj.ini ファイルを使用している場合のみ必要です。

    非区分データベース・システムで db2dj.ini ファイルを使用しているか、db2dj.ini ファイルを現行ノードにだけ適用する場合、次のコマンドを発行します。

    db2set DB2_DJ_INI=sqllib/cfg/db2dj.ini
    
    注:
    |このセクションのパス名は完全修飾名で |なければなりません。例えば、my_home/my_instance/sqllib/cfg/db2dj.ini です。 |

    区分データベース・システムで db2dj.ini ファイルを使用していて、db2dj.ini ファイルの値をこのインスタンス内のすべてのノードに適用したい場合は、次のコマンドを発行します。

    db2set -g DB2_DJ_INI = sqllib/cfg/db2dj.ini
    

    区分データベース・システムで db2dj.ini ファイルを使用していて、 db2dj.ini ファイルの値を特定ノードに適用したい場合、次を実行します。

    db2set -i INSTANCEX 3 DB2_DJ_INI=sqllib/cfg/node3.ini 
    

    説明:

    INSTANCEX
    インスタンスの名前です。

    3
    db2nodes.cfg ファイルにリストされているノード番号です。

    node3.ini
    内容と名前が変更されたバージョンの db2dj.ini ファイルです。

6.8.1.2 ステップ 2: Informix クライアント・ソフトウェアへの DB2 のリンク

Informix データ・ソースにアクセスできるようにするためには、DB2 連合サーバーがクライアント・ライブラリーにリンク・エディットされている必要があります。リンク・エディット処理では、連合サーバーが通信するデータ・ソースごとにラッパー・ライブラリーが作成されます。 djxlinkInformix スクリプトを実行すると、Informix ラッパー・ライブラリーが作成されます。 djxlinkInformix スクリプトを発行するには、次のように入力します。

djxlinkInformix
注:

|djxlinkInformix スクリプトによって |作成されるのは Informix ラッパー・ライブラリーだけです。 |他に djxlink スクリプトというスクリプトがあり、これは DB2 ユニバーサル・データベースが |サポートするあらゆるデータ・ソース (Oracle、 |Microsoft SQL Server など) |のラッパー・ライブラリーを作成しようと試みます。一部のデータ・ソース用の |クライアント・ソフトウェアしかインストールしていない場合は、 |djxlink スクリプトを発行すると、欠落しているデータ・ソースごとに |エラー・メッセージを受け取ります。

|djxlinkInformix および djxlink スクリプトを実行するには、UNIX システム管理者 (root) 権限が必要です。

|オペレーティング・システムによっては、djxlinkInformix および djxlink スクリプトにより |詳細なエラーや警告メッセージが特定のファイルに書き込まれます。例えば、AIX の場合、djxlinkInformix スクリプトにより /usr/lpp/db2_07_01/lib/djxlinkInformix.out へ、djxlink スクリプトにより | /usr/lpp/db2_07_01/lib/djxlink.out へ書き込まれます。

|オペレーティング・システムによっては、djxlinkInformix および djxlink スクリプトにより |特定のディレクトリーにラッパーが作成されます。例えば、AIX の場合、libinformix.a |ラッパー・ライブラリーが /usr/lpp/db2_07_01/lib ディレクトリーに作成されます。

|libinformix.a ラッパー・ライブラリーが作成されたら、 |DB2 インスタンス所有者による読み取り、実行の許可があるかどうか確認してください。DB2 インスタンス所有者がシステム・グループにない場合は、 |libinformix.a ラッパー・ライブラリーに対して -rwxr-xr-x |root system...libinformix.a が許可される必要があります。 |

6.8.1.3 ステップ 3: DB2 インスタンスの再生

プログラムに確実に環境変数が設定されるようにするには、DB2 インスタンスを再生します。インスタンスを再生すると、変更を受け入れられるよう DB2 インスタンスはリフレッシュされます。

DB2 インスタンスを再生するには、以下のコマンドを実行します。

DB2 (AIX、Solaris オペレーティング環境、および HP-UX サーバー版) の場合 :
db2stop
db2start

|6.8.1.4 ステップ 4: Informix sqlhosts ファイルの作成

|このファイルは、各 Informix データベース・サーバーのロケーションと、その |データベース・サーバー用の接続 (プロトコル) のタイプを指定します。 |このファイルを作成するいくつかの方法があります。 |Informix サーバーに接続されている Informix Connect |または Informix クライアント SDK が入っている別のシステムから |コピーすることができます。また、DB2 サーバー上の Informix クライアント SDK を、 |sqlhosts ファイルを作成する Informix サーバーに接続するよう構成することもできます。

|sqlhosts ファイルがコピーまたは作成されたら、DB2 インスタンス所有者は |Informix dbaccess (DB2 サーバー上にある場合) を使用して Informix サーバーへの |接続、照会を行う必要があります。これにより、Informix クライアント SDK で作業するために |DB2 リレーショナル・コネクトを構成する前に、Informix クライアント SDK が |Informix サーバーに接続することができるようになります。

|このファイルのセットアップ方法についての詳細は、Informix の |マニュアル「Administrators Guide for Informix Dynamic Server」を参照してください。

警告:

Informix データベース・サーバーの名前を sqlhosts ファイル内に定義していないと、その Informix データベース・サーバーへの接続が必要な操作の実行時にエラーを受け取ります。

6.8.1.5 ステップ 5: ラッパーの作成

CREATE WRAPPER ステートメントを使用して、Informix データ・ソースへのアクセスに使用されるラッパーを指定します。ラッパーとは、データ・ソースとの通信およびデータ・ソースからのデータ検索に連合サーバーが使用するメカニズムのことです。以下は CREATE WRAPPER ステートメントの例です。

CREATE WRAPPER informix

ここで、informix は wrapper_name です。informix は、Informix クライアント SDK ソフトウェアで使用されるデフォルトのラッパー名です。

デフォルト・ラッパー名は、選択した名前で置換することができます。ただし、これを行う場合、LIBRARY パラメーターおよび連合サーバーのラッパー・ライブラリー名も CREATE WRAPPER ステートメントに組み込まなければなりません。ラッパー・ライブラリー名についての詳細は、「DB2 SQL 解説書」の CREATE WRAPPER ステートメントを参照してください。

Informix 用のラッパー・ライブラリー名は次の通りです。

6.8.1.6 ステップ 6: オプション: DB2_DJ_COMM 環境変数の設定

Informix データ・ソースへのアクセス時におけるパフォーマンスを向上させるには、連合サーバー上で DB2_DJ_COMM 環境変数を設定します。この変数により、連合サーバーの初期化時にラッパーがロードされるかどうかが決まります。直前のステップで指定したラッパーに対応するラッパー・ライブラリーが組み込まれるように DB2_DJ_COMM 環境変数を設定します。Korn シェルまたは Bourne シェル・コマンド行インターフェースを使用している場合は、次のエクスポート・コマンドを使用してください。

DB2 (AIX サーバー版) の場合:
DB2_DJ_COMM='libinformix.a'
export DB2_DJ_COMM

DB2 (Solaris オペレーティング環境サーバー版) の場合:
DB2_DJ_COMM='libinformix.so'
export DB2_DJ_COMM

DB2 (HP-UX サーバー版) の場合:
DB2_DJ_COMM='libinformix.sl'
export DB2_DJ_COMM

等号 (=) の両端にスペースがないことを確認します。

C シェル・コマンド行インターフェースを使用している場合は、次のコマンドを使用して環境変数を設定してください。

setenv DB2_DJ_COMM 'libinformix.a' (DB2 (AIX サーバー版))
setenv DB2_DJ_COMM 'libinformix.so' (DB2 for Solaris Operating Environment servers)
setenv DB2_DJ_COMM 'libinformix.sl' (DB2 for HP--UX servers)

ラッパー・ライブラリー名および DB2_DJ_COMM 環境変数についての詳細は、「DB2 SQL 解説書」を参照してください。

6.8.1.7 ステップ 7: サーバーの作成

CREATE SERVER ステートメントを使用して、アクセスしたいデータ・ソースを持つ Informix サーバーをそれぞれ定義します。このステートメントの構文は次の通りです。

CREATE SERVER server_name TYPE server_type VERSION server_version
	WRAPPER wrapper_name
OPTIONS (NODE 'node_name', DBNAME 'database_name')

説明:

|

server_name
|Informix データベース・サーバーに割り当てる名前です。この名前は固有でなければならず、 |連合データベースに定義されている別の server_name と重複してはいけません。server_name は、 |連合データベース内の表スペースの名前と同じにすることはできません。

TYPE server_type
現在構成中のアクセスの対象となるデータ・ソースのタイプを指定します。
注:
|Informix ラッパーの場合は、server_type は informix でなければなりません。 |

VERSION server_version
アクセスしたい Informix データベース・サーバーのバージョンです。サポートされている Informix のバージョンは、5、7、8、および 9 です。

WRAPPER wrapper_name
CREATE WRAPPER ステートメントで指定した名前です。

NODE 'node_name'
server_name が常駐しているノードの名前です。 node_name が Informix sqlhosts ファイル内に定義されている必要があります (ステップ 4 を参照してください)。node_name は、CREATE SERVER SQL ステートメントでオプションとして指定されるものですが、Informix データ・ソースの場合には必須です。この値では、大文字小文字が区別されます。その他のオプションの詳細については、「DB2 SQL 解説書」を参照してください。

DBNAME 'database_name'
アクセスしたい Informix データベースの名前です。

以下は CREATE SERVER ステートメントの例です。

CREATE SERVER asia TYPE informix VERSION 9 WRAPPER informix 
OPTIONS (NODE 'abc', DBNAME 'sales')

FOLD_ID および FOLD_PW サーバー・オプションは、ラッパーがユーザー ID とパスワードを Informix への送信に先立って英大文字または小文字に変換するかどうかに影響します。以下は、FOLD_ID および FOLD_PW サーバー・オプションを指定した CREATE SERVER ステートメントの例です。

CREATE SERVER asia TYPE informix VERSION 9 WRAPPER informix 
OPTIONS (NODE 'abc', DBNAME 'sales', FOLD_ID 'U', FOLD_PW 'U')

6.8.1.8 ステップ 8: ユーザー・マッピングの作成

DB2 連合サーバー上のユーザー ID またはパスワードが Informix データ・ソース上のユーザー ID またはパスワードと異なる場合は、CREATE USER MAPPING ステートメントを使用して、ローカル・ユーザー ID を Informix データ・ソース上で定義されているユーザー ID とパスワードにマップします。以下に例を示します。

CREATE USER MAPPING FOR local_userid SERVER server_name 
OPTIONS (REMOTE_AUTHID 'remode_userid', REMOTE_PASSWORD 'remote_password')

説明:

local_userid
Informix データ・ソース上で定義されているユーザー ID にマップするローカル・ユーザー ID です。

SERVER server_name
CREATE SERVER ステートメントで定義した Informix データ・ソースの名前です。

REMOTE_AUTHID 'remote_userid'
local_userid のマップ先とする Informix データベース・サーバー上のユーザー ID です。この値は、CREATE SERVER ステートメントで FOLD_ID サーバー・オプションに 'U' または 'L' を設定していないかぎり、大文字小文字が区別されます。

REMOTE_PASSWORD 'remote_password'
|remote_userid に関連付けられているパスワードです。 |この値は、CREATE SERVER ステートメントで FOLD_PW サーバー・オプション |に 'U' または 'L' を設定していないかぎり、大文字小文字が区別されます。

以下は CREATE USER MAPPING ステートメントの例です。

CREATE USER MAPPING FOR robert SERVER asia 
OPTIONS (REMOTE_AUTHID 'bob', REMOTE_PASSWORD 'day2night')

DB2 特殊レジスター USER を使用して、CREATE USER MAPPING ステートメントの発行者の許可 ID を REMOTE_AUTHID ユーザー・オプションで指定されているデータ・ソース許可 ID にマップできます。以下は、USER 特殊レジスターが組み込まれている CREATE USER MAPPING ステートメントの例です。

CREATE USER MAPPING FOR USER SERVER asia 
OPTIONS (REMOTE_AUTHID 'bob', REMOTE_PASSWORD 'day2night')

その他のオプションの詳細については、「DB2 SQL 解説書」を参照してください。

6.8.1.9 ステップ 9: 表、視点、および Informix 同義語のニックネームの作成

Informix データ・ソース上にある表、視点、または Informix 同義語ごとにニックネームを割り当てます。ニックネームの長さは 128 文字までが可能です。これらのニックネームは、Informix データ・ソースを照会するときに使用します。サーバー、スキーマ、および表の名前は、二重引用符 (") で囲まないかぎり、DB2 によって英大文字に変換されます。以下は CREATE NICKNAME ステートメントの例です。

CREATE NICKNAME nickname FOR 
			server_name."remote_schema_name"."remote_table_name" 

説明:

nickname
Informix の表、視点、または同義語の識別に使用される固有ニックネームです。

server_name."remote_schema_name"."remote_table_name"
リモート・オブジェクト用の、3 つの部分から構成される ID です。

以下は CREATE NICKNAME ステートメントの例です。

CREATE NICKNAME salesjapan FOR asia."salesdata"."japan"

ニックネームを作成したい表または視点ごとに、このステップを繰り返してください。ニックネームが作成されると、DB2 は接続を使用してデータ・ソース・カタログを照会します。この照会によって、データ・ソースへの接続がテストされます。接続が失敗した場合、エラー・メッセージが表示されます。

CREATE NICKNAME ステートメントの詳細については、「DB2 SQL 解説書」を参照してください。一般的なニックネームの詳細、およびデータ・タイプ・マッピングの検証については、「DB2 管理の手引き」を参照してください。


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