使用者の手引き

情報の収集

付録 B, ディレクトリー・カスタマイズ・ワークシートには、収集する必要のある情報が示されています。 そのワークシートのコピーをとって、ご使用のシステム値を記入しておくと便利です。

ノード・ディレクトリー

ノード・ディレクトリーには、次の情報を指定することができます。

ノード名
リモート・データベースがあるホストまたは AS/400 データベース・サーバー・システムのニックネーム。 この名前は、ユーザー定義です。 同じノード名を「ノード・ディレクトリー・パラメーター」表および「システム・データベース・ディレクトリー・パラメーター」表の両方に記入します。

形式は、1〜8 桁の単一バイト英数字です。(番号記号 (#)、 アットマーク (@)、ドル記号 ($)、および下線 (_) が含まれます。) 下線または数字で始めることはできません。

プロトコル
APPC または TCPIP を指定できます。

記号宛先名
APPC ノードを定義する場合、「CPI 通信サイド情報」表に指定されている記号宛先名を使用します (たとえば、Microsoft の SNA サーバーを使用する場合は、CPI-C 記号宛先プロパティーの名前)。 この値は、SNA をインストールまたは構成 (あるいはこれら両方) を行った人から入手する必要があります。 記号宛先名には大文字小文字の区別があります (大文字と小文字のミスマッチがあると、 SQL1338 戻りコードが戻されることがあります)。

機密保護タイプ
実行される機密保護検査のタイプ。 APPC ノードの場合、有効なオプションは SAMEPROGRAM、 および NONE です。 TCP/IP ノードでは、SECURITY SOCKS は、ノードで SOCKS を使用できる状態にするように指定するオプションです。 この場合、SOCKS を使用可能にするには、SOCKS_NS および SOCKS_SERVER 環境変数を設定しなければなりません。 詳細については、機密保護およびコマンド解説書 を参照してください。

TCP/IP リモート・ホスト名または IP アドレス
TCP/IP ノードを定義している場合、リモート TCP/IP ホスト名またはリモート TCP/IP アドレス。 ホスト名が指定される場合、DB2 コネクト・ワークステーションで、 ドメイン・ネーム・サーバー (DNS) の検索を介して、またはローカル TCP/IP ホスト・ファイル内の項目によって解決されなければなりません。

DB2 (OS/390 版) リモート・ホストの場合、ホスト名は、分散データ機能 (DDF) の起動時に DSNL004I メッセージ (DOMAIN=hostname) に示されます。

TCP/IP サービス名またはポート番号
TCP/IP ノードを定義している場合、リモート TCP/IP サービス名またはポート番号。 これは、リモート・ホストで TCP/IP に定義しなければなりません。 ポート番号 446 を DRDA 用の省略時ポート番号として登録しておく必要があります。

DB2 (OS/390 版) リモート・ホストの場合、 ポート番号はブートストラップ・データ・セット (BSDS) で定義され、分散データ機能 (DDF) の起動時に出される DSNL004I メッセージ (TCPPORT=portnumber) で提供されます。
注:TCP/IP 接続での 2 フェーズ・コミット再同期操作で用いられる 2 番目のポートは、 サーバーにより割り当てられます。 たとえば、DB2 ユニバーサル・データベース (OS/390 版) ブートストラップ・データ・セットの場合、 DB2 ユニバーサル・データベース (OS/390 版) へのインバウンド接続の再同期でのみ使用されるポート番号 (RESPORT) が割り当てられます。サービス名を定義する必要はありません。

DCS ディレクトリー

DCS ディレクトリー内では、以下の情報を指定することができます。

データベース名
ホストまたは AS/400 データベース・サーバーのユーザー定義のニッ クネーム。同じデータベース名を「DCS ディレクトリー・パラメーター」表および「システム・データベース・ディレクトリー・パラメーター」表の両方に記入します。

形式は、1〜8 桁の単一バイト英数字です。(番号記号 (#)、 アットマーク (@)、ドル記号 ($)、および下線 (_) が含まれます。) 下線または数字で始めることはできません。

宛先データベース名
ホストまたは AS/400 データベース・サーバー・システム上のデータベース。 以下のとおりです。

MVS/ESA
DB2 ユニバーサル・データベース (OS/390 版) サブシステム。その LOCATION NAME によって識別される。

LOCATION NAME は、TSO にログインした後で、 利用可能ないずれかの照会ツールを使って以下に示す SQL 照会を発行することで判別できます。

   select current server from sysibm.sysdummy1

さらに、LOCATION NAME は MVS/ESA ブートストラップ・データ・セット (BSDS) でも定義されており、 DSNL004I メッセージ (LOCATION=location) に表示されます。 これは、分散データ機能 (DDF) の起動時に書き込まれます。

OS/390
DB2 ユニバーサル・データベース (OS/390 版) サブシステム。その LOCATION NAME によって識別される。

LOCATION NAME は、TSO にログインした後で、 利用可能ないずれかの照会ツールを使って以下に示す SQL 照会を発行することで判別できます。

   select current server from sysibm.sysdummy1

さらに、LOCATION NAME はブートストラップ・データ・セット (BSDS) でも定義されており、 DSNL004I メッセージ (LOCATION=location) に表示されます。 これは、分散データ機能 (DDF) の起動時に書き込まれます。

VSE または VM
データベース名 (DBNAME)

OS/400
関係データベース名 (RDBNAME)

その他
OS/2、Windows NT、Windows 2000、および UNIX ベースのシステムの場合は、 データベース・ディレクトリーにあるデータベース別名。

アプリケーション・リクエスター名
SQL 要求を DRDA アプリケーション・サーバーへ送るアプリケーション・リクエスター・ライブラリーの名前。 このアプリケーション・リクエスターは、アプリケーション・プログラムに代わって要求を処理します。

書式: AR <application_requester_name>

省略時値は、DB2 コネクトのアプリケーション・リクエスターです。

パラメーター・ストリング
省略時値を変更したいときは、次のパラメーターの一部または全部を次の順序で指定します。 パラメーター・ストリングはクライアント構成アシスタントを使って設定することができません。 また、CLP の使用時には、パラメーター・ストリングを単一引用符 (OS/2 や Windows NT などの場合)、 あるいは二重引用符 (AIX などの場合) で囲まなければなりません。

マッピング・ファイル
省略時の SQLCODE マッピングを上書きする SQLCODE マッピング・ファイルの名前。 SQLCODE マッピングをオフにするときは、NOMAP を指定します。 詳細については、SQLCODE マッピングを参照してください。

,D
これは 2 番目の定位置パラメーターです。 このパラメーターを指定すると、以下の SQLCODES のいずれかが戻されるときにアプリケーションはホストまたは AS/400 データベース・サーバー・データベースから切断します。

   SQL30000N
   SQL30040N
   SQL30050N
   SQL30051N
   SQL30053N
   SQL30060N
   SQL30070N
   SQL30071N
   SQL30072N
   SQL30073N
   SQL30074N
   SQL30090N

,D を指定してもしなくても、次の SQLCODE の場合は切断を起こします。

   SQL30020N
   SQL30021N
   SQL30041N
   SQL30061N
   SQL30081N

これらのコードの説明については、メッセージ解説書 を参照してください 。
注:エラーのために DB2 コネクトが切断すると、自動的にロー ルバッ クされます。

,,INTERRUPT_ENABLED
これは 3 番目の定位置パラメーターです。 DB2 コネクト・ワークステーションの DCS ディレクトリーで INTERRUPT_ENABLED が構成されている場合、 ホストまたは AS/400 データベース・サーバーに接続している状態でクライアント・アプリケーションが割り込みを発行すると、 DB2 コネクトは、接続を除去し、作業単位をロールバックすることによって割り込みを実行します。 この割り込み動作は、AIX、OS/2、Windows NT、および Windows 2000 上でサポートされます。

そのアプリケーションは、サーバーへの接続が終了したことを示す sqlcode (-30081) を受け取ります。 アプリケーションが追加のデータベース要求を処理するには、 その後でホストまたは AS/400 データベース・サーバーへの新しい接続を確立する必要があります。 AIX V4.1 以上、SNA Server V3.1 以上、OS/2、Windows NT、および Windows 2000 以外のプラットフォームでは、 アプリケーションが割り込み要求を受信したときの、DB2 コネクトによる自動切断オプションはサポートされていません。
注:このサポートは、任意のプラットフォームでの TCP/IP 接続に対して機能します。 クライアントがソケットを kill する場合がありますが、サーバー処理系によって未解決の受信になるかどうかが決まります。 DB2 ユニバーサル・データベース (OS/390 版) は非同期のソケット呼び出しを利用するので、接続の切断を検出し、 進行中の長時間実行 SQL ステートメントをロールバックすることができます。  

,,,,,SYSPLEX
これは 6 番目の定位置パラメーターで、特定のデータベースに対して DB2 コネクト SYSPLEX サポートを明示的に使用可能にするときに使用します。

ワークステーション・レベルで SYSPLEX サポートを使用不可にする、 新しいプロファイル (環境またはレジストリー) 変数 DB2SYSPLEX_SERVER が用意されています。

,,,,,,LOCALDATE="<value>"
これは 7 番目の定位置パラメーターで、DB2 コネクトの日付形式サポートを使用可能にするときに使用します。 これは、<value> に対する日付マスクにより実装されます。以下のとおりです。

たとえば、次の CLP (コマンド行プロセッサー) ステートメントを発行したとします。

   catalog appc node nynode remote nycpic security program 
   catalog dcs database nydb1 as new_york
   catalog database nydb1 as newyork1 at node nynode 
        authentication dcs

ホスト・データベースにアクセスするためにデータベース別名 newyork1 を使用します。 日付マスクは指定されていませんので、データ変換は行われません。

ここで新しい日付形式サポートを使用すると、以下の CLP コマンドを発行することができます。 この場合、CLP が使用されており、パラメーター・ストリング自体が二重引用符を使って指定されているため、 LOCALDATE 値は 2 組の二重引用符に囲まれています。 また、LOCALDATE 指定から二重引用符が外されないようオペレーティング・システムのエスケープ文字 "\" (円記号) が使用されていることにも注目してください。 パラメーター・ストリングの指定も参照してください。

   catalog dcs database nydb2 as new_york
        parms \",,,,,,LOCALDATE=\"\"YYYYMMDD\"\"\"
   catalog database nydb2 as newyork2 at node nynode
        authentication dcs

データベース別名 "newyork2" は同じホスト・データベースへのアクセスを提供しますが、日付形式マスクも指定します。 この例は、日付形式マスクが LOCALDATE キーワードを使って指定されること、 また日付形式マスクが DCS ディレクトリー・エントリーの PARMS フィールドの中で 7 番目の定位置パラメーターであることを示しています。

日付マスクを有効にするには、以下の条件をすべて満たしていなければなりません。

  1. Y、M、および D の数列はそれぞれ 1 回しか認められていません。 ここで Y は年、M は月、また D は日を表す数字です。
  2. 1 つの数列における Y の最大数は 4 個です。
  3. 1 つの数列における M の最大数は 2 個です。
  4. 1 つの数列における D の最大数は 2 個です。

たとえば、以下の日付マスクはすべて有効です。

   "YYyyMmDd"   - Y, M, and D digits are case-insensitive
   "MM+DD+YYYY" - OK to have a mask longer than 10 bytes
                  and to have characters other than Y, M,
                  and D in the mask
   "abcYY+MM"   - OK not to have a sequence of D's

以下の日付マスクはすべて無効です。

   "YYYYyMMDD"  - invalid there are 5 Y's in a sequence
   "YYYYMDDM"   - invalid there are 2 sequences of M's

日付形式マスクが無効でもエラーは出されません。 マスクが無視されるだけです。 日付マスクが有効であっても、そのマスクが必ず使用されるとは限りません。 有効な日付マスクに基づく日付形式変換は、以下の条件をすべて満たしている場合にのみ実行されます。

  1. SQL エラーがない。
  2. 出力が、ISO 準拠形式 (ISO および JIS) の日付値である。
  3. 出力データ域の長さが最大 10 バイトある。 この長さは、データ形式変換を実行しない場合でも、データ値を出力データ域に保管するのに最低必要なサイズです。 この要件は、日付形式マスクが 10 バイトより短いときにも当てはまります。
  4. DCS ディレクトリー・エントリーで有効な日付形式マスクが指定されており、そのマスクが出力データ領域に保管可能である。

,,,,,,,CHGPWD_SDN=<name>
これは 8 番目の定位置パラメーターで、 パスワード有効期限管理 (PEM) で使用する記号宛先名を指定します。 <name> に指定される値では、大文字小文字が区別されます。

MVS パスワードの変更には、 次のように CHGPWD_SDN を使って DCS データベース・ディレクトリーをカタログ化する例が収められています。

   catalog dcs database db1 as dsn_db_1 parms
      ",,,,,,,CHGPWD_SDN=pempgm"

,,,,,,,,BIDI=<ccsid>
これは 9 番目の定位置パラメーターで、 省略時のサーバー・データベース BiDi CCSID の上書きに使用する両方向 (BiDi) CCSID を指定します。 以下に例を示します。
    ",,,,,,,,BIDI=xyz"

xyz は上書きする CCSID を表しています (1 を参照)。

サポートされている BiDi CCSID のリスト、およびそれらのストリング・タ イプについては、 管理の手引き を参照してください。

BiDi データをさまざまなプラットフォームで正しく処理するには、以下の BiDi 属性が必要です。

プラットフォームによって省略時値が異なるため、 DB2 データをあるプラットフォームから別のプラットフォームに送信するときに問題が生じます。 たとえば、Windows プラットフォームでは LOGICAL UNSHAPED データを使用しますが、 MVS および OS/390 では通常 SHAPED VISUAL データ形式を使用します。 そのため、BiDi 属性のサポートがないと、 MVS 版または OS/390 版の DB2 から Windows 版の DB2 コネクトに送信されるデータは正しく表示されません。

DB2 コネクトとサーバー上のデータベースとの間でデータを交換する 場合、 通常、着信データの変換を実行するのは受信側です。普通は、同じ変換が、通常のコード・ページ変換の拡張である、BiDi のレイアウト変換にも適用されます。 ただし、現在のところ BiDi 特有の CCSID または BiDi レイアウト変換をサポートしているホスト DB2 製品はありません。 そのため、DB2 コネクトでは、サーバー・データベースから受信したデータに加えて、 サーバー・データベースに送信するデータに対しても BiDi レイアウト変換を実行するオプション機能が追加されました。

サーバー・データベースに送信するデータに対して DB2 コネクトが BiDi レイアウト変換を実行するには、 サーバー・データベースの BiDi CCSID を上書きする必要があります (2 を参照)。このことは、サーバー・データベースに対応する DCS データベース・ディレクトリー・エントリーの PARMS フィールドで、BIDI パラメーターを使って行います。

この機能については、例を使って説明します。

CCSID 62213 (BiDi ストリング・タイプ 5) を実行しているヘブライ語の DB2 クライアントが、 CCSID 424 (BiDi ストリング・タイプ 4) を実行している DB2 ホスト・データベースにアクセスするとします。 ただし、DB2 ホスト・データベースに格納されているデータは CCSID 8616 (BiDi ストリング・タイプ 6) であることが分かっています。

この場合、2 つの問題が生じます。 まず、CCSID 424 と 8616 の間で BiDi ストリング・タイプがどのように異なるかを DB2 ホスト・データベースは理解していません。 次に、DB2 ホスト・データベースは 62213 という DB2 クライアント CCSID を識別できません。 DB2 ホスト・データベースがサポートするのは、 CCSID 62213 と同じコード・ページに基づく CCSID 862 だけです。

DB2 ホスト・データベースに送信されるデータが BiDi ストリング・タイプ 6 形式になっていることを確認する必要があります。 また、DB2 ホスト・データベースから受信するデータに対して BiDi レイアウト変換を実行する必要があることを DB2 コネクトに知らせなければなりません。 DB2 ホスト・データベースに対しては次のカタログを使用します。

   catalog dcs database nydb1 as TELAVIV parms ",,,,,,,,BIDI=8616"

ここでは、DB2 ホスト・データベース CCSID 424 を 8616 に上書きするよう DB2 コネクトに指示します。 この上書きには以下の処理が関係しています。

  1. DB2 コネクトが CCSID 862 を使って DB2 ホスト・データベースに接続する。
  2. DB2 ホスト・データベースに送信するデータに対して、DB2 コネクトが、 CCSID 62213 (BiDi ストリング・タイプ 5) から CCSID 62221 (BiDi ストリング・タイプ 6) への BiDi レイアウト変換を実行する。
  3. DB2 ホスト・データベースから受信したデータに対して、DB2 コネクトが、 CCSID 8616 (BiDi ストリング・タイプ 6) から CCSID 62213 (BiDi ストリング・タイプ 5) への BiDi レイアウト変換を実行する。

注:

  1. BIDI パラメーターを有効にするには、 環境変数またはレジストリー値 DB2BIDI を YES に設定しなければなりません。

  2. DB2 ホスト・データに送信するデータに対して DB2 コネクトがレイアウト変換を実行するようにするには、 たとえ CCSID を上書きする必要がない場合でも、 DCS データベース・ディレクトリーの PARMS フィールドに BIDI パラメーターを追加しなければなりません。 その場合、CCSID には省略時の DB2 ホスト・データベース CCSID を提供してください。

  3. 状況によっては、両方向の CCSID を使うことにより SQL 照会自体が変更され、 DB2 サーバーで認識されなくなることがあります。 特に、他のストリング・タイプが使用可能な場合、 IMPLICIT CONTEXTUAL および IMPLICIT RIGHT-TO-LEFT CCSID の使用は避けてください。 SQL 照会に引用符付き文字列が含まれている場合、 CONTEXTUAL CCSID を使用すると予期せぬ結果を招くことがあります。 SQL ステートメントでは引用符付き文字列の使用を避け、 可能であれば代わりにホスト変数を使用してください。

    特定の両方向 CCSID を使用したときにこれらの推奨処置では修正できない問題が生じる場合、 環境変数またはレジストリー値 DB2BIDI を NO に設定する必要があります。

パラメーター・ストリングの指定

指定できるパラメーター・ストリングの例をいくつか示します。

たとえば、以下のいずれかを指定することができます。 "\" (円記号) はオペレーティング・システムのエスケープ文字を表します。

AIX の場合:

   NOMAP
   /u/username/sqllib/map/dcs1new.map,D
   ,D
   ,,INTERRUPT_ENABLED
   NOMAP,D,INTERRUPT_ENABLED,,,SYSPLEX,LOCALDATE=\"\"YYMMDD\"\",,

OS/2、Windows NT、Windows 2000 の場合:

    NOMAP
    d:\sqllib\map\dcs1new.map,D
    ,,INTERRUPT_ENABLED
    NOMAP,D,INTERRUPT_ENABLED,,,SYSPLEX,LOCALDATE=\"\"YYMMDD\"\",,

別の方法として、パラメーター・ストリングを指定せずに省略時値を受け入れることもできます。
注:パラメーター・ストリングに LOCALDATE マスクを指定するときは 2 組の二重引用符を指定する必要があるため、 オペレーティング・システムのエスケープ文字 "\" (円記号) を使用しなければなりません。例を示します。

   db2 catalog dcs db x as y parms \",,,,,,LOCALDATE=\"\"YYMMDD\"\"\"
結果として、次の DCS ディレクトリー・エントリーになります。

   DCS 1 entry:
    Local database name                = X
    Target database name               = Y
    Application requestor name         =
    DCS parameters                     = ,,,,,,LOCALDATE="YYMMDD"
    Comment                            =
    DCS directory release level        = 0x0100

システム・データベース・ディレクトリー

システム・データベース・ディレクトリーには、次の情報を指定することができます。

データベース名
「DCS ディレクトリー・パラメーター (DCS Directory Parameter)」表に記入したのと同じ値。

データベース別名
ホストまたは AS/400 データベース・サーバーの別名。 この名前は、データベースにアクセスするアプリケーション・プログラムによって使用されます。 省略時設定では、データベース名について指定した値が使われます。

形式は、1〜8 桁の単一バイト英数字です。(番号記号 (#)、 アットマーク (@)、ドル記号 ($)、および下線 (_) が含まれます。) 下線または数字で始めることはできません。

ノード名
「ノード・ディレクトリー・パラメーター (Node Directory Parameter)」表に記入したのと同じ値。

認証
ユーザー名およびパスワードの検証をどこで行うかを指定します。 有効なオプションは、SERVERSERVER_ENCRYPTCLIENTDCEDCS、および DCS_ENCRYPT です。 詳細については、機密保護を参照してください。

同一のデータベースへの複数項目の定義

各データベースについて、3 つのディレクトリー (ノード・ディレクトリー、 DCS ディレクトリー、およびシステム・データベース・ディレクトリー) のおのおのに少なくとも 1 つの項目を定義する必要があります。 場合によっては、データベースに複数の項目を定義したいこともあります。

たとえば、ホストまたは AS/400 データベース・サーバーから移植されたアプリケーションについては SQLCODE マッピングをオフにして、 クライアント / サーバー環境用に開発されたアプリケーションについては省略時のマッピングを受け入れることができます。 これは次のように行います。

両方の別名とも同じデータベースにアクセスし、一方は SQLCODE マッピングを用いて、他方は SQLCODE マッピングなしです。


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