既知の問題と解決策

- および + 文字を含む列の索引を持つ IXF ファイルへのエクスポート

IXF ファイル・フォーマットおよび SELECT * 文節を使って export コマンドが発行されると、適切な場合、索引情報が収集されます。

問題

索引に指定された列名に - または + 文字が含まれる場合、索引情報は収集されず、SQL コード SQL27984W が出されます。エクスポートは完了し、エクスポートされるデータは影響を受けません。 しかし、索引情報は IXF ファイルに保管されません。

予備手段

CREATE パラメーターを指定した import コマンドを使用して表を再作成する場合、索引は再作成されません。 索引を別個に作成するには、db2look ユーティリティーを使用します。

db2ReadLog API 呼び出し時の CLI0116E または SQL0428N エラー

問題

アプリケーションがデータベースから切断されるときに、その切断前にコミットまたはロールバックが実行されていない場合、アプリケーションから db2ReadLog API を呼び出すと、以下に示すエラーが出される場合があります。

予備手段 1

非組み込み SQL アプリケーションの場合、db2ReadLog API の呼び出し前に自動コミット・モードをオンに設定します。

予備手段 2

db2ReadLog API の呼び出し後、かつデータベースからの切断前に、COMMIT または ROLLBACK ステートメントを発行します。

"db2gcf -k" コマンドが DB2 UDB Workgroup Server Edition で失敗する

問題

db2gcf コマンドは、通常は HA (高可用性) クラスターなどにある自動化スクリプトから、DB2 Universal Database(TM) (UDB) インスタンスを開始、停止、またはモニターします。

DB2(R) UDB Workgroup Server 上で -k パラメーターを指定して db2gcf システム・コマンドを使用すると、障害が発生します。

予備手段

"db2gcf -k" コマンドは、DB2 UDB Enterprise Server Edition でのみ有効で、 DB2 UDB Workgroup Server Edition では無効です。

DRDA ラッパーからの SQL1224 エラー (AIX)

32 ビット DB2 Universal Database (UDB) サーバーが AIX(R) システム上で実行されている場合に、その同じシステム上で実行されているアプリケーションに DRDA(R) ラッパーを介するローカル・データベース接続が複数あると、そのアプリケーションは以下のエラーを受け取ることがあります。

SQL1822N  Unexpected error code "-1224" received from 
data source "W3_SERVER2". 
Associated text and tokens are 
  func="DriverConnect" 
  msg="SQL1224N  A database agent could not be started to 
                 service a request, or was terminated as 
                 a result of a database system shutdown 
                 or a force command. "
SQLSTATE=560BD

このエラーを回避するには、フェデレーテッド構成ファイル (instance_directory/cfg/db2dj.ini) に以下の項目を記述してください。

EXTSHM=ON
注:
フェデレーテッド構成ファイルに項目を追加する場合、変更内容を有効にするには、DB2 UDB を停止してから再始動しなければなりません。

代わりに、ローカル DB2 UDB データベースを TCP/IP ノード上にあるものとしてカタログすることもできます。たとえば次のようにします。

CATALOG TCPIP NODE my_node REMOTE my_host SERVER 123;
CATALOG DB mydb AT NODE my_node;
CREATE WRAPPER drda;
CREATE SERVER my_server TYPE DB2/UDB VERSION 8 WRAPPER drda
   AUTHORIZATION "my_id" PASSWORD "my_pw"
   OPTIONS(ADD DBNAME 'MYDB');

Microsoft Visual Studio .NET Framework 1.1 でホット・キーが作動しない

Microsoft(R) Visual Studio .NET Framework 1.1 でホット・キーが作動しない場合は、Microsoft 社の Web サイトからホット・フィックスをダウンロードできます。ホット・フィックスは Microsoft サポート技術情報の文書 Q836745 中にあります。

中国語 (簡体字) ロケール (AIX)

AIX では、以下の環境で中国語 (簡体字) ロケール Zh_CN にバインドされたコード・セットが変更されています。

コード・セットは、GBK (コード・ページ 1386) から GB18030 (コード・ページ 5488 または 1392) に変更されました。 DB2 Universal Database (UDB) for AIX はもともと GBK コード・セットをサポートしており、Unicode を介して GB18030 コード・セットをサポートしているため DB2 UDB での Zh_CN ロケールのデフォルトのコード・セットは ISO 8859-1 (コード・ページ 819) になります。操作によっては、このロケールのデフォルトの地域はアメリカ合衆国 (US) にもなります。

この制約事項に対する予備手段として、以下の 2 通りのオプションがあります。

最初のオプションを使用する場合、以下のコマンドを発行します。

db2set DB2CODEPAGE=1386
db2set DB2TERRITORY=86
db2 terminate
db2stop
db2start

2 番目のオプションを使用する場合、ロケールを Zh_CN から ZH_CN または zh_CN に変更します。 ZH_CN ロケールのコード・セットは Unicode (UTF-8) であるのに対して、 zh_CN ロケールのコード・セットは eucCN (コード・ページ 1383) です。

中国語 (簡体字) ロケール (Red Hat Linux)

Red Hat Enterprise Linux(TM) [RHEL] バージョン 2.1 および 3 を含む、Red Hat バージョン 8 以降では、中国語 (簡体字) 用のデフォルトのコード・セットが、GBK (コード・ページ 1386) から GB18030 (コード・ページ 5488 または 1392) に変更されました。

DB2 Universal Database (UDB) for Linux はもともと GBK コード・セットをサポートしており、Unicode を介して GB18030 コード・セットをサポートしているため DB2 UDB でのデフォルトのコード・セットは ISO 8859-1 (コード・ページ 819) になります。操作によっては、このデフォルトの地域はアメリカ合衆国 (US) にもなります。

この制約事項に対する予備手段として、以下の 2 通りのオプションがあります。

最初のオプションを使用する場合、以下のコマンドを発行します。

db2set DB2CODEPAGE=1386
db2set DB2TERRITORY=86
db2 terminate
db2stop
db2start

2 番目のオプションを使用する場合、以下のコマンドのいずれかを発行します。

export LANG=zh_CN.gbk
export LANG=zh_CN
export LANG=zh_CN.utf8

zh_CN に関連付けられたコード・セットは eucCN またはコード・ページ 1383、zh_CN.utf8 に関連付けられるのはコード・ページ 1208 です。

Merant Driver Manager の非互換性 (UNIX)

Merant Driver Manager が、UNIX(R) で DB2 ODBC ドライバーにアクセスする場合、Unicode サポートとの非互換が発生します。 これらの非互換性が原因で、アプリケーションが Unicode の使用を要求しなかった場合でも、Merant Driver Manager で Unicode が使用されるようになります。この状態に起因して、 データウェアハウス・センター、インフォメーション・カタログ・マネージャー、および MQSI のような、 IBM 以外のデータ・ソースのサポートのために Merant Driver Manager を必要とするコンポーネントで問題が発生することがあります。 永続的なソリューションが利用可能になるまで、Unicode サポートを使用せずに、代替の DB2 ODBC ドライバー・ライブラリーを使用することができます。

Unicode サポートを使用しない代替の DB2 ODBC ドライバー・ライブラリーは、AIX、HP-UX、Solaris オペレーティング環境版の DB2 Universal Database (UDB) バージョン 8.1 に組み込まれています。 この代替ライブラリーを使用するには、そのコピーを作成し、コピーに元の DB2 ODBC ドライバー・ライブラリー名を付ける必要があります。

注:
代替の (_36) ライブラリーには、DB2 JDBC ドライバーで必要な Unicode 機能が組み入れられています。 WebSphere(R) Application Server を含む JDBC アプリケーションは、このライブラリーを使用して、DB2 UDB と連動して正常に作業を行うことができます。

AIX、HP-UX、または Solaris オペレーティング環境で、非 Unicode ODBC ライブラリーに切り替えるには、以下の説明に従ってください。 これは手動によるプロセスであるため、連続したフィックスパックやモディフィケーション・レベルを適用した後も含め、製品のアップデートのたびに実行する必要があります。

手順

AIX

次のようにして、AIX に代替ライブラリーを作成します。

  1. インスタンス所有者として db2stop force コマンドを使用し、すべてのデータベース・インスタンスをシャットダウンします。
  2. DB2 管理サーバー (DAS) インスタンス ID を使用し、db2admin stop force コマンドで DAS インスタンスをシャットダウンします。
  3. /usr/lpp/db2_81/lib ディレクトリーの元の db2.o ファイルをバックアップします。
  4. root 権限を使用し、slibclean コマンドを発行します。
  5. ファイル db2_36.o をバックアップ・ファイル db2.o にコピーし、所有権および権限が整合したままであることを確認します。 以下のコマンドを使用します。
    cp db2_36.o db2.o
    -r--r--r-- bin:bin for db2.o

元のオブジェクトにスイッチバックするには、db2_36.o ファイルの代わりにバックアップ・ファイルを使用して、同じ手順に従ってください。

Solaris オペレーティング環境

次のようにして、Solaris オペレーティング環境上に代替ライブラリーを作成します。

  1. インスタンス所有者として db2stop force コマンドを使用し、すべてのデータベース・インスタンスをシャットダウンします。
  2. DB2 管理サーバー (DAS) インスタンス ID を使用し、db2admin stop force コマンドで DAS インスタンスをシャットダウンします。
  3. /opt/IBMdb2/V8.1/lib ディレクトリーの元の libdb2.so.1 ファイルをバックアップします。
  4. ファイル libdb2_36.so.1 をバックアップ・ファイル libdb2.so.1 にコピーし、所有権および権限が整合したままであることを確認します。 以下のコマンドを使用します。
    cp libdb2_36.so.1 libdb2.so.1 
    -r-xr-xr-x bin:bin libdb2.so.1
  5. データベース・インスタンスごとに、db2iupdt <instance> コマンドを発行し、DAS インスタンスに dasupdt <das_instance> コマンドを発行します。

元のオブジェクトにスイッチバックするには、libdb2_36.so.1 ファイルの代わりにバックアップ・ファイルを使用して、同じ手順に従ってください。

HP-UX PA-RISC

次のようにして、HP-UX PA-RISC に代替ライブラリーをインストールします。

  1. db2stop force コマンドを使用して、すべてのデータベース・インスタンスをシャットダウンします。
  2. db2admin stop force コマンドを使用して、DB2 管理サーバー (DAS) インスタンスをシャットダウンします。
  3. /opt/IBMdb2/V8.1/lib ディレクトリーの元の libdb2.sl ファイルをバックアップします。
  4. ファイル libdb2_36.sl をバックアップ・ファイル libdb2.sl にコピーして、所有権と許可が整合したままであることを確認します。 次のコマンドを使用して整合性を確認します。
    cp libdb2_36.sl libdb2.sl
    -r-xr-xr-x bin:bin for libdb2.sl
  5. データベース・インスタンスごとに、db2iupdt <instance> コマンドを発行し、DAS インスタンスに dasupdt <das_instance> コマンドを発行します。

元のオブジェクトにスイッチバックするには、libdb2_36.sl ファイルの代わりにバックアップ・ファイルを使用して、同じ手順に従ってください。

HP-UX on IA64

次のようにして、HP-UX on IA64 に代替ライブラリーをインストールします。

  1. db2stop force コマンドを使用して、すべてのデータベース・インスタンスをシャットダウンします。
  2. db2admin stop force コマンドを使用して、DB2 管理サーバー (DAS) インスタンスをシャットダウンします。
  3. /opt/IBMdb2/V8.1/lib ディレクトリーの元の libdb2.so ファイルをバックアップします。
  4. ファイル libdb2_36.so をバックアップ・ファイル libdb2.so にコピーして、所有権と許可が整合したままであることを確認します。 次のコマンドを使用して整合性を確認します。
    cp libdb2_36.so libdb2.so
    -r-xr-xr-x bin:bin for libdb2.so
  5. データベース・インスタンスごとに、db2iupdt <instance> コマンドを発行し、DAS インスタンスに dasupdt <das_instance> コマンドを発行します。

元のオブジェクトにスイッチバックするには、libdb2_36.so ファイルの代わりにバックアップ・ファイルを使用して、同じ手順に従ってください。

その他の UNIX オペレーティング・システム

他の UNIX オペレーティング・システム上の DB2 UDB および Merant Driver Manager に関して疑問点がある場合は、IBM(R) サポートにお問い合わせください。

NFS APAR IY32512 - 使用不可スレッド (AIX)

AIX 5 NFS APAR IY32512 では、システムに多数のパーティションがある場合に db2stop コマンドが失敗することがあります。

すでにロックされているファイルに対するブロック・ロック要求をサーバーが大量に受け取っている場合、そのサーバー上ではロック・デーモンが応答しなくなることがあります。 この状態が生じるのは、使用可能なロックされたスレッドのすべてが、ロックが有効になるのを待機しているスレッドに割り振られたため、アンロック要求が出されたときに処理を実行できるスレッドがなくなってしまうことが原因です。

この状態が生じた場合は、停止ノードを再始動しなければなりません。 この状態に対する DB2 Universal Database の予備手段としては、db2stop コマンドの NODENUM オプションを使用して一度に 1 つずつノードを停止させます。

SQLFLAG(STD) プリコンパイラー・オプション・エラー

SQLFLAG(STD) プリコンパイル・オプションを使用可能にしておくと、 「Abend C6 occurred while running Precompile program DSNHPC」というエラーが生じます。

デベロップメント・センターを使用して DB2 Universal Database for z/OS(R) バージョン 8 で実行する SQL ストアード・プロシージャーを作成するときには、 SQLFLAG (STD) プリコンパイル・オプションを除去してください。

DB2 Connect での Sysplex 使用時に接続プールが使用可能になっていなければならない

問題

DB2 Connect(TM) は、OS390 上のデータ共用グループ内の分散データ機能 (DDF) の接続メンバーがシャットダウンされている場合、DDF の別のメンバーへの接続を経路指定しません。Sysplex が使用可能になっている場合、DB2 Connect(TM) はサーバー・リストに従って、DDF 中の別のメンバーへの接続を経路指定します。

DB2 Connect バージョン 8 Sysplex は、エージェント・プールを念頭に置いて設計されました。 エージェントおよびデータベースへの接続がない場合、Sysplex サーバー・リストは解放されます。したがって、Sysplex サーバー・リストを維持するため、最低 1 つのエージェントを保持する必要があります。

予備手段

次のコマンドを実行して、接続プールを使用可能にします。

db2 update dbm cfg using num_poolagents number
db2stop
db2start

ここで、number は DB2 インスタンス上でプール可能なエージェントの最大数です。接続プールは、number が 0 より大きい場合に使用可能になります。

推奨

num_poolagents を -1 に設定してください。こうすると、maxagents 構成パラメーターに割り当てられている値の半分に設定されます。

DB2 Connect Custom Advisor

DB2 Connect(TM) Connect ユーザーズ・ガイド」では DB2 Connect Custom Advisor について説明されていますが、この製品はバージョン 8.2 ではサポートされなくなりました。

ツール・カタログ・データベース作成の失敗 (HP-UX)

問題
DB2 Universal Database (UDB) バージョン 8.2 を HP-UX にインストールする場合、32 ビット・インスタンスで CREATE TOOLS CATALOG コマンドを実行し、DB2 Administration Server jdk_path 構成パラメーターが HP-UX SDK 1.4 を指している場合、このコマンドは SQLCODE -22209 で失敗します。 この障害は、DB2 UDB バージョン 8.2 はデフォルトで HP-UX SDK 1.4 をインストールしますが、バージョン 8.2 32 ビット・インスタンスは CREATE TOOLS CATALOG コマンドを正常に実行するために HP-UX SDK 1.3 が必要であるため、この障害が発生します。

この障害は、DB2 UDB バージョン 8.1 フィックスパック 7 をインストールする際、DB2 Administration Server jdk_path 構成パラメーターを HP-UX SDK 1.4 を指すように手動で更新したか、または DB2 Administration Server (DAS) を除去して再作成した場合にも発生します。 このいずれの場合でも、jdk_path 構成パラメーターが HP-UX SDK 1.4 を指すように変更されたことが障害の原因です。

DB2 UDB バージョン 8.2 32 ビット・インスタンスを正常に実行するには HP-UX SDK 1.3 が必要です。

予備手段 1
64 ビット・インスタンスでツール・カタログを作成します。
予備手段 2
以下の手順で、32 ビット・インスタンスでツール・カタログを作成します。
  1. 次の HP-UX Web サイトから HP-UX SDK 1.3 をダウンロードします。http://www.hp.com/products1/unix/java/
  2. HP-UX SDK 1.3 をインストールします。
  3. DB2 Administration Server jdk_path 構成パラメーターを更新して、HP-UX SDK 1.3 を指すようにします。たとえば次のようにします。
    db2 update admin config using JDK_PATH /opt/java1.3
  4. DB2 Administration Server を再始動します。
    db2admin stop
    db2admin start
  5. 32 ビット・インスタンスで CREATE TOOLS CATALOG コマンドを再実行します。

DB2 GUI ツールでのインド語文字の表示

DB2 GUI ツールの使用中に、インド語文字の表示で問題がある場合は、 必要なフォントがシステムにインストールされていない可能性があります。

DB2 Universal Database (UDB) には、以下の IBM TrueType および OpenType プロポーショナル・インド語言語フォントがパッケージされています。 これらのフォントは、以下のすべての CD の font ディレクトリーにあります。

これらのフォントは、DB2 UDB でのみ使用してください。これらのフォントの一般または無制限の販売、あるいは配布を行うことはできません。

表 9. DB2 UDB にパッケージされたインド語のフォント
書体 太さ フォント・ファイル名
Devanagari MT for IBM Medium devamt.ttf
Devanagari MT for IBM Bold devamtb.ttf
Tamil Medium TamilMT.ttf
Tamil Bold TamilMTB.ttf
Telugu Medium TeluguMT.ttf
Telugu Bold TeleguMTB.ttf

フォントのインストールおよび font.properties ファイルの変更方法についての詳細は、IBM Development Kit for Java のドキュメンテーションの国際化対応の項を参照してください。

さらに、以下の Microsoft 製品には、DB2 GUI ツールで使用できるインド語フォントが付属しています。

zSeries サーバーで GUI ツールはサポートされない (Linux)

DB2 セットアップ・ウィザードを除き、Linux オペレーティング・システムが稼動中の zSeries(R) サーバーでは、GUI ツールは使用できません。クイック・ツアーなどの、インストール・ランチパッドから通常起動されるすべての項目がこの制限の対象になります。

このようなシステムで GUI ツールを使用する場合は、別のシステム構成をもったクライアント・システムに管理ツールをインストールし、このクライアントを使用して zSeries サーバーに接続してください。

DB2 インフォメーション・センターの検索語に数字が含まれる場合は、検索語を引用符で囲む

DB2 インフォメーション・センターでは、数字を含む検索語を引用符で囲まないと正確な検索結果が得られません。

例えば、次の語を検索すると、何も結果が得られません。

  1.4.1

ただし、この語を引用符で囲むと、正しい結果が得られます。

  "1.4.1"

次の語を検索すると、余分な項目も戻されます。

    DB20000I

ただし、次の語を検索すると正しく動作します。

    "DB20000I"

タグ言語ファイルのインポート時のインフォメーション・カタログ・センター・ログ・ファイルの非生成

タグ言語ファイルをインフォメーション・カタログ・センターへインポートしたのに、 インフォメーション・カタログ・センターのログ・ファイルが生成されない場合は、 以下のトラブルシューティング・ステップを実行します。

コマンド行から db2icmimport を実行している場合:
インフォメーション・カタログ・センターの GUI を使用してタグ言語ファイルをインポートする場合:

Query Patroller パッケージのバインディング

フィックスパックの適用後に Query Patroller パッケージがバインドされていないと、DBADM 権限のないユーザーや正しい Query Patroller 特権をもたないユーザーは、 クエリー・パトローラー・センターまたは Query Patroller コマンド行を使用しようとしたときに、 以下のエラーを受け取ることがあります。

SQL0001N - Binding or precompilation did not complete successfully.

クエリー・パトローラー・センターを使用した場合、SQL0001N エラーが qpdiag.log ファイルに記録されます。 Query Patroller のコマンド行を使用した場合、SQL0001N がコンソールに戻されます。

自動バインディングを開始するための自動バインド・コードがあります。 ただし、 Query Patroller パッケージ内のすべてのステートメントを実行するのに必要な特権を接続ユーザーがもっていないと、 自動バインディングは失敗します。 この問題の症状は、クエリー・パトローラー・センターでのフォルダーの欠如として示されます。

この問題を回避するには、フィックスパックの適用後に、 DBADM 権限または必要な特権をもったユーザーが手動で qpserver.lst パッケージをバインドする必要があります。

Query Patroller でポートが使用不可の場合 (Windows)

問題

Windows XP または Windows 2003 で使用可能なポートがない場合に Query Patroller で照会をサブミットすると、SQL コード -29007 を受け取ることがあります。Query Patroller にアクセスしているクライアントが増えると、このエラーの生じる可能性が増します。

予備手段

以下の Windows レジストリー変数を設定します。

      MaxUserPort=65534
   TcpTimedWaitDelay=30 

次に、変更を有効にするため、システムを再始動します。

Windows レジストリー変数の設定に関する詳細については、Microsoft(R) のヘルプおよびサポート Web サイト (http://support.microsoft.com/) にアクセスしてください。

機密保護機能のある環境 (Windows)

Windows システムでの管理者ではないユーザーが Windows 上で DB2 Universal Database (UDB) を使用すると、ファイル許可の問題が起こる場合があります。 SQL1035N、SQL1652N、または SQL5005C のエラー・メッセージが表示された場合の考えられる原因と対策を以下に示します。

ユーザーが sqllib ディレクトリーに対する十分な権限を持っていない

問題
DB2 CLP またはコマンド・ウィンドウを開こうとすると、SQL1035N または SQL1652N エラーになる。 DB2 UDB コード (コア・ファイル) は書き込み特権が限定されるディレクトリー構造にインストールされますが、 いくつかの DB2 UDB ツールでは、DB2INSTPROF ディレクトリーでファイルの書き込みと作成を行う必要があります。
予備手段
ユーザーに少なくとも MODIFY アクセス権を付与できる新規ディレクトリーを作成し、db2set -g db2tempdir を使用して新規ディレクトリーを指すようにするか、 または Windows システム環境の db2tempdir 変数を設定します。
ユーザーが SYSADM_GROUP に属していても sqllib¥<instance_dir> ディレクトリーへ書き込むための十分な権限がない

問題
データベース・マネージャー構成ファイルを更新しようとすると (update dbm cfg)、SQL5005C システム・エラーになる。 ユーザーを SYSADM_GROUP に追加しても、 そのユーザーには sqllib¥instance_dir ディレクトリーに書き込むために必要な NTFS アクセス権はありません。
最初の対策

ファイル・システム・レベルで少なくとも instance_dir ディレクトリーの MODIFY アクセス権をユーザーに付与します。

2 番目の対策
ユーザーに少なくとも MODIFY アクセス権を付与できる新規ディレクトリーを作成します。 db2set db2instprof コマンドを使用して、新しいディレクトリーを指定します。 db2instprof で指定した新規インスタンス・ディレクトリーの下に情報が保管されるようにインスタンスを再作成するか、 または古いインスタンス・ディレクトリーを新規ディレクトリーに移動する必要があります。

XML Extender のサンプル・プログラムの名前変更

一部の XML Extender サンプル・プログラムには、 他のインストール済みプログラムと同じ名前が付いている可能性があります。XML Extender サンプル・プログラムと同名の別のプログラミングを不用意に呼び出すと、XML ファイルが損傷を受けることがあります。 古い XML Extender サンプル・プログラム名と、 それに代わる競合の可能性の低い新規のプログラム名を以下に一覧で示してあります。 必ず旧称の代わりに新しいサンプル・プログラム名を使って、XML ファイルに損傷を与えないようにしてください。

表 10. XML Extender の置換用サンプル・プログラム (Windows)
旧プログラム (使用しないでください) 新プログラム (これを使用してください)
insertx.exe dxxisrt.exe
retrieve.exe dxxretr.exe
retrieve2.exe dxxretr2.exe
retrievec.exe dxxretrc.exe
shred.exe dxxshrd.exe
tests2x.exe dxxgenx.exe
tests2xb.exe dxxgenxb.exe
tests2xc.exe dxxgenxc.exe
表 11. XML Extender 用置換サンプル・プログラム (Linux および UNIX)
旧プログラム (使用しないでください) 新プログラム (これを使用してください)
insertx dxxisrt
retrieve dxxretr
retrieve2 dxxretr2
retrievec dxxretrc
shred dxxshrd
tests2x dxxgenx
tests2xb dxxgenxb
tests2xc dxxgenxc

サンプル sqx ファイルと連携した新規サンプル・プログラムの使用

上記の実行可能ファイルのソース・コード (.sqx ファイル) は、 ご使用のシステムの samples¥db2xml¥c ディレクトリーにあります。 ソース・ファイルには、古い名前が付いたままになっています。 ソース・コードに変更を加える場合、新しくコンパイルした実行可能ファイル (古い名前で) を、 sqllib¥bin ディレクトリーにコピーします。

Windows プラットフォームでは、別のコピーを作成し、上記の新しい名前に変更してから、 bin ディレクトリーにコピーする必要があります。 両方のコピーで、bin ディレクトリーの既存のファイルを置き換えます。 例えば、新しいバージョンの shred.exe をコンパイルしたら、2 つのコピーを作成し、 bin ディレクトリーのファイルを置き換えます。 1 つは shred.exe という名前ですが、もう 1 つは dxxshrd.exe に名前変更します。

Linux および UNIX プラットフォームでは、古い名前のファイルを、新しくコンパイルしたバージョンに置き換えるだけで済みます。 これらのサンプルから新しい実行可能ファイルを作成する場合は、 ¥SQLLIB¥samples¥db2xml¥c¥ ディレクトリーから ¥SQLLIB¥bin¥ ディレクトリーに新しいファイルをコピーし、 余分のコピーを作成して、それを上の表に合わせて名前変更します。

非固有の属性名およびエレメント名の入った XML Extender 内の文書の分解

今後は、DXXQ045E エラーを生じないで、 同じ表または別の表の別の列にマッピングされている非固有属性または非固有エレメント名 (またはその両方) の入った文書を分解できるようになりました。 以下に示すのは、非固有属性および非固有エレメント名を備えた XML 文書の一例です。

<Order ID="0001-6789">
       <!-- Note: attribute name ID is non-unique ->
       <Customer ID="1111">
                    <Name>John Smith</Name>
       </Customer>
       <!-- Note: element name Name is non_unique ->
       <Salesperson ID="1234"> 
              <Name>Jane Doe</Name>
       </Salesperson>
       <OrderDetail>
              <ItemNo>xxxx-xxxx</ItemNo>
              <Quantity>2</Quantity>
              <UnitPrice>12.50</UnitPrice>
       </OrderDetail>       
       <OrderDetail>
              <ItemNo>yyyy-yyyy</ItemNo>
              <Quantity>4</Quantity>
              <UnitPrice>24.99</UnitPrice>
       </OrderDetail>       
</Order>

重複しているエレメントと属性を別々の列にマッピングする付属 DAD は、次のようになります。

<element_node name="Order">
        <RDB_node>
    <table name="order_tab" key="order_id"/>
    <table name="detail_tab"/>
    <condition>
      order_tab.order_id=detail_tab.order_id
    </condition>
        </RDB_node>

  <!--attribute ID duplicated below, but mapped to a different col->
    <attribute_node name="ID">
        <RDB_node>
          <table name="order_tab" />
      <column name="order_id" type="char(9)"/>
        </RDB_node>
    </attribute_node>
  
  <element_node name="Customer">
    <!--attribute ID duplicated above, but mapped to a different col->
    <attribute_node name="ID">
        <RDB_node>
          <table name="order_tab" />
        <column name="cust_id" type="integer"/>
        </RDB_node>
    </attribute_node>

    <!--element name duplicated below, but mapped to a different col->
    <element_node name="Name"> 
      <text_node>
        <RDB_node>
          <table name="order_tab" />
          <column name="cust_name" type="char(20)" />
        </RDB_node>
      </text_node>
  </element_node>
  </element_node>
    
  <element_node name="Salesperson">
    <!--attribute ID duplicated above, but mapped to a different col->
    <attribute_node name="ID">
        <RDB_node>
          <table name="order_tab" />
        <column name="salesp_id" type="integer"/>
        </RDB_node>
    </attribute_node>
          
    <!--element name duplicated above, but mapped to a different col-> 
    <element_node name="Name"> 
      <text_node>
        <RDB_node>
          <table name="order_tab" />
          <column name="salesp_name" type="char(20)" />
        </RDB_node>
      </text_node>
  </element_node>
  </element_node>
    
  <element_node name="OrderDetail" multi_occurrence="YES">
    <element_node name="ItemNo">
      <text_node>
        <RDB_node>
          <table name="detail_tab" />        
          <column name="itemno" type="char(9)"/>
        </RDB_node>
      </text_node>
  </element_node>
    <element_node name="Quantity">
      <text_node>
        <RDB_node>
          <table name="detail_tab" />        
          <column name="quantity" type="integer"/>
        </RDB_node>
      </text_node>
  </element_node>
    <element_node name="UnitPrice">
      <text_node>
        <RDB_node>detail_tab" />
          <table name="detail_tab" />        
          <column name="unit_price" type="decimal(7,2)"/>
        </RDB_node>
      </text_node>
  </element_node>
  </element_node>
</element_node>

上記の文書を分解した後の表の内容は、次のサンプルのようになります。

ORDER _TAB:

ORDER_ID       CUST_ID       CUST_NAME       SALESP_ID       SALESP_NAME
0001-6789      1111          John Smith      1234            Jane Doe

DETAIL_TAB:

ORDER_ID          ITEMNO         QUANTITY          UNIT_PRICE
0001-6789         xxxx-xxxx      2                 12.50
0001-6789         yyyy-yyyy      4                 24.99
注:
複数のエレメントと属性を同一表の同一列にマップするには、その表の別名を定義し、 その別名をマッピングの 1 つの DAD <table> エレメントで使用します。

DB2 Connect 使用時の SNA と TCP/IP の相違

SNA を使用して OS/390(R) システムに接続すると、新規接続の作成時にホスト VTAM(R) 層は自動的にコミットします。 自動コミットによってホスト側のスレッド状態は非アクティブになるため、 スレッドは即時に非アクティブになります。

ただし、TCP/IP を使用して OS/390 システムに接続する場合、 自動コミットは発生しません。接続後、アプリケーション自身が明示的にコミットし、ホスト上でのスレッドの非アクティブ化を許可する必要があります。 明示的にコミットしない場合、 スレッドはアイドル状態になりタイムアウトします。

接続後に接続がアイドル状態になる場合の解決策としては、明示的コミットを実行するようにアプリケーションを書き直します。

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