IXF ファイル・フォーマットおよび SELECT * 文節を使って export コマンドが発行されると、適切な場合、索引情報が収集されます。
|索引に指定された列名に - または + 文字が含まれる場合、索引情報は収集されず、SQL コード SQL27984W が出されます。エクスポートは完了し、エクスポートされるデータは影響を受けません。 |しかし、索引情報は IXF ファイルに保管されません。
CREATE パラメーターを指定した import コマンドを使用して表を再作成する場合、索引は再作成されません。 |索引を別個に作成するには、db2look ユーティリティーを使用します。
アプリケーションがデータベースから切断されるときに、その切断前にコミットまたはロールバックが実行されていない場合、アプリケーションから db2ReadLog API を呼び出すと、以下に示すエラーが出される場合があります。
|非組み込み SQL アプリケーションの場合、db2ReadLog API の呼び出し前に自動コミット・モードをオンに設定します。
db2ReadLog API の呼び出し後、かつデータベースからの切断前に、COMMIT または ROLLBACK ステートメントを発行します。
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 では無効です。
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 データベースを 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(R) Visual Studio .NET Framework 1.1 でホット・キーが作動しない場合は、Microsoft 社の Web サイトからホット・フィックスをダウンロードできます。ホット・フィックスは Microsoft サポート技術情報の文書 Q836745 中にあります。
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 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(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 ドライバー・ライブラリー名を付ける必要があります。
AIX、HP-UX、または Solaris オペレーティング環境で、非 Unicode ODBC ライブラリーに切り替えるには、以下の説明に従ってください。 これは手動によるプロセスであるため、連続したフィックスパックやモディフィケーション・レベルを適用した後も含め、製品のアップデートのたびに実行する必要があります。
次のようにして、AIX に代替ライブラリーを作成します。
cp db2_36.o db2.o -r--r--r-- bin:bin for db2.o
元のオブジェクトにスイッチバックするには、db2_36.o ファイルの代わりにバックアップ・ファイルを使用して、同じ手順に従ってください。
次のようにして、Solaris オペレーティング環境上に代替ライブラリーを作成します。
cp libdb2_36.so.1 libdb2.so.1 -r-xr-xr-x bin:bin libdb2.so.1
元のオブジェクトにスイッチバックするには、libdb2_36.so.1 ファイルの代わりにバックアップ・ファイルを使用して、同じ手順に従ってください。
次のようにして、HP-UX PA-RISC に代替ライブラリーをインストールします。
cp libdb2_36.sl libdb2.sl -r-xr-xr-x bin:bin for libdb2.sl
元のオブジェクトにスイッチバックするには、libdb2_36.sl ファイルの代わりにバックアップ・ファイルを使用して、同じ手順に従ってください。
次のようにして、HP-UX on IA64 に代替ライブラリーをインストールします。
cp libdb2_36.so libdb2.so -r-xr-xr-x bin:bin for libdb2.so
元のオブジェクトにスイッチバックするには、libdb2_36.so ファイルの代わりにバックアップ・ファイルを使用して、同じ手順に従ってください。
他の UNIX オペレーティング・システム上の DB2 UDB および Merant Driver Manager に関して疑問点がある場合は、IBM(R) サポートにお問い合わせください。
AIX 5 NFS APAR IY32512 では、システムに多数のパーティションがある場合に db2stop コマンドが失敗することがあります。
すでにロックされているファイルに対するブロック・ロック要求をサーバーが大量に受け取っている場合、そのサーバー上ではロック・デーモンが応答しなくなることがあります。 この状態が生じるのは、使用可能なロックされたスレッドのすべてが、ロックが有効になるのを待機しているスレッドに割り振られたため、アンロック要求が出されたときに処理を実行できるスレッドがなくなってしまうことが原因です。
この状態が生じた場合は、停止ノードを再始動しなければなりません。 この状態に対する DB2 Universal Database の予備手段としては、db2stop コマンドの NODENUM オプションを使用して一度に 1 つずつノードを停止させます。
SQLFLAG(STD) プリコンパイル・オプションを使用可能にしておくと、 「Abend C6 occurred while running Precompile program DSNHPC」というエラーが生じます。
デベロップメント・センターを使用して DB2 Universal Database for z/OS(R) バージョン 8 で実行する SQL ストアード・プロシージャーを作成するときには、 SQLFLAG (STD) プリコンパイル・オプションを除去してください。
| | |DB2 Connect(TM) は、OS390 上のデータ共用グループ内の分散データ機能 (DDF) の接続メンバーがシャットダウンされている場合、DDF の別のメンバーへの接続を経路指定しません。Sysplex が使用可能になっている場合、DB2 Connect はサーバー・リストに従って、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(TM) Connect ユーザーズ・ガイド」では DB2 Connect Custom Advisor について説明されていますが、この製品はバージョン 8.2 ではサポートされなくなりました。
この障害は、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 が必要です。
db2 update admin config using JDK_PATH /opt/java1.3
db2admin stop db2admin start
DB2 GUI ツールの使用中に、インド語文字の表示で問題がある場合は、 必要なフォントがシステムにインストールされていない可能性があります。
DB2 Universal Database (UDB) には、以下の IBM TrueType および OpenType プロポーショナル・インド語言語フォントがパッケージされています。 これらのフォントは、以下のすべての CD の font ディレクトリーにあります。
これらのフォントは、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 ツールで使用できるインド語フォントが付属しています。
DB2 セットアップ・ウィザードを除き、Linux オペレーティング・システムが稼動中の zSeries(R) サーバーでは、GUI ツールは使用できません。クイック・ツアーなどの、インストール・ランチパッドから通常起動されるすべての項目がこの制限の対象になります。
このようなシステムで GUI ツールを使用する場合は、別のシステム構成をもったクライアント・システムに管理ツールをインストールし、このクライアントを使用して zSeries サーバーに接続してください。
DB2 インフォメーション・センターでは、数字を含む検索語を引用符で囲まないと正確な検索結果が得られません。
例えば、次の語を検索すると、何も結果が得られません。
1.4.1
ただし、この語を引用符で囲むと、正しい結果が得られます。
"1.4.1"
次の語を検索すると、余分な項目も戻されます。
DB20000I
ただし、次の語を検索すると正しく動作します。
"DB20000I"
タグ言語ファイルをインフォメーション・カタログ・センターへインポートしたのに、 インフォメーション・カタログ・センターのログ・ファイルが生成されない場合は、 以下のトラブルシューティング・ステップを実行します。
db2javit -j:com.ibm.db2.common.icm.tag.IcmImport -w: -i: -o:"-Xmx128m -Xms32m" -g:"d:¥temp¥myimport.trc" ...
フィックスパックの適用後に 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 パッケージをバインドする必要があります。
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 上で DB2 Universal Database (UDB) を使用すると、ファイル許可の問題が起こる場合があります。 SQL1035N、SQL1652N、または SQL5005C のエラー・メッセージが表示された場合の考えられる原因と対策を以下に示します。
ファイル・システム・レベルで少なくとも instance_dir ディレクトリーの MODIFY アクセス権をユーザーに付与します。
一部の XML Extender サンプル・プログラムには、 他のインストール済みプログラムと同じ名前が付いている可能性があります。XML Extender サンプル・プログラムと同名の別のプログラミングを不用意に呼び出すと、XML ファイルが損傷を受けることがあります。 古い XML Extender サンプル・プログラム名と、 それに代わる競合の可能性の低い新規のプログラム名を以下に一覧で示してあります。 必ず旧称の代わりに新しいサンプル・プログラム名を使って、XML ファイルに損傷を与えないようにしてください。
旧プログラム (使用しないでください) | 新プログラム (これを使用してください) |
---|---|
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 |
旧プログラム (使用しないでください) | 新プログラム (これを使用してください) |
---|---|
insertx | dxxisrt |
retrieve | dxxretr |
retrieve2 | dxxretr2 |
retrievec | dxxretrc |
shred | dxxshrd |
tests2x | dxxgenx |
tests2xb | dxxgenxb |
tests2xc | dxxgenxc |
上記の実行可能ファイルのソース・コード (.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¥ ディレクトリーに新しいファイルをコピーし、 余分のコピーを作成して、それを上の表に合わせて名前変更します。
今後は、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
SNA を使用して OS/390(R) システムに接続すると、新規接続の作成時にホスト VTAM(R) 層は自動的にコミットします。 自動コミットによってホスト側のスレッド状態は非アクティブになるため、 スレッドは即時に非アクティブになります。
ただし、TCP/IP を使用して OS/390 システムに接続する場合、 自動コミットは発生しません。接続後、アプリケーション自身が明示的にコミットし、ホスト上でのスレッドの非アクティブ化を許可する必要があります。 明示的にコミットしない場合、 スレッドはアイドル状態になりタイムアウトします。
接続後に接続がアイドル状態になる場合の解決策としては、明示的コミットを実行するようにアプリケーションを書き直します。
[ ページのトップ |前ページ | 次ページ | 目次 ]