2.4.3 レコード収集でのOracleアクセスのキャンセル機能
1レコードの収集時間のうち,Oracleへのアクセス時間の上限をタイムアウト値として設定できます。
Oracleおよびマシンに負荷が掛かっているときにレコードデータを収集すると,収集データ量によってレコード収集に時間が掛かる場合があります。このような場合,PFM - Agent for Oracleの要求がOracleの稼働に影響を与えるおそれがあります。タイムアウト値を設定すると,PFM - Agent for OracleからOracleへの要求をキャンセルできるため,Oracleの稼働に与える影響を抑止できます。
レコードの収集は,レコード単位に次の順で行われます。
-
Oracleへのアクセス
-
Storeデータベースへの書き込み
しかし,タイムアウト値を設定した場合,Oracleへのアクセス中にタイムアウトが発生すると,そのレコードの収集がキャンセルされます。
この機能は,OracleのOCI(Oracle Call Interface)のOCIBreak関数によって実現しています。
タイムアウト値は,次に示す方法で設定できます。
-
jpcconf inst setupコマンドによるインスタンス環境設定
-
PFM - Web Consoleの画面の,Agent Collectorサービスのプロパティ「TIMEOUT」の変更
設定できる値は0,または10〜3,600(単位:秒)です。0を指定した場合,この機能は働きません。また,範囲外の値は無効となります。デフォルトの値は,0が設定されています。
タイムアウト値の入力可否を設定方法別に次の表に示します。
設定方法 |
入力値 |
||||
---|---|---|---|---|---|
-1以下 |
0 |
1〜9 |
10〜3,600 |
3,601以上 |
|
jpcconf inst setupコマンドからの設定/更新 |
入力エラー(入力不可) |
○ |
△ |
○ |
入力エラー(入力不可) |
PFM - Web Consoleからの変更 |
× |
○ |
× |
○ |
× |
- (凡例)
-
○:入力可能。
△:入力可能だが,PFM - Agent for Oracleは起動時に,「10」に置き換える。共通メッセージログに「KAVF12630-W」のメッセージが出力される。
×:入力可能だが,値は更新されない。共通メッセージログに「KAVF12630-W」のメッセージが出力される。
- 注意
-
タイムアウト値は,高負荷時(ピーク時)に収集するレコードの収集時間に応じて設定してください。
jpcconf inst setupコマンドによるタイムアウト値の設定については,「2.1.4(4) インスタンス環境の設定」を参照してください。
なお次のレコードはキャンセル対象外です。
-
Instance Availability(PD_PDIA)
-
Server Status(PD_STAT)
-
SQL*Net Listener(PD_PDNL)
-
SQL*Net Listeners(PD_PDLS)
タイムアウトが発生した場合,エージェントログの通常ログ(agtoinf0x.log)に次のメッセージが出力されます。
KAVF12636-I The cancellation of the record collection (レコード名) by the time-out was accepted.
また,キャンセルによりレコードが収集されない場合,共通メッセージログに,「KAVF12401-W」のメッセージが出力されます。
履歴データの収集など複数レコードの収集が同じタイミングで一度に行われる場合,1つのレコードでタイムアウトが発生しキャンセルされても,ほかのレコードの収集はキャンセルされません。
- 注意事項
-
PFM - Agent for Oracleは,OCI(Oracle Call Interface)を使用しており,実際のキャンセルに掛かる時間は,OCIBreak()の処理時間に依存します。このため,即時にはキャンセルされない場合があります。
次の状況では,タイムアウト発生によるキャンセルが受け付けられても,レコード収集はキャンセルされません。
-
タイムアウト発生時に収集シーケンスがStoreデータベースへの書き込みに移っている場合にはキャンセルされません。
-
タイムアウト発生によるキャンセルとOracleアクセスの終了が重なった場合,「KAVF12636-I」のメッセージがログファイルに出力されますが,正常にレコード収集されます。