このチュートリアルでは、JDBC診断の使用方法について説明します。
約30分
このチュートリアルでは、以下のトピックについて説明します。
| 前提条件 | |
| Oracleロギング機能の使用 | |
| JavaNetTraceの起動 | |
| まとめ |
このアイコンの上にカーソルを置くと、すべてのスクリーンショットがロードし、表示されます。
(警告:この操作によって、同時にすべてのスクリーンショットがロードされるため、ご使用のインターネット接続によってはレスポンス時間が遅くなる場合があります。)
注:各手順に関連したスクリーンショットのみを表示する場合は、それぞれの手順にあるアイコンの上にカーソルを置いてください。 スクリーンショットをクリックすると、非表示になります。
このチュートリアルを始める前に以下を確認してください。
| 1. | データベースでのJavaの実行に従って実行していること。 |
|
Oracleロギング機能を使用して問題を診断できます。 この機能は、JDBCドライバ・コードを実行する際に発生するイベントに関する情報を記録します。 イベントには、SQL Exceptionなどユーザーの目に触れるイベント、SQL文の実行、および内部JDBCメソッドの出入りなどの詳細JDBC内部イベントを含めることができます。 この機能を有効にすると、特定のイベントまたはすべてのイベントを記録することができるようになります。
| 1. |
ロギング機能を有効にするには、以下の手順を実行します。 テキスト・エディタを使用して、wkdirディレクトリにあるOracleLog.propertiesファイルを開きます。 トレースするパッケージを修正し、希望のトレース・レベルを選択します。 oracle.jdbc.level = FINER oracle.jdbc.driver.level = FINE
|
|
| 2. |
handlers文を非コメント化します。 非コメント化した文によって、出力がファイルに書き出されることに注意してください。 handlers = java.util.logging.FileHandler
|
|
| 3. | ロギング・タイプをXML、または単純なテキストに修正します。 以下の例では、単純なテキスト形式タイプを使用します。 java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter XML形式での出力を希望する場合は、以下のように文を変更します。 java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter ファイルを保存して、テキスト・エディタからそのファイルを閉じます。
|
|
| 4. | テキスト・エディタを使用して、oraclelog.xmlファイルを開き、CLASSPATH設定を確認します。 CLASSPATHにojdbc5_g.jarファイル(または、_gが付いたJDBC jarファイル)が記述されているのが確認できます。
ファイルを閉じます。
|
|
| 5. | ターミナル・ウィンドウで、以下のように、まずwkdirディレクトリを変更し、次に、対象のプログラム(JDBCプログラム)を実行します。 cd wkdir ant -f oraclelog.xml run.oraclelog
内部的に、以下が起動します。 java -Doracle.jdbc.Trace=true
-Djava.util.logging.config.file=OracleLog.properties
-classpath ${ORACLE_HOME}/jdbc/lib/ojdbc5_g.jar:. BatchUpdates
|
|
| 6. | 出力は、ステップ2で既述したファイルにリダイレクトされます。 このファイル名はjdbc.logです。 jdbc.logファイルを開き、ログ情報を確認します。
すべてのパブリック・オペレーションがトレースされていることに注意してください。 たとえば、setintメソッド、およびsetstringメソッドを使用して、PreparedStatementに整数と文字列をバインドしています。
テキスト・エディタを閉じます。
|
|
JavaNetTraceを有効にすると、ドライバを変更せずにJavaコードをトレースできます。 JavaNetTraceは、
クライアント・サイドのトレーシングに相当し、同様の処理をおこないます。
| 1. | テキスト・エディタを使用して、wkdirディレクトリにあるjnettrace.xmlファイルを開きます。
サーバー・ポートが1521に設定されていることに注意してください。
ファイルを閉じます。
|
|
| 2. | ターミナル・ウィンドウを開きます。 wkdirディレクトリに変更します。 JavaNnetユーティリティを実行し、実行中のJavaNetTraceを確認します。 cd wkdir
ant -f jnettrace.xml run.jnettrace
セッションが接続待ちになっていることに注意してください。
|
|
| 3. | 2つ目のターミナル・ウィンドウを開きます。 wkdirディレクトリに変更します。 cd wkdir 以下のコマンドを実行し、jnetポート経由で接続するサンプルのデモ・プログラムを実行します。 ant -f jnettrace.xml run.sample
これによって、トレース・ファイルが生成されます。
|
|
| 3. |
JavaNetTraceは、クライアント・サイドのトレーシングに相当し、同様の処理をおこないます。 これにより、client_<hex number>.trcファイルが、クライアント・サイドのsqlnetトレースが格納されるローカル・ディレクトリに作成されます。 これは、非依存的に行われるため、JNetTraceは、マシンを問わず、データベース・サーバー上にある必要もありません。 このトレースは、クライアント/サーバーのどのバージョンでも実行することが可能です。 最新の生成ファイルを確認するには、以下の文を実行します。 ls -lt|head
client_xxx.trcファイルを確認できます。
|
|
| 4. | テキスト・エディタを使用して、client_xxx.trcファイルを開き、内容を検証します。
クライアント・サイドSQLnetトレース・ファイルに似ています。 エディタを終了します。
|
|
| 5. |
ターミナル・ウィンドウを閉じます。
|
|
このチュートリアルで学習した内容は、以下のとおりです。
| Oracleロギング機能の使用 | |
| JavaNetTraceの使用 |