リリース情報


|6.6 Sybase データ・ソースへのアクセス

| |

||Sybase データ・ソースを連合サーバーに追加する前に、Sybase Open Client ソフトウェアを DB2 連合サーバーに |インストールし、構成しておく必要があります。 |Sybase Open Client ソフトウェアのインストール方法については、Sybase データベース・ソフトウェアに |付属の資料に記述されているインストール手順を参照してください。 |インストール手順の一部として、Sybase カタログ・ストアード・プロシージャーが Sybase サーバー |にインストールされていて、Sybase Open Client ライブラリーが DB2 連合サーバーに |インストールされていることを確認してください。

|クライアント・ソフトウェアから Sybase サーバーへの接続の構成の後に、 |Sybase ツールのいずれかを使用して接続のテストを行います。UNIX の場合は isql ツールを、 |Windows の場合は SQL Advantage ツールを使用します。

|連合サーバーをセットアップして、Sybase データ・ソースに保管されているデータにアクセスするには:

  1. |DB2 リレーショナル・コネクト バージョン 7.2 をインストールします。 |6.3.3, DB2 リレーショナル・コネクトのインストールを参照してください。
  2. |Sybase データ・ソースを連合サーバーに追加します。
  3. |Sybase コード・ページを指定します。 |

|この章では、ステップ 2 および 3 が説明されています。

|この章での説明は、Windows NT、AIX、および Solaris オペレーティング環境に適用されます。 |プラットフォーム固有の違いは、その都度示されています。

|6.6.1 連合サーバーへの Sybase データ・ソースの追加

|

|Sybase データ・ソースを連合サーバーに追加するには:

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

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

|6.6.1.1 ステップ 1: 環境変数の設定およびプロファイル・レジストリーの更新 (AIX および Solaris の場合のみ)

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

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

|環境変数を設定するには:

  1. |sqllib/cfg にある db2dj.ini ファイルを |編集し、次の環境変数を設定します。
    | SYBASE="<sybase home directory>"
    | 

    |ここで、<sybase home directory> は Sybase クライアントがインストールされている |ディレクトリーです。

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

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

    |db2set DB2_DJ_INI=$HOME/sqllib/cfg/db2dj.ini

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

    |db2set -g DB2_DJ_INI=$HOME/sqllib/cfg/db2dj.ini

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

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

    |説明:

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

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

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

|6.6.1.2 ステップ 2: Sybase クライアント・ソフトウェアへの DB2 のリンク (AIX および Solaris オペレーティング環境の場合のみ)

|

|Sybase データ・ソースにアクセスできるようにするには、DB2 連合サーバーが |クライアント・ライブラリーにリンク・エディットされていなければなりません。 |リンク・エディット処理は、連合サーバーが通信するデータ・ソースごとに |ラッパーを作成します。 |djxlink スクリプトを実行すると、ラッパー・ライブラリーが |作成されます。 |djxlink スクリプトを実行するには:

|djxlink

|6.6.1.3 ステップ 3: DB2 インスタンスの再生 (AIX および Solaris オペレーティング環境の場合のみ)

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

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

|DB2 (Windows NT サーバー版) の場合:
|NET STOP instance_name
|NET START instance_name

|DB2 (AIX および Solaris サーバー版) の場合:
|db2stop
|db2start
|

|6.6.1.4 ステップ 4: interfaces ファイルの作成およびセットアップ

|interfaces ファイルを作成およびセットアップするには、そのファイルを |作成し、アクセス可能にしなければなりません。 |

  1. |Sybase 提供のユーティリティーを使用して、アクセスしたいすべての Sybase Open Server の |データを含む interfaces ファイルを作成します。 |このユーティリティーの使用法については、Sybase のインストール資料を参照してください。

    |Windows NT では通常、このファイルの名前は sql.ini になります。 |すべてのプラットフォームに共通の名前にするには、 |作成したファイルの名前を sql.ini から interfaces|変更してください。 |名前を sql.ini から interfaces|変更しない場合、IFILE パラメーター、またはステップ 8 で説明されている CONNECTSTRING オプションを |使用しなければなりません。

    |AIX および Solaris システムの場合、このファイルの名前は <instance home>/sqllib/interfaces になります。

  2. |この interfaces ファイルを、DB2 にアクセス可能にします。 |

    |DB2 (Windows NT サーバー版) の場合:
    |このファイルを DB2 インスタンスの %DB2PATH% ディレクトリーに置きます。

    |DB2 (AIX および Solaris サーバー版) の場合:
    |このファイルを DB2 インスタンスの $HOME/sqllib ディレクトリーに |置きます。 |ln コマンドを使用して、 |DB2 インスタンスの $HOME/sqllib ディレクトリーから |そのファイルにリンクします。 |以下に例を示します。

    |ln -s -f /home/sybase/interfaces  /home/db2djinst1/sqllib
    |
    |

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

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

|CREATE WRAPPER CTLIB 

|ここで CTLIB は、 |Sybase Open Client ソフトウェアで使用されるデフォルト・ラッパー名です。 |CTLIB ラッパーは Windows NT、AIX、および Solaris サーバーで使用できます。

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

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

|

|Sybase データ・ソースにアクセスしているときのパフォーマンスを向上させるには、 |DB2_DJ_COMM 環境変数を設定してください。 |この変数は、連合サーバーが初期設定されるときにラッパーをロードするかどうかを |決定します。 |DB2_DJ_COMM 環境変数を設定して、前のステップで指定したラッパーに対応する |ラッパー・ライブラリーを組み込みます。 |以下に例を示します。 |

|DB2 (AIX サーバー版) の場合 :
|db2set DB2_DJ_COMM='libctlib.a' 

|DB2 (Solaris サーバー版) の場合:
|db2set DB2_DJ_COMM='libctlib.so' 
|

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

|ラッパー・ライブラリー名について詳しくは、 |DB2 SQL 解説書」を |参照してください。DB2_DJ_COMM 環境変数について詳しくは、 |管理の手引き」を |参照してください。

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

|

|CREATE SERVER ステートメントを使用して、アクセスしたいデータ・ソースを持つ Sybase サーバーを |それぞれ定義します。 |以下に例を示します。

|CREATE SERVER SYBSERVER TYPE SYBASE VERSION 12.0 WRAPPER CTLIB
|OPTIONS (NODE 'sybnode', DBNAME'sybdb')

|説明:

|SYBSERVER
|Sybase サーバーに割り当てる名前です。 |この名前は固有でなければなりません。

|SYBASE
|アクセスを構成するデータ・ソースのタイプです。 |サポートされているデータ・ソースは Sybase のみです。

|12.0
|アクセスする Sybase のバージョンです。 |サポートされているバージョンは 10.0、11.0、11.1、11.5、11.9、および 12.0 です。

|CTLIB
|CREATE WRAPPER ステートメントで指定したラッパー名です。

|'sybnode'
|SYBSERVER があるノードの名前です。 |interfaces ファイルからノードの値を取得してください。 |この値では、大文字小文字が区別されます。

|ノードの名前がオプションとして指定されていても、 |Sybase データ・ソースにはノード名が必要です。 |その他のオプションの詳細については、「DB2 SQL 解説書」を参照してください。

|'sybdb'
|アクセスする Sybase データベースの名前です。Sybase サーバーからこの名前を取得します。 |

|CTLIB プロトコルおよび DBLIB プロトコルで IGNORE_UDT サーバー・オプションを使用して、 |連合サーバーが、強い型定義を行わなくても UDT を強調する組み込みタイプを判別できるように |するかどうかを指定することができます。このサーバー・オプションは、CTLIB および DBLIB プロトコル |を通じてアクセスされるデータ・ソースにのみ適用されます。有効な値は |以下の通りです。

|'Y'
|UDT がユーザー定義であるという事実を無視し、それらの基底である組み込みタイプを判別する。

|'N'
|UDT のユーザー定義仕様を無視しない。これがデフォルトの設定です。 |

|DB2 はニックネームを作成すると、そのニックネームの指し示すオブジェクト (表、視点、 |ストアード・プロシージャー) に関する情報を探してカタログします。 |情報の検索中に、認識不能のデータ・タイプ (つまり、連合データベースに対応するマップが |行われないデータ型) を持つオブジェクトが見つかる場合があります。 |以下のような認識不能のタイプがあります。 |

|連合サーバーは、認識不能なデータ・タイプを検出すると、エラー・メッセージ SQL3324N を |戻します。ただし、別の動作を設定することもできます。CTLIB や DBLIB プロトコルを通じてアクセス可能な |データ・ソースに関しては、IGNORE_UDT サーバーを設定して、連合データベースが強い型定義のない |認識不能な UDT を検出した場合に、その UDT の基底となる組み込みタイプを判別するようにさせることができます。 |連合データベースが組み込みタイプを認識した場合、連合データベースは |その組み込みタイプに関する情報をカタログに戻します。連合データベースに |強い型定義のない UDT の、基底となる組み込み型を判別させるには、 |IGNORE_UDT を 'Y' に設定してください。

|6.6.1.8 ステップ 8: オプション: CONNECTSTRING サーバー・オプションの設定

|タイムアウトしきい値、interfaces ファイルのパスと名前、および interfaces ファイルの |パケット・サイズを指定します。 |Sybase Open Client は、タイムアウトしきい値を使用して、長期間実行される照会および |応答に割り込みます。 |CREATE SERVER OPTION DDL ステートメントの CONNECTSTRING オプションを |使用して、このしきい値を DB2 に設定することができます。 |CONNECTSTRING オプションで、以下の項目を指定します。

|   .-;-------------------------------.
|   V                                 |
|>>---+-----------------------------+-+-------------------------><
|     +-TIMEOUT-- = --seconds-------+
|     +-LOGIN_TIMEOUT-- = --seconds-+
|     +-IFILE-- = --"string"--------+
|     +-PACKET_SIZE-- = --bytes-----+
|     '-;---------------------------'
| 
| 
|

|TIMEOUT
|SQL ステートメントで、Sybase Open Client からの |応答を DB2 ユニバーサル・データベースが待機する秒数を指定します。 |seconds の値は、DB2 ユニバーサル・データベースの整数範囲にある正の整数です。 |指定するタイムアウトの値は、使用しているラッパーによって異なります。 |Windows NT、AIX、および Solaris サーバーはすべて、DBLIB ラッパーを使用することができます。 |DBLIB ラッパーのデフォルト値は 0 です。 |Windows NT、AIX、および Solaris サーバーの場合、この DBLIB のデフォルト値によって、 |DB2 ユニバーサル・データベースは応答が返されるまで無期限に待ち続けます。

|LOGIN_TIMEOUT
|ログイン要求に対する Sybase Open Client からの |応答を DB2 ユニバーサル・データベースが待機する秒数を指定します。 |デフォルト値は TIMEOUT の場合と同じです。

|IFILE
|Sybase Open Client の interfaces ファイルのパスと名前を指定します。 |string で示されるパスは二重引用符 (") で囲む必要があります。 |Windows NT サーバーの場合、デフォルトは %DB2PATH% です。 |AIX および Solaris サーバーの場合、デフォルト値は DB2 ユニバーサル・データベース・インスタンスの |ホーム・ディレクトリーにある sqllib/interfaces です。

|PACKET_SIZE
|interfaces ファイルのパケット・サイズをバイト単位で指定します。 |データ・ソースが、指定されたパケット・サイズをサポートしていない場合、 |接続は失敗します。 |各レコードのサイズが非常に大きいとき (例えば、大きな表に行を挿入するとき) に |パケット・サイズを増やすと、パフォーマンスは大幅に向上します。 |byte は数値です。 |詳しくは、Sybase 解説書を参照してください。 |

|

|Windows NT サーバーで、タイムアウト値を 60 秒に設定し、 |interfaces ファイルを C:¥etc¥interfaces に設定するには、 |以下のステートメントを使用します。

|CREATE SERVER OPTION connectstring FOR SERVER sybase1
|SETTING 'TIMEOUT=60;LOGIN_TIMEOUT=5;IFILE="C:¥etc¥interfaces"'
| 

|AIX および Solaris サーバーで、タイムアウト値を 60 秒に設定し、 |interfaces ファイルを /etc/interfaces に設定するには、 |以下のステートメントを使用します。

|CREATE SERVER OPTION connectstring FOR SERVER sybase1
|SETTING 'TIMEOUT=60;PACKET_SIZE=4096;IFILE="/etc/interfaces"'
| 

|6.6.1.9 ステップ 9: ユーザー・マッピングの作成

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

|CREATE USER MAPPING FOR DB2USER SERVER SYBSERVER
|OPTIONS ( REMOTE_AUTHID 'sybuser', REMOTE_PASSWORD 'day2night')

|説明:

|DB2USER
|Sybase データ・ソースで定義されたユーザー ID にマップされるローカル・ユーザー ID です。

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

|'sybuser'
|DB2USER のマップ先である、Sybase データ・ソースでのユーザー ID です。 |この値については大文字小文字が区別されます。

|'day2night'
|'sybuser' に関連付けられているパスワードです。 |この値については大文字小文字が区別されます。 |

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

|6.6.1.10 ステップ 10: 表および視点のニックネームの作成

|Sybase データ・ソースにある視点または表ごとにニックネームを割り当てます。 |Sybase データ・ソースを照会するとき、これらのニックネームを使用します。 |Sybase ニックネームでは、大文字小文字が区別されます。 |スキーマ名と表名はどちらも二重引用符 (") で囲んでください。 |以下は CREATE NICKNAME ステートメントの例です。

|CREATE NICKNAME SYBSALES FOR SYBSERVER."salesdata"."europe"

|説明:

|SYBSALES
|Sybase 表または視点の固有のニックネームです。 |

|

|SYBSERVER."salesdata"."europe"
|以下の形式に従う、3 つの部分からなる ID です。

|data_source_name."remote_schema_name"."remote_table_name" |

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

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

|6.6.2 Sybase コード・ページの指定

|

|このステップは、DB2 連合サーバーと Sybase サーバーが異なるコード・ページを |使用している場合のみ必須です。 |DB2 と同じコード・セットを使用しているデータ・ソースでは、変換は必要ありません。 |以下の表は、NLS (各国語サポート) の共通コード・ページと |同等の Sybase オプションを示しています。 |Sybase データ・ソースが、これらの同等の値に対応するよう構成されている必要があります。 |あるいは、クライアント・コードが一致しない部分を見つけ、エラーとしてフラグを立てるか、 |データ自体の意味を使用してデータをマップすることができなければなりません。 |ソース・コード・ページからターゲット・コード・ページへの変換表が見つからない場合、 |DB2 はエラー・メッセージを出します。 |詳しくは、Sybase の資料を参照してください。
|

|表 2. Sybase コード・ページ・オプション

コード・ページ 同等の Sybase オプション
850 cp850
897 sjis
819 iso_1
912 iso_2
1089 iso_6
813 iso_7
916 iso_8
920 iso_9


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