付録 B, ディレクトリー・カスタマイズ・ワークシートには、収集する必要のある情報が示されています。 そのワークシートのコピーをとって、ご使用のシステム値を記入しておくと便利です。
ノード・ディレクトリーには、次の情報を指定することができます。
形式は、1〜8 桁の単一バイト英数字です。(番号記号 (#)、 アットマーク (@)、ドル記号 ($)、および下線 (_) が含まれます。) 下線または数字で始めることはできません。
DB2 (OS/390 版) リモート・ホストの場合、ホスト名は、分散データ機能 (DDF) の起動時に DSNL004I メッセージ (DOMAIN=hostname) に示されます。
DB2 (OS/390 版) リモート・ホストの場合、 ポート番号はブートストラップ・データ・セット (BSDS) で定義され、分散データ機能 (DDF) の起動時に出される DSNL004I メッセージ (TCPPORT=portnumber) で提供されます。
注: | TCP/IP 接続での 2 フェーズ・コミット再同期操作で用いられる 2 番目のポートは、 サーバーにより割り当てられます。 たとえば、DB2 ユニバーサル・データベース (OS/390 版) ブートストラップ・データ・セットの場合、 DB2 ユニバーサル・データベース (OS/390 版) へのインバウンド接続の再同期でのみ使用されるポート番号 (RESPORT) が割り当てられます。サービス名を定義する必要はありません。 |
DCS ディレクトリー内では、以下の情報を指定することができます。
形式は、1〜8 桁の単一バイト英数字です。(番号記号 (#)、 アットマーク (@)、ドル記号 ($)、および下線 (_) が含まれます。) 下線または数字で始めることはできません。
LOCATION NAME は、TSO にログインした後で、 利用可能ないずれかの照会ツールを使って以下に示す SQL 照会を発行することで判別できます。
select current server from sysibm.sysdummy1
さらに、LOCATION NAME は MVS/ESA ブートストラップ・データ・セット (BSDS) でも定義されており、 DSNL004I メッセージ (LOCATION=location) に表示されます。 これは、分散データ機能 (DDF) の起動時に書き込まれます。
LOCATION NAME は、TSO にログインした後で、 利用可能ないずれかの照会ツールを使って以下に示す SQL 照会を発行することで判別できます。
select current server from sysibm.sysdummy1
さらに、LOCATION NAME はブートストラップ・データ・セット (BSDS) でも定義されており、 DSNL004I メッセージ (LOCATION=location) に表示されます。 これは、分散データ機能 (DDF) の起動時に書き込まれます。
書式: AR <application_requester_name>
省略時値は、DB2 コネクトのアプリケーション・リクエスターです。
SQL30000N SQL30040N SQL30050N SQL30051N SQL30053N SQL30060N SQL30070N SQL30071N SQL30072N SQL30073N SQL30074N SQL30090N
,D を指定してもしなくても、次の SQLCODE の場合は切断を起こします。
SQL30020N SQL30021N SQL30041N SQL30061N SQL30081N
これらのコードの説明については、メッセージ解説書 を参照してください 。
注: | エラーのために DB2 コネクトが切断すると、自動的にロー ルバッ クされます。 |
そのアプリケーションは、サーバーへの接続が終了したことを示す 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 サポートを使用不可にする、 新しいプロファイル (環境またはレジストリー) 変数 DB2SYSPLEX_SERVER が用意されています。
たとえば、次の 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 番目の定位置パラメーターであることを示しています。
日付マスクを有効にするには、以下の条件をすべて満たしていなければなりません。
たとえば、以下の日付マスクはすべて有効です。
"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
日付形式マスクが無効でもエラーは出されません。 マスクが無視されるだけです。 日付マスクが有効であっても、そのマスクが必ず使用されるとは限りません。 有効な日付マスクに基づく日付形式変換は、以下の条件をすべて満たしている場合にのみ実行されます。
MVS パスワードの変更には、 次のように CHGPWD_SDN を使って DCS データベース・ディレクトリーをカタログ化する例が収められています。
catalog dcs database db1 as dsn_db_1 parms ",,,,,,,CHGPWD_SDN=pempgm"
",,,,,,,,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 コネクトに指示します。 この上書きには以下の処理が関係しています。
注:
特定の両方向 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 |
システム・データベース・ディレクトリーには、次の情報を指定することができます。
形式は、1〜8 桁の単一バイト英数字です。(番号記号 (#)、 アットマーク (@)、ドル記号 ($)、および下線 (_) が含まれます。) 下線または数字で始めることはできません。
各データベースについて、3 つのディレクトリー (ノード・ディレクトリー、 DCS ディレクトリー、およびシステム・データベース・ディレクトリー) のおのおのに少なくとも 1 つの項目を定義する必要があります。 場合によっては、データベースに複数の項目を定義したいこともあります。
たとえば、ホストまたは AS/400 データベース・サーバーから移植されたアプリケーションについては SQLCODE マッピングをオフにして、 クライアント / サーバー環境用に開発されたアプリケーションについては省略時のマッピングを受け入れることができます。 これは次のように行います。
両方の別名とも同じデータベースにアクセスし、一方は SQLCODE マッピングを用いて、他方は SQLCODE マッピングなしです。