デバッグ・トレース
すべてのODP.NETプロバイダはデバッグ・トレースをサポートしており、これにより、ODP.NETのすべてのアクティビティをトレース・ファイルに記録できます。複数のレベルのトレースを使用できます。
トレースでは、次の情報などを記録できます。
-
ODP.NETパブリック・メソッドの開始および終了情報
-
ユーザー指定のSQL文およびプロバイダにより変更されたSQL文
-
登録および登録解除などの接続プーリング統計情報
-
スレッドID(開始および終了)
-
HAイベントおよびロード・バランシングの情報
-
分散トランザクション
-
自動チューニング情報
-
非管理例外におけるユーザーモード・ダンプ
次のプロパティは、すべてのODP.NETプロバイダのトレースを有効にし、構成します。
-
TraceLevel
- トレース・ファイルに書き込むODP.NET詳細を指定します -
TraceFileLocation
- トレースの書込み先となるディレクトリを指定します -
TraceFileMaxSize
– 各トレース・ファイルの最大ファイル・サイズを指定します -
TraceOption
– スレッドごとに個別のトレース・ファイルを使用するかどうかを指定します
デフォルトでは、トレースは無効(TraceLevel = 0
)になっています。トレースを有効にするには、TraceLevel
を目的のトレース・レベルに設定します。
管理対象ODP.NETおよびODP.NET Coreには、次のトレース・レベルがあります。
-
1 = パブリックAPI
-
2 = プライベートAPI
-
4 = ネットワークAPI/データ
これらの値はビット単位ORedにできます。すべてのトレースを有効にするには、TraceLevelを7に設定します。
管理対象外ODP.NETには、次のトレース・レベルがあります。
-
1 = 開始、終了およびSQL実行の情報
-
2 = 接続プーリング統計情報
-
4 = 分散トランザクション(登録および登録解除)
-
8 = 非管理例外におけるユーザーモード・ダンプの作成
-
16 = HAイベント情報
-
32 = ロード・バランシング情報
-
64 = 自動チューニング情報
これらの値はビット単位ORedにできます。すべてのトレースを有効にするには、TraceLevelを127に設定します。
TraceFileLocation
は、値が設定されていない場合、一時オペレーティング・システム・フォルダに書き込みます。
-
ODP.NET Core
-
Windows:
<Windows user temporary folder>\ODP.NET\core\trace
-
Linux:
<current user temporary folder>/ODP.NET/core/trace
-
macOS:
<macOS temporary folder>\ODP.NET\core\trace
-
-
ODP.NET管理対象ドライバ:
<Windows user temporary folder>\ODP.NET\managed\trace
-
ODP.NET管理対象外ドライバ:
<Windows user temporary folder>\ODP.NET\unmanaged\trace
Windowsユーザーの一時フォルダは、Windows TMP
またはTEMP
環境変数など、ローカルのWindows設定で定義されています。通常、C:\temp
またはC:\Users\
<user name>
\AppData\Local\Temp
です。
TraceFileMaxSize
は、値が設定されていない場合、100 MBにデフォルト設定されます。管理者は、この設定を使用してトレース・ファイルを管理可能なサイズに抑えることができます。
TraceOption
は、デフォルトで一度にすべてのスレッドを単一のトレース・ファイルに書き込みます(TraceOption=0
)。
ODP.NETは、新しいトレース・ファイルを作成するたびにトレースが作成されたWindowsイベント・ログにエントリを作成します。イベント・ログ・エントリは、TraceFileLocation
の変更、トレース・ファイルのサイズによるTraceFileMaxSize
の超過、TraceLevel
の変更およびTraceOption
の変更が発生するたびに追加されます。いずれの場合も、ODP.NETは新しいファイルを作成し、新しく作成されたファイルへのトレースの書込みを開始します。ODP.NET Coreでは、Windowsイベント・ログへの書込みがサポートされていません。
ODP.NETトレースを有効にするには、OracleConfiguration
クラス(すべてのプロバイダ)、.NET構成ファイル(管理対象ODP.NETおよび管理対象外ODP.NET)またはWindowsレジストリ(管理対象外ODP.NET)のいずれかで、これらのトレース・プロパティを適切に設定する必要があります。
ODP.NETは、OracleConnection.Open()
コールが発生した後にのみトレース・ファイルへの書込みを開始します。
動的トレース
ODAC 19c以降、アプリケーションはODP.NET OracleConfiguration
クラスのトレース設定を実行時に変更できます。通常、この機能は、アプリケーションの実行を継続しながらトレースを動的に有効および無効にできます。動的トレースは、アプリケーションが長時間実行された後に発生するエラーに役立ちます。顧客は非常に大きなトレース・ファイルの収集を回避でき、Oracle Supportでは、よりターゲットが絞られたトレース・ファイルからの問題の診断が容易になります。
ODP.NET Core、管理対象および管理対象外はいずれも動的トレースをサポートしています。
実行時にトレースを有効にするには、OracleConfiguration.TraceLevel
を目的のトレース・レベルに設定します。トレースを動的に無効にするには、OracleConfiguration.TraceLevel
をゼロに設定します。
実行時トレースの動作を変更できるのは、OracleConfiguration
トレース・プロパティのみです。Windowsレジストリおよび.NET構成ファイルの設定は、アプリケーションの起動時にのみ読み取られます。
一般的に、トレース・ファイルへの書込みはパフォーマンスに影響するため、本番での使用にはトレースをお薦めしません。ただし、本番中にのみ問題が発生する場合は、動的トレースを使用して問題の期間中のトレースを有効および無効にし、根本原因を特定するために診断を取得します。
関連項目: