JDBC診断の使用

目的

このチュートリアルでは、JDBC診断の使用方法について説明します。

所要時間

約30分

トピック

このチュートリアルでは、以下のトピックについて説明します。

 前提条件
 Oracleロギング機能の使用
 JavaNetTraceの起動
 まとめ

スクリーンショットの表示

 このアイコンの上にカーソルを置くと、すべてのスクリーンショットがロードし、表示されます。 (警告:この操作によって、同時にすべてのスクリーンショットがロードされるため、ご使用のインターネット接続によってはレスポンス時間が遅くなる場合があります。)

注:各手順に関連したスクリーンショットのみを表示する場合は、それぞれの手順にあるアイコンの上にカーソルを置いてください。 スクリーンショットをクリックすると、非表示になります。

前提条件

このチュートリアルを始める前に以下を確認してください。

1.

データベースでのJavaの実行に従って実行していること。

トピック・リストに戻る

Oracleロギング機能の使用

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の起動

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の使用

トピック・リストに戻る

 このアイコンの上にカーソルを置くと、すべてのスクリーンショットが非表示になります。