db2fodc - Db2 First Occurrence Data Capture コマンド

この db2fodc ユーティリティーは、問題判別状態に役立つ、Db2 インスタンスに関する症状に基づくデータをキャプチャーします。 潜在的なハング、パフォーマンス上の重大な問題、およびさまざまなタイプのエラーに関する情報を収集することが目的です。

目的

db2fodc コマンドは、自動 FODC (First Occurrence Data Capture) がトリガーされない問題に関するパフォーマンス・データを収集するために使用します。

このコマンドの主な使用方法は 2 つあります。 1 つ目の方法では、問題が発生したときに db2fodc コマンドを実行して即時にデータを収集します。 2 つ目の方法は、しきい値パラメーターを使用して表した状態に環境が達したときに、データ収集がトリガーされます。この方法は、バージョン 9.7 フィックスパック 5 以降のフィックスパックで使用できます。

このコマンドは、3 つの基本コンポーネントを使用して構成します。その 3 つとは、メイン・データ収集パラメーター 1 つと、セカンダリー・データ収集パラメーター、および、しきい値パラメーターです。

まず始めに、メイン・データ収集パラメーターとそのデータ収集モード (基本または完全) を選択します。 この状態でコマンドを実行すると、即時にデータを収集できます。

または、セカンダリー・データ収集パラメーターを追加して、システムのどの部分 (複数可) をスキャンするかを選択することもできます。 さらに、出力先を指定したり、タイムアウト値を設定したりすることも可能です。 この方法でコマンドを実行した場合、データは即時に収集されます。

または、バージョン 9.7 フィックスパック 5 以降のフィックスパックで使用できる、しきい値パラメーターを追加できます。 -detect パラメーターを 1つ以上のしきい値規則とともに指定して、条件付きしきい値を設定します。 システムがモニターされ、しきい値に達した時点でデータが収集されます。

しきい値パラメーターを追加する方法を選択した場合、コマンドの実行対象となっているユーザー ID がログオフするか、環境がしきい値パラメーターによって表された状態に達するまで、コマンドは実行され続けます。 ユーザーの後続のログアウトに関係なく、バックグラウンドでコマンドをアクティブのままにするには、コマンドの先頭に nohup を追加し、末尾に & を追加してください。 例えば、nohup db2fodc -memory basic -detect "avm>=5242880" & のようになります。

収集方法に関係なく、収集されたデータは FODC パッケージ・ディレクトリー内に置かれます。 このディレクトリは、デフォルトの診断パスまたは-fodcpathパラメータで指定したFODCディレクトリパスのいずれかに作成されます。

出力を確認するか、収集された診断データを含むディレクトリーを分析のために IBM サポートに送信することができます。

許可

以下のいずれかの権限レベルが必要です。
  • Linux® および UNIX システムの場合: SYSADM 権限レベル。 さらに、インスタンスの所有者でなければなりません。
  • Windows オペレーティング・システムでは、SYSADM 権限レベル。

コマンド構文

Read syntax diagramSkip visual syntax diagramdb2fodcMain data collection optionsSecondary data collection optionsDetect options
Main data collection options
Read syntax diagramSkip visual syntax diagram-hangbasicfull-profileprofileName-perfbasicfull-cpubasicfull-memorybasicfull-connectionsbasicfull-clp-preupgrade-par DYN_SQL_FILEsqlFile-hadr-fodcerrorFODC_[Index|Data|Col]Error_Directorybasicfull-help
Secondary data collection options
Read syntax diagramSkip visual syntax diagram-alldb-dbdbName-dbp-dbpartitionnum -alldbp-alldbpartitionnum -host,hostnameall-member,member_number|member_rangeall-allmemberstimeouttimeout_valuefodcpathfodc_path_name
Detect options
Read syntax diagramSkip visual syntax diagram -detect ,threshold_rule" <comparison_operator> threshold_value"condition= condition_value threshold_options

メイン・データ収集パラメーター

メイン・データ収集パラメーターは、コマンドごとに 1 つのみ選択します。

-hang
潜在的なハング状態または重大なパフォーマンス上の問題に関連する FODC データを収集します。 この-hangパラメーターは、インスタンスが使用不可と見なされ、再起動が必要な場合に使用することを目的としています。 データは可能な限り速やかに収集されますが、インスタンスまたはデータベースが既にハング状態になっていると、プロセスが完了しない場合があります。 完全または基本の収集モードは、ユーザーとの対話なしで使用できます。
FODC_Hang_という接頭部が付いた新規ディレクトリーが、現行の診断パスに作成されます。 スクリプト db2cos_hangは、FODC データを 1 つ以上のファイルに収集してディレクトリーに保存ために実行されます。
例: db2fodc -hang
-perf
パフォーマンスの問題に関連したデータを収集します。 -perfパラメーターは-hang パラメーターと似ていますが、使用リソースが少なくなります。 したがって、インスタンスがまだ使用可能で、再始動の必要がない場合には、このオプションを使用します。 完全または基本の収集モードは、ユーザーとの対話なしで実行できます。
FODC_Perf_という接頭部が付いた新規ディレクトリーが、現行の診断パスに作成されます。 スクリプト db2cos_perfは、FODC データを 1 つ以上のファイルに収集してディレクトリーに保存ために実行されます。
例: db2fodc -perf
-profile profileName
潜在的なハング状態に関する FODC データを収集します。 データは、~/sqllib/cfgディレクトリのdb2fodc.profileファイル指定パラメータに基づいて収集されます。 既存のプロファイルのいずれかを変更したり、新しいプロファイルを追加したりできます。 指定可能パラメーターの全リストは、sqllib/bin/db2cos_hangスクリプトにあります。 -profile パラメーターは、 IBM® サポートの指導の下でのみ使用することをお勧めします。
FODC_Hang_という接頭部が付いた新規ディレクトリーが、現行の診断パスに作成されます。 カスタマイズされたプロファイルが実行されて、1 つ以上のファイルに FODC データが収集され、ディレクトリーに入れられます。
このパラメーターは、Windows NT オペレーティング・システムではサポートされません。
例えば、db2fodc -profile sample_profile などです。
-cpu
バージョン 9.7 フィックスパック 5 以降のフィックスパックで、プロセッサー関連のパフォーマンス・データと診断データを収集します。 このデータは、プロセッサー使用率が高いこと、実行中のプロセス数が多いこと、またはプロセッサー待機時間が長いことに関連する問題を診断するために使用できます。 完全または基本の収集モードは、ユーザーとの対話なしで実行できます。
FODC_Cpu_という接頭部が付いた新規ディレクトリーが、現行の診断パスに作成されます。 スクリプト db2cos_thresholdは、FODC データを 1 つ以上のファイルに収集してディレクトリーに保存ために実行されます。
例: db2fodc -cpu
-メモリー
バージョン 9.7 フィックスパック 5 以降のフィックスパックで、メモリー関連の診断データを収集します。 空きメモリーがない、スワップ・スペースの使用率が高い、過剰なページングが生じている、メモリー・リークが疑われるといった問題を診断できます。 完全または基本の収集モードは、ユーザーとの対話なしで実行できます。
FODC_Memory_という接頭部が付いた新規ディレクトリーが、現行の診断パスに作成されます。 スクリプト db2cos_thresholdは、FODC データを 1 つ以上のファイルに収集してディレクトリーに保存ために実行されます。
例: db2fodc -memory
-接続
バージョン 9.7 フィックスパック 5 以降のフィックスパックで、接続関連の診断データを収集します。 このデータは、実行中またはコンパイル中の状態にあるアプリケーションの数が急上昇したり、新しいデータベース接続が拒否されたりするなどの問題を診断するために使用できます。
FODC_Connections_という接頭部が付いた新規ディレクトリーが、現行の診断パスに作成されます。 スクリプト db2cos_thresholdは、FODC データを 1 つ以上のファイルに収集してディレクトリーに保存ために実行されます。
例: db2fodc -connections
-clp
バージョン 9.7 フィックスパック 5 以降のフィックスパックで、インスタンスの作成に関連したオペレーティング・システム情報と構成情報を収集します。 このコマンドは-memberパラメーターをサポートしませんが、-host パラメーターはサポートします。 -clp パラメーターは、 Linux および UNIX オペレーティング・システムでのみサポートされます。 このコマンドを Windows オペレーティング・システムで発行した場合、データは収集されません。
FODC_Clp_という接頭部が付いた新規ディレクトリーが、現行の診断パスに作成されます。 スクリプト db2cos_clpは、FODC データを 1 つ以上のファイルに収集してディレクトリーに保存ために実行されます。
例: db2fodc -clp
-preupgrade
バージョン 9.7 フィックスパック 5 以降のフィックスパックで、重要なアップグレードや更新の前に、パフォーマンス関連の情報を収集します。 -preupgrade パラメーターは予防措置として行われます。 アップグレードまたは更新後に発生する可能性のある問題は、収集されたデータおよび IBM サポートの支援によって診断される可能性があります。 将来発生する可能性のある問題をトラブルシューティングするために十分なパフォーマンス・データが得られるように、このコマンドをピーク時とアイドル時の両方で数回にわたって発行してください。 このパラメーターを指定する場合は、データベースを指定する必要があり、処理が完了するまでに長い時間がかかる可能性があります。
FODC_Preupgrade_という接頭部が付いた新規ディレクトリーが、現行の診断パスに作成されます。 スクリプト db2cos_preupgradeは、FODC データを 1 つ以上のファイルに収集してディレクトリーに保存ために実行されます。
例: db2fodc -preupgrade -dbdbname
-par DYN_SQL_FILE=sqlFile
バージョン 9.7 フィックスパック 5 以降のフィックスパックで、指定した SQL ファイルに関連した FODC データを収集します。 SQL ファイルには、システムで実行される最も代表的なワークロードである SQL ステートメントを入れるようにしてください。 アップグレードまたは更新を行う前に、このコマンドを実行します。 アップグレードの後にも、同じコマンドを再度実行します。 それらの出力を比較することで、アップグレードによる影響を判断します。
このオプションは、-preupgradeパラメーターでのみ使用できます。 -upgradeパラメーターとともに-par DYN_SQL_FILE=sqlFileオプションを指定しないと、動的SQLキャッシュから20 個の動的照会が取得されます。
例: db2fodc -preupgrade -db dbname -par DYN_SQL_FILE=sqlFile
-hadr
バージョン 9.7 フィックスパック 7 以降のフィックスパックで、HADR 問題に関連した診断データを収集します。 このパラメータを-detectオプションとともに使用して、HADR輻輳を検出し、関連する診断情報を自動的に収集できます。 -hadrオプションと-detectオプションの両方が指定される場合、しきい値規則を使用できません。 -hadrオプションのしきい値オプションにはさまざまなデフォルトがあり、使用可能のは次の場合のみです。
表 1. -HADR パラメーターしきい値オプションのデフォルト値
使用可能なしきい値オプション デフォルト値
iteration= 1
interval= 30時間まで
sleeptime= 0
triggercount= 10
-nocollect 該当なし
オフ 該当なし
収集情報は、DIAGPATHディレクトリの新しい名前を持つFODC_Hadr_timestamp_hostname_Primary|Standby|Standardディレクトリに保存されます。ここで、タイムスタンプは コレクションの時点でコマンドが実行時刻、ホスト名は収集が実行ホスト、プライマリスタンバイ標準はデータベースのHADRの役割を示します。 スクリプト db2cos_HADRは、FODC データを 1 つ以上のファイルに収集してディレクトリーに保存ために実行されます。
例: db2fodc -hadr -dbdbname -detect
-fodcerror FODC_ [索引 | データ | 列] Error_directory
FODC_[Index|Data|Col]Error_directory は、以下のいずれかに関連したデータを収集します。
  • 索引エラー (FODC_IndexError_directory)
  • データベース・マネージャー・エラー (FODC_DataError_directory)
  • カラム・オーガナイズ表エラー (FODC_ColError_directory)
(FODC_DataError_directory および FODC_ColError_directory は、 Db2 Cancun Release 10.5.0.4で追加されました。)

FODC_[Index|Data|Col]Error_directory フォルダーは必須で、db2cos_[index|data|col]error_short(.bat) スクリプトまたは db2cos_[index|data|col]error_long(.bat) スクリプトを取り組めなければなりません。 例えば、 db2cos_[index|data|col]error_short(.bat) スクリプトまたはdb2cos_[index|data|col]error_long(.bat)などです。

BASIC モードでは、 db2cos_[index|data|col]error_short スクリプトが呼び出されます。 FULL モードは、db2cos_[index|data|col]error_short スクリプトとdb2cos_[index|data|col]error_long スクリプトを呼び出します。 モードを指定していない場合、BASIC モードがデフォルトになります。

FODC_[Index|Data|Col]Error_directory ディレクトリーを名前変更したり移動したりしないでください。 スクリプト内の db2dart コマンドは、 レポートを正しく生成するためにこのディレクトリー・パスを必要とします。

このコマンド・パラメーターを手動で実行する必要がある場合、このディレクトリーに既存の db2dart レポートがあるかどうかを調べてください。 レポートの拡張子は.rpt.rpthexです。 ディレクトリーにレポートがある場合は、コマンドを手動で開始する前に、レポートの名前を変更するか、レポートをFODC_[Index|Data|Col]Error_directoryディレクトリーのサブディレクトリーに移動してください。 完全または基本の収集モードは、ユーザーとの対話なしで実行できます。 出力ファイルとログファイルは、 db2diag ログファイルにあります。
-help
ヘルプ情報を表示します。 このオプションを指定すると、他のすべてのオプションは無視され、 ヘルプ情報だけが表示されます。

メイン・データ収集パラメーターのモード

一部のメイン・データ収集パラメーターには、サブオプションとして収集モードを指定できます。

基本
この基本収集モードはユーザーと対話せずに実行されます。 完全モードに比べ、収集されるデータは少なくなりますが、使用されるリソースも少なくなります。
full
この完全収集モードは、ユーザーと対話せずに実行されます。 このオプションでは、基本収集モードより多くのリソースと時間が必要になりますが、より多くのデータが収集されます。

セカンダリー・データ収集パラメーター

メイン・データ収集パラメーターのいずれか 1 つと共に、以下のセカンダリー・データ収集パラメーターを 1 つ以上指定できます。

-db データベース名
指定したデータベース (複数可) に関連する FODC データを収集します。 複数のデータベースを指定する場合は、コンマで区切られたリストとして指定します。
例: db2fodc -hang -db sample,dbsample
-alldbs
すべてのアクティブなデータベースに関連する FODC データを収集します。 デフォルトで、このオプションはアクティブです。
-member member_number|member_range
バージョン 9.7 フィックスパック 5 以降のフィックスパックで、コマンドの発行対象のメンバーを 1 つ以上指定します。 このオプションを指定しない場合、コマンドは現行メンバーに対して発行されます。 複数のメンバーを指定する場合は、コンマで区切られたリスト、メンバーの範囲、またはその組み合わせとして指定します。
例: db2fodc -hang -member 1-3,5-7
すべて
db2nodes.cfgファイルに定義されるすべてのメンバーに対してコマンドが発行されることを指定します。 このオプションを-host オプションと結合してはなりません。
-allmembers
このコマンドをローカル・ホストのすべてのメンバーに対して実行するように指定します。 -allmember-memberパラメーターの-all サブオプションの違いを説明するために、以下の例を検討してください。
  • メンバー 1 および 2 はホスト A 上に存在します。
  • メンバー 3 および 4 はホスト B 上に存在します。
  • メンバー 1、2、3および 4 は、すべて db2nodes.cfg ファイルに定義されています。
  • ホストAで-allmember パラメーターを指定してコマンドを実行すると、メンバー1と2のデータが収集されます。
  • -member パラメーターに-allサブオプションを指定してコマンドを実行すると、4 つのメンバーすべてのデータが収集されます。
-allmember パラメーターは -alldbp パラメーターと同じですが、 -allmember パラメーターは pureScale® 環境での使用に適しています。
-dbp-dbpartitionnum
すべての指定のデータベース・パーティション番号に関連する FODC データを収集します。 -dbp パラメーターは-memberパラメーターと同じですが、-dbp パラメーターは pureScale 以外の環境での使用に適しています。
-alldbp-alldbpartitionnums
インスタンス内のすべてのアクティブなデータベース・パーティション・サーバーでコマンドを実行することを指定します。 データは、db2fodc コマンドが実行されているのと同じ物理マシン上のデータベース・パーティション・サーバーから収集されます。 -alldbp パラメーターは-allmemberパラメーターと同じですが、-alldbp パラメーターは pureScale 以外の環境での使用に適しています。
-alldbp パラメーターを使うと、データはローカル・メンバーからのみ収集されます。
-timeout timeout_value
db2fodc コマンドによって開始されたコールアウト・スクリプトのタイムアウト期間を指定します。 コールアウト・スクリプトが診断データの収集を完了する前にタイムアウトに達すると、そのスクリプトのプロセスは停止されます。 デフォルトのタイムアウトはありません。 したがって、タイムアウト値が指定されていなければ、コマンドは永久に実行されます。 タイムアウトは、nh ym xs と指定します。n は時間を、y は分を、そして x は秒を表します。 h、m、および n のいずれの接尾部も指定しない場合、タイムアウトの単位は秒です。
例えば、-timeout 2h 30m 45s-timeout 600 となります。
-fodcpath fodc_path_name
バージョン 9.7 フィックスパック 4 以降のフィックスパックで、FODC データ・パッケージが作成されるディレクトリーの絶対パスを指定します。 指定するパスは、データベース上のメンバーが書き込み可能な場所でなければなりません。さらに、そのメンバーまたはパーティション上で実行される fmp プロセスで書き込み可能な場所でなければなりません。 -fodcpathパラメーターを指定せず、コマンドにパーティションまたはメンバーのリストを指定しない場合は、現行パーティションまたはメンバーの -fodcpathパラメーター設定が使用されます。 この値が設定されていなければ、インスタンス・レベルの設定が使用されます。 この値が設定されない場合、FODC データは現行の診断ディレクトリー・パス (diagpath または alt_diagpath) に送信されます。
-host ホスト名
バージョン 9.7 フィックスパック 4 以降のフィックスパックで、コマンドの発行対象のホストを 1 つ以上指定します。 コマンドは、指定されたホスト上に存在するすべてのメンバーに対して発行されます。 ホスト名を指定しないと、このコマンドはローカル・ホスト上のデフォルト・メンバーに対して発行されます。 複数のホストを指定する場合は、コンマで区切られたホストのリストとして指定します。 このコマンドをリモート・ホストに対して実行する場合は、収集モード (基本または完全) を指定する必要があります。 また、ホスト間に$HOME/.rhostsが設定されるように確保してください。 -host オプションを-member オプションに結合してはなりません。
例: db2fodc -hang basic -host hostA,hostB
すべて
db2nodes.cfgに定義されるすべてのホストでコマンドの発行を指定します。
例: db2fodc -hang basic -host all

しきい値パラメーター

環境が特定のしきい値に達したときにデータを収集するには、-detectパラメーターと1つ以上のしきい値パラメーターを使ってください。

-detect threshold_rule "<comparison_operator> threshold_value" threshold_options
バージョン 9.7 フィックスパック 5 以降のフィックスパックで、データ収集がトリガーされる前に存在する必要がある条件の集合を指定します。 -detect パラメーターは、しきい値と組合せられ、比較演算子に区切られた、しきい値ルールの1つ以上の変数と組み合わせることができます。 データ収集は、しきい値オプションを追加することにより、さらに詳細に指定されます。 しきい値オプションの例としては、データ収集がトリガーされるために必要なしきい値の検出回数またはしきい値の検出期間があります。 -hadr データ収集を除き、少なくとも 1 つの有効なしきい値規則を指定しなければなりません。 検出すると、db2diag ログ・ファイルに記録されます。
-detect パラメーターは、以下のメイン・データ収集パラメーターと互換性があります。
  • -cpu
  • -memory
  • -connections
  • -hadr
  • -hang
  • -perf
  • -cpl
  • -preupgrade
しきい値ルール
しきい値を検出するシステムの条件。 しきい値規則は複数指定できます。 サポートされているしきい値規則は以下のとおりです。
swapused
AIX® オペレーティング・システムでは、以下の場所にあるパーセンテージ値Percent Used"lsps -s コマンドの出力の列。
Linux オペレーティング・システムでは、使用されているスワップ・スペースを合計スワップ・スペースで除算し、それに 100% を乗算します。
Windows オペレーティング・システムでは使用できません。
rqueue
現在実行キュー内にあるプロセス数。
bqueue
現在ブロック・キュー内にあるプロセス数。 このオプションは、Windows オペレーティング・システムでは使用できません。
avm
AIX オペレーティング・システムでは、アクティブな仮想ページの数。
Linux および Windows オペレーティング・システムの場合は、アクティブ・メモリーの量。
free
AIX オペレーティング・システムでは、アイドル・メモリーの量。 実メモリーの大部分は、ファイル・システム・データのキャッシュとして使用されます。 フリー・リストのサイズが小さいままであるのは珍しいことではありません。 1 ページは 4096 バイトです。
Linux オペレーティング・システムでは、アイドル・メモリーの量。 すべての Linux ブロックは 10247 バイトです。
pi
AIX および Windows オペレーティング・システムでは、ページング・スペースからページインされたページの数。
Linux オペレーティング・システムでは使用できません。
po
AIX および Windows オペレーティング・システムでは、ページング・スペースにページアウトされたページの数。
Linux オペレーティング・システムでは使用できません。
si
AIX および Windows オペレーティング・システムでは使用できません。
Linux オペレーティング・システムでは、ディスクからスワップインされた 1 秒当たりのメモリー量。
so
AIX および Windows オペレーティング・システムでは使用できません。
Linux オペレーティング・システムでは、1 秒当たりにディスクにスワップされるメモリーの量。
sr
AIX オペレーティング・システムでは、ページ置換アルゴリズムによってスキャンされるページ。
Linux および Windows オペレーティング・システムでは使用できません。
us
ユーザー (非カーネル) のコードの実行に費やされた時間 (プロセッサー・ティック数で表されます)。
sy
カーネル・コードの実行に費やされた時間 (プロセッサー・ティック数で表されます)。
us_sy
カーネルおよびユーザー (非カーネル) のコードの実行に費やされた時間 (プロセッサー・ティック数で表されます)。
ID
プロセッサー・アイドル時間 (プロセッサー・ティックで表されます)。
CS
コンテキスト・スイッチ回数。
接続
connstatus オプションによって指定された状況での接続されたアプリケーションの数。 データベース接続数を判別するために db2pd -application コマンドが呼び出されます。
比較演算子 (comparison_operator)
>=(以上)または<=(以下)のサポート比較演算子のどちらか 。
threshold_value
指定するしきい値規則のための数値。 指定できるのは、負ではない整数だけです。

threshold_value をどこに設定するかを決定する際には、threshold_rule パラメーターの現行値が参考になります。 以下に例を示します。

  • connections (接続済みアプリケーション) の現在の数を調べるには、db2pd -application コマンドを実行します。

  • swapusedの現行値を判別するには、表2を参照してください。

    その他すべての threshold_rule 値については、ご使用のオペレーティング・システムに応じて、表 2 の 2 行目に記載しているコマンドを参照してください。 最初の列に、db2fodc コマンドに含めるしきい値規則を示しています。 その後の列に、コマンドの出力中で探すべきコードを示しています。 例えば、アクティブ・メモリーの量が AIX システムのパフォーマンスに影響していると考えられる場合は、 vmstat コマンドを実行します。 このコマンドの出力には、現在のアクティブ・メモリーの量が avm で表されます。 この数値を使用して、検出するのに適切なしきい値を決定できます。

条件=condition_value
複数のしきい値規則を指定する場合、論理演算子を使用して、それらのしきい値規則を併せて 1 つのしきい値にすることができます。 デフォルトはANDしきい値規則です。 有効な条件値は以下のとおりです。
すべてのしきい値規則が真である場合、データ収集がトリガーされます。 例えば、db2fodc -memory -detect free"<=10" connections">=1000" condition="AND" などです。 この例では、空きメモリーが 10 以下であり、かつ接続数が 1000 以上である必要があります。 データ収集がトリガーされるには、両方の条件が真でなければなりません。 AND はデフォルトであるため、この例にとって必要ありません。
OR
しきい値規則が 1 つでも真である場合、データ収集がトリガーされます。 例えば、db2fodc -memory -detect free"<=10" connections">=1000" condition="OR" などです。 この例では、空きメモリーが 10 以下であるか、または接続数が 1000 以上である必要があります。 条件が 1 つでも真であれば、データ収集がトリガーされます。
threshold_options
duration=duration_value
しきい値検出と診断データ収集を有効にする期間を時間単位で指定します。 つまり、db2fodc コマンドの最大の実行時間です。 刻時機構は、コマンドが発行されると同時に開始します。
反復=iteration_value
しきい値検出と診断データ収集を行う最大回数を指定します。 デフォルトでは反復は 1 回です。
スリープ時間=sleeptime_value
次の反復を開始するまでに待機する時間を秒単位で指定します。 デフォルトは 1 秒です。
triggercount=triggercount_value
診断データ収集がトリガーされるために必要な、1 回の反復におけるしきい値条件の連続検出回数を指定します。 デフォルトは 5 回です。 トリガー条件が検出されるたびに、指定された interval 値の期間、検出が一時停止します。
interval=interval_value
1回の反復での各triggercount間の時間を秒単位で指定します。 デフォルト値は 1 秒です。 triggercount値で掛けると、intervalは合計時間をTRIGGERデータ収集に抑えなければなりません。
例えば、パラメーターはtriggercount=3interval=5として設定されます。 データ収集が開始されるためには、しきい値規則で指定された条件に、5 秒の検出間隔で 3 回連続して適合する必要があります。 したがって、条件下で 15 秒間 (3 x 5) が経過すると、データ収集がトリガーされます。
connstatus=status_value
connections しきい値規則の接続状態を指定します。 デフォルトでは、データベースに接続されているアプリケーションのすべての接続状況を対象とします。 あるいは、以下の有効な接続状況のいずれかを選択します。
CommitActive
作業単位がデータベース変更をコミットしています。
コンパイル中
データベース・マネージャーがアプリケーションに代わって SQL ステートメントのコンパイルまたはプランのプリコンパイルを行っています。
ConnectCompleted
アプリケーションがデータベース接続を開始し、要求は完了しています。
ConnectPending
アプリケーションがデータベース接続を開始しましたが、要求はまだ完了していません。
CreatingDatabase
エージェントがデータベース作成の要求を開始しましたが、要求はまだ完了していません。
切り離し
現在アプリケーションにはエージェントが関連付けられていません。 これは正常な状態です。 接続コンセントレーターが使用可能なときは、専用コーディネーター・エージェントがないので、アプリケーションをコーディネーター・パーティションで分離することができます。 非コンセントレーター環境では、常に専用コーディネーター・エージェントが存在するため、アプリケーションをコーディネーター・パーティションで分離することはできません。
DisconnectPending
アプリケーションがデータベースの切断を開始しましたが、コマンドの実行はまだ完了していません。 アプリケーションがデータベース切断コマンドを明示的に実行していない可能性があります。 切断せずにアプリケーションが終了すると、データベース・マネージャーがデータベースとの接続を切断します。
FederatedRequest保留
アプリケーションはフェデレーテッド・データ・ソースからの結果を待っています。
HeuristicallyCommitted
作業単位は、ヒューリスティックにコミットされたグローバル・トランザクションの一部です。
HeuristicallyAborted
作業単位は、ヒューリスティックにロールバックされたグローバル・トランザクションの一部です。
ロック待機
作業単位がロックを待機しています。 ロックが付与されると、状況は直前の値に復帰します。
PendingRemote要求
アプリケーションはパーティション・データベース・インスタンス内のリモート・パーティションからの応答を待っています。
PerformingLoad
アプリケーションは、データベースへのデータのロードを実行中です。
PerformingBackup
アプリケーションは、データベースのバックアップを実行中です。
PerformingUnload
アプリケーションは、データベースからのデータのアンロードを実行中です。
QuiescingTablespace
アプリケーションは、表スペースの静止要求を実行中です。
RequestInterrupted
要求の割り込みが進行中です。
再コンパイル中
データベース・マネージャーがアプリケーションに代わってプランを再コンパイル (再バインド) しています。
RestartingDatabase
アプリケーションは、クラッシュ・リカバリーを実行するためにデータベースを再始動しています。
RestoringDatabase
アプリケーションは、バックアップ・イメージをデータベースにリストアしています。
RollbackActive
作業単位は、データベース変更をロールバック中です。
RollbackToセーブポイント
アプリケーションは、セーブポイントまでのロールバックを実行中です。
TransactionEnded
作業単位は、終了はしているが 2 フェーズ・コミット・プロトコルの準備段階にはまだ入っていないグローバル・トランザクションの一部です。
TransactionPrepared
作業単位は、2 フェーズ・コミット・プロトコルの準備段階に入っているグローバル・トランザクションの一部です。
UOW-実行
データベース・マネージャーが作業単位に代わって要求を実行しています。
UOW 待機
データベース・マネージャーがアプリケーションの作業単位に代わって待機しています。 通常、この状況はシステムがアプリケーションのコード内で実行中であることを示します。
UOWQueued
作業単位は、キューに入れられ、別のアクティビティーが実行を完了するのを待機しています。 作業単位がキューに入れられているのは、並行実行アクティビティー数のしきい値に達しているためです。
不明 (Unknown)
待機自律
アプリケーションは自律型ルーチンが完了するのを待機しています。
WaitToDisableTablespace
アプリケーションは入出力エラーを検出したため、特定の表スペースを無効にしようとしています。 アプリケーションは、表スペースを無効にする前に、 表スペース上のその他のすべてのアクティブなトランザクションが完了するまで待機する必要があります。
OFF
すべてのしきい値検出を停止し、現在アクティブなしきい値規則をオフにします。 offが指定される同時に、他のオプションも指定される場合、他のオプションは無視されます。 しきい値検出のオフが完全に有効になって実行中のすべての db2fodc -detect コマンドがシャットダウンされるまでには、最長で 60 秒必要です。
-nocollect
診断データを収集しないように指定します。 しきい値検出は db2diag ログ・ファイルに記録されます。 通常、このオプションは、しきい値に達しているかどうかは調べたいが、データ収集によってシステムを輻輳させたくないという場合に使用します。 データの収集を開始する場合、off パラメーターでコマンドを中止してから、-nocollectパラメーターを指定せずにコマンドを再発行します。
表 2. しきい値を決定するためのコマンド
オペレーティング・システム AIX Linux Windows
使用されたコマンド vmstat vmstst -a db2pd -vmstat
実行キュー (rqueue) r r r
ブロック・キュー (bqueue) b b 適用外
アクティブ・メモリー (avm) avm active used
空きメモリー (free) fre free free
ページイン (pi) pi 適用外 pi
ページアウト (po) po 適用外 po
スワップイン (si) 適用外 si 適用外
スワップアウト (so) 適用外 so 適用外
スキャンされたページ (sr) sr 適用外 適用外
ユーザー CPU (us) us us usr
システム CPU (sy) sy sy sys
ユーザーとシステム CPU (us_sy) us+sy us+sy us+sy
アイドル CPU (id) ID ID idl
コンテキスト・スイッチ (cs) cs cs cs/s
表 3. 使用されたスワップ・スペースを調べるためのコマンド
オペレーティング・システム 使用されたコマンド 使用済みスワップ・スペース (swapused)
AIX lsps -s 以下の場所にあるパーセンテージ値Percent Used
Linux free (合計スワップ・スペース/使用されたスワップ・スペース)*100%
Windows 適用外 適用外
図1: DB2FODC コマンドの例
DB2FODC コマンドのグラフィック例。

即時収集の例

以下の基本的な db2fodc コマンドの例は、問題が発生した場合に手動で診断データを収集する方法を示しています。

-hang

潜在的なハング状態について検討します。 Db2 ソフトウェアは安定した状態で実行されていますが、特定の表で複数のレコードを更新または選択すると、アプリケーションがハングします。 Db2 ソフトウェアを再始動すると、システムは安定した状態に戻ります。 ただし、1 週間経つと同じ状態が発生します。

自分で、または IBM サポートの支援を受けて問題のトラブルシューティングを行うには、 db2fodc コマンドを使用して診断データを収集してください。 すべてのアクティブ・データベースでデータを収集するために、潜在的なハングの発生中に、以下のコマンドを実行します。
db2fodc -hang –alldbs
-hang パラメーターを追加することにより、 IBM サポートが潜在的なハングを分析するのに役立つ基本的なオペレーティング・システム、構成、および診断情報が収集されます。
以下の例は、潜在的なハング状態に関する診断情報を収集するための別の方法を示しています。
  • 特定のデータベース (SAMPLE) で潜在的なハング状態に関するデータを完全データ収集モードで収集するには、以下のコマンドを実行します。
    db2fodc -hang full -db SAMPLE
    メイン・データ収集パラメーターの完全モードが開始されます。 このオプションの実行には、基本収集モードより多くのリソースおよび時間が必要になります。 データ収集が行われるのは、データベース SAMPLE に限定されます。
  • db2nodes.cfgファイルに定義されるすべてのホストで潜在的なハング状態のデータを収集するには、次のコマンドを実行してください。
    db2fodc -hang basic -host all
    メイン・データ収集パラメーターの基本モードが開始されます。

-profile

-profile パラメーターは拡張オプションです。 これにより、-hangパラメーターを使用するよりも、データの収集方法を丁寧に制御できます。 db2fodc.profileファイルのプロファイルをカスタマイズすることにより、他の方法では制御できないさまざまなパラメーターを調整できます。 以下に、カスタマイズされたプロファイルの例を示します。
[collectstack]
db2pdstack_iterations=9
db2pdstack_sleep=30
<end>
プロファイルを作成したら、以下の例のように、パフォーマンス問題の発生中にコマンドにプロファイルの名前を指定します。
db2fodc -profile collectstack
これにより、9 回の反復と 30 秒のスリープ時間でスタック・トレースが生成されます。 プロファイルで指定できるパラメーターの完全なリストは、sqllib/bin/db2cos_hang スクリプトにあります。 プロファイル・パラメーターは、 IBM サポートの指示がある場合にのみ使用することをお勧めします。

-perf

アプリケーション・プロセスの進行が遅い場合や、ある特定のデータベースで大量のリソースが使用されている状況について検討します。 データベースは引き続き使用可能でハングしていないため、サポートに連絡する前に、-perfメインデータ収集パラメーターで診断情報を収集できます。 パフォーマンス問題の発生中に、以下のコマンドを実行します。
db2fodc -db SAMPLE -perf full
-perf パラメーターを組み込んだ場合に収集されるデータには、スナップショット、スタック・トレース、仮想メモリー、入出力情報、トレースなどがあります。 この例では、完全データ収集モードが開始され、その対象は SAMPLE データベースに制限されます。 完全モードはより多くのリソースを必要とし、実行時間が長くなることがあります。
以下のコマンドは、データ収集を特定のメンバーに制限する方法を示す一例です。
db2fodc -perf -member 10-13,15
この例では、 db2fodc -perf コマンドは、メンバー 10、12、13、および 15 に対してデフォルトの基本収集モードで開始されます。

-cpu

バージョン 9.7 フィックスパック 5 以降のフィックスパックで、プロセッサーで異常な数のプロセスが実行されていることが疑われる場合について検討します。 プロセッサーの使用状況に関連する問題の診断データを収集するには、以下のコマンドを発行します。
db2fodc –cpu full
このコマンドをピーク時とアイドル時の両方で数回実行して、この症状が長時間続いているかどうかについて、正確な結論を出します。 完全データ収集モードが開始され、デフォルトの DB2FODC レジストリー変数およびパラメーターが使用されます。

-memory

バージョン9.7フィックスパック5以降のフィックスパックで、使用可能な空きメモリーがない、スワップ・スペースが高速で使用されている、過剰なページングが発生している、またはメモリー・リークが発生していると思われる場合は、-memoryパラメーターを使用してください。 メモリ関連の診断データを収集します。 以下に、コマンドの例を示します。
db2fodc –memory full -member 3
この例では、完全データ収集モードが開始され、その対象は 3 番目のメンバーに制限されます。

-connections

バージョン 9.7 フィックスパック 5 以降のフィックスパックで、データベース接続に関連するパフォーマンス上の問題としては、実行状態またはコンパイル状態のアプリケーション数の急上昇や、新しいデータベース接続の拒否が見られる場合があります。 このような症状が見られた場合には、以下のコマンドを実行します。
db2fodc –connections

-clp

インスタンスをアップグレードまたは作成した後に、エラーが発生する場合があります。 そのようなエラーには、例えば DBI1281E が考えられます。 このエラー・コードは問題の根本原因を示さないため、さらに詳しい診断情報が必要になります。 バージョン 9.7 フィックスパック 5 以降のフィックスパックで、問題のトラブルシューティングを進めるには、以下のコマンドを実行します。
db2fodc –clp full
このコマンドは、インスタンスの作成に関する問題を診断する目的で、環境および構成関連の情報を収集します。 収集が完了すると、 FODC_Clp_timestamp_memberという名前の新しく作成されたディレクトリーに情報が保管されます。このディレクトリーは、分析のために IBM サポートに送信できます。

-preupgrade

バージョン 9.7 フィックスパック 5 以降のフィックスパックで、インスタンスを作成またはアップグレードする前、および次のフィックスパックに更新する前には、SQL ステートメントへの影響を含め、アップグレード後に発生する可能性のある問題のトラブルシューティングに役立つように、診断情報を収集してください。 更新またはアップグレードを行う前にパフォーマンス関連の情報を収集するには、以下のコマンドを実行します。
db2fodc -preupgrade -db SAMPLE -par DYN_SQL_FILE=sqlFile
ここで、SAMPLE は情報を収集するデータベースの名前です。 sqlFile は、最も代表的なワークロードである SQL ステートメントが入ったファイルです。 -upgradeパラメーターに-par DYN_SQL_FILE=sqlFileオプションを指定しない場合、動的SQLキャッシュから20 個の動的照会が取得されます。 最良のパフォーマンス情報を収集するためには、使用率の高い時間とアイドル時間の両方で、db2fodc -preupgrade コマンドを複数回実行します。 アップグレード後にも、同じコマンドを再度実行します。 アップグレード後にパフォーマンス問題が発生した場合に、アップグレードの前と後のコマンド出力を比較します。 さらに支援が必要な場合は、 IBM サポートに連絡してください。

-hadr

バージョン 9.7 フィックスパック 7 以降のフィックスパックでは、db2fodc コマンドを使用して、HADR 輻輳に関するデータを収集できます。 HADR 輻輳が疑われる場合は、HADR 輻輳が発生しているため、 –hadr パラメーターを指定して以下の 1 つ以上の db2fodc コマンドを発行します。 例えば、システムが 1 次ホスト hostA とスタンバイ・ホスト hostB で構成されているとします。
  • HADR 関連のデータを手動で収集するには、以下のコマンドを実行します。
    db2fodc -hadr -db sample
    このコマンドは、 db2cos_hadr (Windows の場合はdb2cos_hadr.bat ) スクリプトを開始し、収集されたデータを FODC_Hadr_timestamp_hostname_Primary|Standby|Standard ディレクトリーに配置します。このディレクトリーは、 DIAGPATH ディレクトリーに作成されます。
  • すべてのホストで HADR 診断データを収集するには、以下のコマンドを実行します。
    db2fodc –hadr –db sample –host all
    このコマンドは、すべてのホストでデータを収集し、収集データを各ホストのDIAGPATHディレクトリーに配置します。
  • 1 次ホストとスタンバイ・ホストで明示的に HADR 診断データを収集するには、以下のコマンドを実行します。
    db2fodc –hadr –db sample –host hostA,hostB
  • ホストBでHADR 診断データを収集し、FODC_Hadrパッケージをホスト BDIAGPATH ディレクトリーに配置するには、 ホスト Aで以下のコマンドを実行してください。
    db2fodc –hadr –db sample –host hostB
  • FODC_Hadr パッケージを別のディレクトリー (例えば、 /TMP/hadrdata/ ディレクトリー) に配置するには、以下のコマンドを実行してください。
    db2fodc –hadr –db sample –host all –fodcpath /TMP/hadrdata/

-fodcerror FODC_IndexError_directory

索引エラーを受け取った場合について検討します。 このエラーは、索引がフリー・スペースをすべて使い尽くしたことを通知します。 データベース・マネージャーを停止せずに索引エラーに関するデータを収集するには、以下のコマンドを発行します。
db2fodc -fodcerror FOCE_IndexError_directory
基本データ収集モードが開始されます (これがデフォルトであるため)。 データは、 FODC_IndexError_directory ディレクトリーに保存される1つ以上のファイルに収集されます。 索引エラーの原因となる可能性がある要因について出力を確認するか、分析のためにディレクトリーを IBM サポートに送信してください。

しきい値による収集例

-detect パラメーターと 1 つ以上のしきい値規則を指定することにより、CPU パフォーマンス、メモリー、および接続に対する値を設定できます。 システムがモニターされ、しきい値規則に達した時点でデータが収集されます。

以下の例は、-detect パラメーターで診断情報の収集方法を示しています。

-cpu

バージョン 9.7 フィックスパック 5 以降のフィックスパックでは、-cpu メイン・データ収集パラメーターは、プロセッサー関連のパフォーマンス・データと診断データを収集します。 
  • 実行キュー内のプロセス数に関係している可能性のある、断続的に発生するプロセッサーの問題を検出するには、以下のコマンドを実行します。
    db2fodc -cpu basic -detect us">=90" rqueue">=1000" condition="AND"
       triggercount="3" interval="2" iteration="4" sleeptime="100" 
       duration="500" -member all
    -detectパラメータに独自のルールを指定して、診断データの収集をいつ開始するかを決定できます。 この例では、すべてのメンバーで診断データ収集をトリガーするために、両方のトリガー条件(condition="AND"がデフォルト) (us">=90" rqueue">=1000"rqueue">=1000")が 6 秒 (triggercount="3" X interval="2" =6 秒)存在しなければなりません。 トリガー条件が発生すると、診断データが収集されます。 トリガー条件が発生しなければ、その反復の範囲内でトリガー条件の検出が続けられます。 トリガー条件の検出と診断データ収集を 4 回実行するように、反復オプションが 4 に設定されています。それらの実行の間のスリープ時間は 100 秒になっています。 コマンドは、4 回の反復がすべて正常に完了した後、または 500 時間後に終了します。 (duration="500")
  • カーネルおよびユーザー・コードの実行に費やされるプロセッサー時間に問題があるためにプロセッサーのパフォーマンスが劣化していると疑われる場合は、以下のコマンドを実行します。
    db2fodc -cpu full -detect us”>=20” sy”>=10” condition=”OR”
    この-detectパラメーターは、しきい値ルールと組み合わされて、しきい値ルールの指定トリガー条件が検出されるまで、プロセッサー関連情報の収集を遅らせます。 演算子 OR が選択されており、これは、いずれか 1 つのしきい値に達するだけで、データ収集がトリガーされることを意味します。 トリガーカウント値と間隔値が指定されないため、デフォルト値(triggercount=5interval=1)が使われます。 したがって、しきい値ルールの1つが5秒間に5回連続して満たされると(triggercount=5 X interval=1)、CPU関連のデータ収集がトリガーされます。 しきい値規則に適合することがなければ、コマンドは無期限で実行されます。 このプロセスを停止するには、次のコマンドを実行します。
    db2fodc -detect off
    db2fodc -detect off コマンドは、すべてのしきい値検出を停止し、現在アクティブなしきい値規則をすべてオフにします。 このプロセスが完了して、サーバー上で実行中のすべての db2fodc -detect コマンドが停止されるまでには、最長で 60 秒かかることがあります。

-memory

バージョン9.7フィックスパック5以降のフィックスパックでは、–memoryパラメーターは、メモリーの急増、ページングの問題またはメモリーのオーバーコミットのデバッグに役立つ場合もあります。
  • AIX オペレーティング・システム上の仮想メモリー作業セグメント・ページの総数が多すぎるために、システムのパフォーマンスが低下している状況を考慮してください。 その場合、以下のコマンドを実行できます。
    nohup db2fodc -memory basic -detect "avm>=5242880" duration=1000 &
    この例では、nohupモードにより、コマンドはHUP(ハングアップ)信号を無視できるため、後続のログアウトによってコマンドのバックグラウンドでの実行が中止されなくなります。 この理由から、コマンドには 1000 時間の期間が指定されています。 duration パラメーターにはデフォルトがないため、duration が指定されない場合、条件が満たされなければコマンドは永久に実行されます。
  • しきい値条件を検出し、しきい値条件を複数回超過した場合に自動診断データ収集をトリガーすることができます。 以下のコマンド例について考慮します。
    db2fodc -memory basic -detect free"<=10" connections">=1000" interval=10 triggercount=4 duration=5 sleeptime=30 iteration=10 -member 3
    この例では、空きメモリブロックの数(free"<=10")とデータベースへのアプリケーション接続の数(connections">=1000")を監視します。 演算子はデフォルトでANDです。 メンバー3のみが条件(-member 3)を監視されます。 10回の反復があり、各反復の間に30秒の休憩があります。 両方の条件が40秒間に4回連続して満たされると、データ収集がトリップされます(triggercount=4 X interval=10)。
  • 空きメモリーの量が特定の量まで減少した場合にデータ収集をトリガーするには、以下の例のコマンドを実行します。
    db2fodc -memory basic -detect free"<=386236" so">=0" sleeptime=30 iteration=10 interval=10 triggercount=4 duration=5
    以下は、空きメモリー・ページ数が 386236 以下に減少し、スワップアウトされたメモリー量がゼロより大きい場合のデータ収集の出力例です。
    > db2fodc -memory basic -detect free"<=386236" so">=0" sleeptime=30 iteration=10 interval=10 triggercount=4 duration=5
    "db2fodc": List of active databases: "SAMPLE"
    "db2fodc": Starting detection ...
    "db2fodc": "4" consecutive threshold hits are detected.
    "db2fodc": Triggering collection "1".
    Script is running with following parameters
    COLLECTION_MODE           : LIGHT
    COLLECTION_TYPE           : MEMORY
    COLLECTION_DURATION       : 5
    COLLECTION_ITERATION      : 5
    DATABASE/MEMBER           : -alldbs
    FODC_PATH                 : /home/inst1/sqllib/db2dump/FODC_Memory_2013-04-02-15.47.56.969013_0000
    db2pd_options             : -agent -apinfo -active -tran -locks -bufferpools -dbptnmem -memset -mempool -sort -fcm hwm  -dyn
    SNAPSHOT                  : 2
    STACKTRACE                : 2
    TRACELIMIT                : 20
    SNAPSHOT_TYPE             : ALL
    ...
    
    In db2diag.log:
    
    2013-04-02-15.47.55.154348-240 I200475E548           LEVEL: Event
    PID     : 8944                 TID : 46912890796352  KTID : 8944
    PROC    : db2fodc
    INSTANCE: inst1               NODE : 000
    HOSTNAME: coralxib11
    FUNCTION: DB2 UDB, RAS/PD component, pdFodcDetectAndRunCollection, probe:100
    CHANGE  :
    Hostname: coralxib11   Member(s): 0   Iteration: 1
    Thresholds hit 0: so(0)>=0 free(159972)<=386236
    Thresholds hit 1: so(0)>=0 free(157872)<=386236
    Thresholds hit 2: so(0)>=0 free(129572)<=386236
    Thresholds hit 3: so(0)>=0 free(142952)<=386236
    
    .....
    
    2013-04-02-15.47.56.969683-240 E201708E703           LEVEL: Warning
    PID     : 9519                 TID : 46912890796352  KTID : 9519
    PROC    : db2fodc
    INSTANCE: inst1               NODE : 000
    HOSTNAME: coralxib11
    FUNCTION: DB2 UDB, RAS/PD component, pdDb2FODCMain, probe:30
    MESSAGE : ADM14003W  FODC has been invoked by the user from db2fodc tool for
              symptom "memory" and diagnostic information has been recorded in
              directory
              "/home/inst1/sqllib/db2dump/FODC_Memory_2013-04-02-15.47.56.969013_0
              000". Please look in this directory for detailed evidence about what
              happened and contact IBM support if necessary to diagnose the
              problem.

-hadr

HADR 輻輳をモニターし、自動診断データ収集を開始するには、 db2fodc コマンドの -detect オプションに -hadr パラメーターを指定します。 以下の例では、システムが 1 次ホスト hostA とスタンバイ・ホスト hostB で構成されていると想定しています。
  • HADR 輻輳が検出された場合に自動的に診断データ収集を開始するには、以下のコマンドを実行します。
    db2fodc –hadr –db sample –detect
    このコマンドは、HADR データベースをモニターするプロセスを開始して、データ収集を開始するのに十分な輻輳が発生しているかどうかを調べます。 HADR 輻輳が十分にある場合は、 db2cos_hadr (Windows オペレーティング・システム上のdb2doc_hadr.bat ) スクリプトが開始され、診断データの収集が行われます。 診断データの収集が完了すると、プロセスは終了します。 十分な HADR 輻輳が検出されない場合、検出期間が duration パラメーター値を超えるか、ユーザーが以下のコマンドを発行してスクリプトを終了するまで、モニターは実行されます。
    db2fodc -detect off
  • ローカル・ホストで特定の量の HADR 輻輳が検出された場合にすべてのホストで自動的に診断データ収集を開始するには、以下のコマンドを実行します。
    db2fodc –hadr –db sample -detect -host all
    輻輳が検出されると、すべてのホストで HADR 診断データが収集されます。
  • HADR 輻輳が発生しているかどうかは調べたいが、診断データの収集によってシステムをスローダウンさせたくないという場合について検討します。 以下のコマンド例を実行します。
    db2fodc -hadr -db sample -detect -nocollect
    診断データは収集されません。 ただし、HADR 輻輳が検出された場合、イベントは db2diag ログ・ファイルに記録されます。
  • 特定の期間にわたって HADR 輻輳の有無を調べるには、以下のコマンドを実行します。
    db2fodc -hadr -db sample -detect duration=24
    HADR 輻輳は24 時間監視されます (duration=24)。 iteration のデフォルトは 1、 triggercount のデフォルトは 10、 interval のデフォルトは 30 であるため、HADR 輻輳が300 秒を10 回連続検出されると、データが収集され、コマンドが終了します。
  • しきい値オプションは、–hadr パラメーターに適用できます。 例えば、以下のコマンドを実行します。
    db2fodc -hadr -db sample -detect iteration=2 sleeptime=3600 triggercount=8 interval=15 duration=24
    このしきい値規則は、次のような影響を与えます。
    • HADR 輻輳のモニターは最大で 2 回反復され、各反復の間のスリープ時間は 1 時間です。
    • 15 秒間ごとに 8 回連続してしきい値規則に適合すると、データが収集され、反復が終了します。 それが 1 回目の反復である場合、モニター・プロセスは 1 時間スリープしてから次の反復を開始します。 それが 2 回目の反復である場合、モニター・プロセスは終了します。
    • 検出モニター・プロセスは最大で 24 時間実行されます。
    • 24 時間後に HADR 輻輳が検出されておらず、検出プロセスが停止し、モニター・プロセスは終了します。
    • HADR 輻輳が検出されなければ、1 回目の反復が 24 時間実行されて終了します。 その場合、1 時間のスリープ時間と 2 回目の反復実行はありません。

-connections

バージョン 9.7 フィックスパック 5 以降のフィックスパックでは、特定のタイプの接続がしきい値に達したときにデータ収集をトリガーするには、以下の例のように、-detect パラメーターを指定して db2pdfodc -connections コマンドを発行します。
db2fodc –connections –db sample –detect connections">=10" connstatus=Compiling
コンパイル状態の SAMPLE データベースに接続しているアプリケーションの数が 10 以上になると、接続関連の診断データが収集されます。

マルチ・パーティション環境

db2fodc -hang および db2fodc -perf コマンドは、 複数の物理ノードがあるマルチ・パーティション環境で実行できます。 この環境では、以下の例が正常に実行されます。
db2fodc -perf full -member all other_options
それとも
db2fodc -perf -alldbpartitionnums other_options
潜在的なハングまたはサーバーのパフォーマンス問題が発生しているときに、パーティション・データベース環境では、上記のパラメーターを使用して、1 つの呼び出しですべてのノード上で db2fodc コマンドを開始することができます。 オプション-alldbpartitionnums-dbpartitionnumは、論理区画番号にのみ適しています。 -dbpオプションまたは-memberオプションが指定されない場合、デフォルトでは、現パーティション番号からの情報のみが収集されます。
db2fodc -fodcerror FODC_IndexError_directory も、複数の物理ノードまたは論理ノードがあるマルチ・パーティション環境で実行することができます。 パーティション・データベース環境内の特定のパーティション番号の索引エラーに関する情報を収集する目的で、以下の例は正常に実行されます。
db2_all "<<+node#< db2fodc -fodcerror FODC_IndexError_directory [basic | full]
ここで、node# は特定のノードの番号です。 この番号は、ディレクトリー FODC_IndexError_timestamp_PID_EDUID_Node#の最後の番号です。 db2fodc -fodcerror FODC_IndexError_directory コマンドを db2_all コマンドと一緒に実行する場合は、絶対パスを使用する必要があります。 出力ファイルとログ・ファイルは、 db2diag ログ・ファイルにあります。 FODC_IndexError_directory フォルダーは必須で、db2cos_indexerror_short(.bat) スクリプトまたはdb2cos_indexerror_long(.bat)スクリプトを取り組めなければなりません。 FODC_IndexError_directory ディレクトリーを名前変更したり移動したりしないでください。 スクリプト内の db2dart コマンドは、 レポートを正しく生成するためにこのディレクトリー・パスを必要とします。 db2fodc -fodcerror FODC_IndexError_directory を手動で実行する必要がある場合は、 FODC_IndexError_directory ディレクトリーに既存の db2dart レポートがないか確認してください。 レポートの拡張子は.rpt.rpthexです。 ディレクトリー内にレポートがある場合は、手動で db2fodc -fodcerror FODC_IndexError_directory を開始する前に、それらのレポートの名前を変更するか、 FODC_IndexError_directory ディレクトリーの下のサブディレクトリーに移動します。