3 IBM DB2 Databaseプラグインのトラブルシューティング

この章では、IBM DB2プラグインおよびIBM DB2 Databaseプラグインの操作中に生じる可能性のある問題を特定、診断および解決するための詳細情報を提供します。

この項の内容は次のとおりです。

TCP/IPポートの検索

リモートのIBM DB2インスタンスにアクセスするための通信ポートを構成できます。デフォルト値は50000です。

特定のIBM DB2インスタンスのポートを検索するには、次のプラットフォームに対応する手順を実行します。

UNIXプラットフォーム用のTCP/IPポートの検索

  1. コマンド・プロンプトを開き、次のコマンドを実行します。

    cd /usr/etc
    cat services
    
  2. リモート・データベースのデータベース・インスタンスの接続ポート番号が見つかるまでサービスのリストをスクロールします。

インスタンス名は通常、コメントとしてリストされます。リストされていない場合、次のステップを実行してポートを見つけます。

  1. DB2コマンド・プロンプトを開き、次のコマンドを実行して、適切なインスタンスが対象であることを確認します。IBM DB2により、現行のインスタンスがレポートされます。
    get instance
    
  2. 次のコマンドを実行して、インスタンスのサービス名を検出します。
    get dbm cfg | grep SVCE
    

    IBM DB2によってサービス名がレポートされます。

    次に例を示します。

    TCP/IP Service name SVCENAME) = db2cdb2inst24
    
  3. サービス名を使用して、servicesファイル内のポート番号を検出します。

    たとえば、次のコマンドを入力します。

    grep service_name /etc/services
    

    IBM DB2によって情報が返されます。

    次に例を示します。

    service_name   50012/tcp   # Connection port for DB2 instance instance

Microsoft Windowsプラットフォーム用のTCP/IPポートの検索

  1. リモートWindowsサーバーでDB2コントロール・センターを開きます。
  2. ローカル・マシンの使用可能なインスタンスの1つを右クリックします。
  3. 「Setup Communications」をクリックします。
  4. 「Properties」をクリックします。

    Propertiesウィンドウにポート番号が表示されます。

z/OSプラットフォーム用のTCP/IPポートの検索

  1. z/OSシステムに接続します。
  2. 次のコマンドを実行します。
    -DISPLAY DDF 
    

    結果のTCPPORT値がポート番号です。

IBM DB2の問題の解決

次の各項で、IBM DB2プラグインの使用中に発生する可能性のある問題の解決方法を示します。

適切なOSユーザーの使用と許可/権限の割当て

Enterprise Manager Cloud Controlの「モニタリング構成」ページに次のエラーが表示されることがあります。

oracle.sysman.emSDK.emd.comm.CommException: Connection refused

Error while executing query, DB2 SQL error:  SQLCODE -443, SQLSTATE: 38553, SQLERRMC: SNAPSHOT_DBM;SNAPSHOT_DBM;SQL1092 Reason code or token: USRWOSYSMON

考えられる原因: ユーザーを使用していないか、使用しているユーザーが適切な権限を持っていません。

処置: 少なくとも最小の権限を持っているユーザーを使用します。適切なオペレーティング・システム・ユーザーを作成し、そのユーザーに認可と権限を割り当てる方法の詳細は、IBM DB2 Database Plug-inユーザーズ・ガイドを参照してください。

不適切な資格証明の使用

次のエラーが表示されることがあります。

Failed to contact the target to be added. Following errors were received while testing the connection to the target. Update the properties accordingly, try Test Connection for testing the properties before saving. 

Response - oracle.sysman.emSDK.emd.fetchlet.FetchletException: Error while obtaining connection.Connection authorization failure occurred. Reason: password invalid. 

考えられる原因: 不適切な資格証明を使用しています。

処置: 正しい資格証明を使用してください。

クラスパスのロードに失敗しました: インスタンスを作成できませんでした

次のエラーが表示されることがあります。

Failure in loading Classpath: Could not create instance: com.ibm.db2.jcc.DB2Driver

考えられる原因: db2jcc_javax.jarファイルが含まれていないJDBCドライバの新しいバージョンを使用しています。

処置: 次のディレクトリ内のファイルをリストすることにより、この考えられる原因を確認できます。

$AGENT_BASE_DIR/plugins/dependencies/oracle.em.sidb/jdbcdriver

db2jcc.jarおよびdb2jcc_license_cu.jarファイルのみを所有している場合は、バージョン3.5以降のドライバのみを所有していますが、これには非推奨のdb2jcc_javax.jarファイルが含まれています。

この問題を解決するには:

  • UNIXの場合:

    touch $AGENT_BASE_DIR/plugins/dependencies/oracle.em.sidb/jdbcdriver/db2jcc_javax.jar
    
  • Microsoft Windowsの場合:

    • 次のディレクトリで空のテキスト・ファイルを作成します。

      $AGENT_BASE_DIR\plugins\dependencies\oracle.em.sidb\jdbcdriver\
      
    • ファイルの名前をdb2jcc_javax.jarに変更します

My Oracle Supportの「IBM DB2 Status pending: Could not create instance com.ibm.db2.jcc.DB2Driver」(Doc ID: 1528370.1)を参照してください。

https://support.oracle.com

ヘルス・インジケータ・メトリックのデータがない

場合によっては、ヘルス・インジケータ・メトリックのデータが表示されないことがあります。

考えられる原因: HEALTH_MONデータベース・マネージャ構成パラメータを有効にしていません。

処置: ヘルス・インジケータ・メトリック用に収集されるデータの場合は、HEALTH_MONデータベース・マネージャ構成パラメータを有効にする必要があります。有効にすると、テーブル・ファンクション(たとえば、HEALTH_TBS_HIHEALTH_DB_HIおよびHEALTH_DBM_HI)が移入されます。

注意:

これらの設定を有効にすると、一部のリソース(CPUやメモリーなど)にオーバーヘッドが生じることがあります。したがって、これらのトラブルシューティング・ステップはヘルス・インジケータ・メトリックを表示する必要がある場合にのみ実行してください。

HEALTH_MONをCLP (Command Line Processor)によって有効または無効にするには、次のコマンドを実行します。

db2==> update dbm cfg using HEALTH_MON [on;off]

変更が反映されたかどうかを確認するために、次のコマンドを実行します。

db2==> get dbm cfg

出力は次のようになります。

.....
.....
.....
Monitor health of instance and databases (HEALTH_MON) = ON
.....
..........

詳細は、IBM Webサイトにアクセスしてください。

ロック待機メトリックが収集されない

場合によっては、ロック待機メトリックのデータが表示されないことがあります。

考えられる原因: DB2データベースがFix Pack 1より前のバージョン9.7で作成されました。

処置: db2updv97コマンドを実行してください。データベースがバージョン9.7より前に作成された場合は、(カタログの更新がデータベース移行によって自動的に行われるため) db2updv97コマンドを実行する必要はありません。

データベース監視メトリック収集エラー・メッセージ

表3-1は、データベース監視メトリックの収集時に発生する可能性がある一般的なエラー・メッセージとそれに対応する解決策を示しています。IBM DB2のレポート要素と依存メトリックの概要は、表3-2を参照してください。

表3-1 データベース監視メトリック収集エラー・メッセージ

エラー・メッセージ 考えられる原因 処置
oracle.sysman.emSDK.emd.fetchlet.FetchletException: 
Error while executing query. DB2 SQL error:
 SQLCODE: -204, SQLSTATE: 42704, SQLERRMC:
 SYSTOOLS.STMG_DBSIZE_INFO

STMG_DBSIZE_INFOが作成されていません。

データベース監視メトリックのデータが収集されるようにするには、STMG_DBSIZE_INFO表が作成されて必要なデータが移入されるように、GET_DBSIZE_INFOパッケージを呼び出します。

GET_DBSIZE_INFOプロシージャは、データベースのサイズと最大容量を計算します。算出された値は、プロシージャの出力パラメータとして返され、SYSTOOLS.STMG_DBSIZE_INFO表内にキャッシュされます。これらの値がキャッシュされるのは、計算のパフォーマンス・コストが高いためです。

SYSTOOLS.STMG_DBSIZE_INFO表は、このプロシージャの初回実行時に自動的に作成されます。SYSTOOLS.STMG_DBSIZE_INFO表にキャッシュされた値は、snapshot-timestampとrefresh-windowの各値に基づき、古い値でないことを確認されたうえで返されます。

キャッシュされた値が最新でない場合は、新たに算出された値がキャッシュされ、SYSTOOLS.STMG_DBSIZE_INFO表に挿入されて返された後、snapshot-timestamp値が更新されます。GET_DBSIZE_INFOコールで最後に取得されるパラメータはrefresh-windowです。

refresh-window (コール間の時間間隔)のデフォルト値は30分です。データベースの更新がより頻繁に行われる場合は、より短い時間に設定することもできます。

CLP (コマンドライン・プロセッサ)によりGET_DBSIZE_INFOを呼び出すには、次のコマンドを実行します。

db2==>CALL GET_DBSIZE_INFO(?, ?, ?, -1)

この例の場合、refresh-windowは30分になります。

詳細は、IBM Webサイトにアクセスしてください。

Target - <target_name>
      Type - IBM DB2 Database
      Metric - DB2 Diag Log File Monitoring
      Collection - Timestamp Apr 1, 2009 10:19:59 AM
     Error Type - Collection Failure
     Message - Use of uninitialized value in string eq at
 e:\oracle\agent10g/sysman/admin/scripts/
emx/ibm_db2_database/logmine.pl line 188. 
The DB2 Database Manager Configuration Parameter DIAGPATH needs to be set

次がエラーの原因である可能性があります。

  • DIAGPATHが設定されていない

  • データベースが停止している

DIAGPATHが設定されていない場合は、次のようにコマンドラインからDIAGPATHの実行を設定します。

db2 update dbm cfg using  diagpath <path>

Windowsシステムでは、パスは<db2のインストール・ディレクトリ>\<インスタンス名>です。

LinuxまたはAIXシステムでは、パスは<instancehome>/sqllib/db2dumpです。

DIAGPATHがすでに設定されている場合は、データベースが停止しているとメトリック収集エラーが発生します。

レポート要素と依存メトリック

表3-2に、IBM DB2のレポート要素と依存メトリックの概要を示します。

表3-2 IBM DB2レポート要素と依存メトリック

レポート レポート要素 メトリック

IBM DB2 DatabaseアプリケーションCPU使用率

合計CPU使用率(ミリ秒)に基づいた上位10のアプリケーション

エージェントの監視

合計アイドル時間(ミリ秒)に基づいた上位10のアプリケーション

エージェントの監視

IBM DB2 Databaseアプリケーション・ロック・パフォーマンス

平均ロック待機時間(ミリ秒)に基づいた上位10のアプリケーション

エージェントの監視

保持されているロックの数に基づいた上位10のアプリケーション

エージェントの監視

タイムアウトのロックの数に基づいた上位10のアプリケーション

エージェントの監視

IBM DB2 Databaseアプリケーションの行アクセスおよびソートのパフォーマンス

行の読取りに基づいた上位10のアプリケーション

エージェントの監視

行の書込みに基づいた上位10のアプリケーション

エージェントの監視

ソートに要した時間(ミリ秒)に基づいた上位10のアプリケーション

エージェントの監視

IBM DB2 Databaseバッファ・プールおよび非バッファI/O統計

バッファ・プール・アクティビティのサマリー

データベース・パフォーマンス

非バッファI/Oアクティビティのサマリー

非バッファI/Oパフォーマンス

データの読取り率

データベース・パフォーマンス

索引の読取り率

データベース・パフォーマンス

索引およびデータの書込み率

データベース・パフォーマンス

非バッファI/O

非バッファI/Oパフォーマンス

IBM DB2 Databaseキャッシュ統計

パッケージ・キャッシュのサマリー

キャッシュ・パフォーマンス

カタログ・キャッシュのサマリー

キャッシュ・パフォーマンス

パッケージ・キャッシュ・ヒット率

キャッシュ・パフォーマンス

パッケージ・キャッシュのオーバーフロー

キャッシュ・パフォーマンス

カタログ・キャッシュ・ヒット率

キャッシュ・パフォーマンス

カタログ・キャッシュのオーバーフロー

キャッシュ・パフォーマンス

カタログ・キャッシュ・ヒープ満杯

キャッシュ・パフォーマンス

IBM DB2 Databaseコンテナ・ヘルス

コンテナ・ヘルス情報

コンテナ・ヘルス

コンテナ・ヘルス・インジケータ

コンテナ・ヘルス・インジケータ

IBM DB2 Database DBディスク記憶域統計

ディスク領域使用率

データベースの監視

ディスク領域使用率のサマリー

データベースの監視

ディスク領域使用率の詳細

データベースの監視

IBM DB2 Database DBのヘルス

データベース・ヘルス情報

データベース・ヘルス

データベース・ヘルス・インジケータ

データベース・ヘルス・インジケータ

データベース収集ヘルス・インジケータ

Database_health_collection

IBM DB2 Database DBマネージャ・エージェントおよび接続統計

エージェント構成

DBマネージャ構成: 容量(構成メトリック)

エージェント・プール・アクティビティ

エージェント接続

エージェント作成と割当ての比率

エージェント接続

アイドル・エージェント

エージェント接続

トークンで待機中のエージェント

エージェント接続

リモート接続

アプリケーション接続

リモート接続のサマリー

アプリケーション接続

ローカル接続

アプリケーション接続

ローカル接続のサマリー

アプリケーション接続

IBM DB2 Database DBマネージャ構成

DBマネージャの容量

DBマネージャ構成: 容量(構成メトリック)

DBマネージャのデータベース・インスタンス

DBマネージャ構成: データベース・インスタンス(構成メトリック)

DBマネージャのログおよびリカバリ

DBマネージャ構成: ロギングおよびリカバリ(構成メトリック)

DBマネージャのパーティション化されたDB環境

DBマネージャ構成: パーティション化されたデータベース環境(構成メトリック)

DBマネージャの接続

DBマネージャ構成: 接続(構成メトリック)

IBM DB2 Database DBマネージャのヘルス

データベース・マネージャのヘルス情報

データベース・マネージャのヘルス

データベース・マネージャのヘルス・インジケータ

データベース・マネージャのヘルス・インジケータ

IBM DB2 Database DBマネージャのソート統計

データベース・マネージャのソートのサマリー

SortHeapパフォーマンス

ポストしきい値のソートおよび結合

SortHeapパフォーマンス

パイプ・ソートの拒否率

SortHeapパフォーマンス

IBM DB2 Databaseロック統計

ロックのサマリー

データベースの監視

平均ロック待機時間

データベースの監視

保持または待機中のロック

データベースの監視

アプリケーションのエスカレーションおよびタイムアウト

データベースの監視

デッドロックおよび内部デッドロックのロールバック

データベースの監視

IBM DB2 DatabaseのSQL文のパフォーマンス

行の読取りに基づいた上位10の文

エージェントの監視

行の書込みに基づいた上位10の文

エージェントの監視

平均ソート時間(ミリ秒)に基づいた上位10の文

エージェントの監視

CPU使用率(ミリ秒)に基づいた上位10の文

エージェントの監視

IBM DB2 Databaseソート・ヒープおよびハッシュ結合統計

ソートおよびハッシュ結合の合計

SortHeapパフォーマンス

アクティブ・ソート

SortHeapパフォーマンス

アクティブ・ソートのサマリー

SortHeapパフォーマンス

平均ソート使用済領域

SortHeapパフォーマンス

1回のソート当たりの平均ソート時間

SortHeapパフォーマンス

ソート・オーバーフロー率

SortHeapパフォーマンス

ハッシュ結合の短精度オーバーフローおよびオーバーフロー

SortHeapパフォーマンス

ハッシュ結合の短精度オーバーフローからオーバーフローへの比率

SortHeapパフォーマンス

IBM DB2 Databaseシステム構成

システム構成

DB2システム(構成メトリック)

製品概要

DB2製品(構成メトリック)

インスタンス

DB2インスタンス(構成メトリック)

パーティション

DB2パーティション(構成メトリック)

レジストリ設定

レジストリ設定(構成メトリック)

IBM DB2 Database表領域ヘルス

表領域ヘルス情報

表領域ヘルス

表領域ヘルス・インジケータ

表領域ヘルス・インジケータ

IBM DB2 Database表領域統計

使用可能な領域(%)順の上位5つの表領域

表領域の記憶域

表領域のサマリー

表領域の記憶域

IBM DB2プラグインのサポート参照

次のサポート・ドキュメントをMy Oracle Supportで入手できます。

https://support.oracle.com