ビジネス・コンポーネントの診断を制御するには、様々なjbo.
xxx システム・プロパティを設定します。デフォルトでは、システム・プロパティ定義は、CLASSPATH
の ./oracle/jbo/common
パス内のDiagnostic.properties
ファイルにあります。
このファイルのデフォルト・バージョンは、OracleホームのBC4J/lib/bc4jmt.jar
ライブラリ内に提供されています。デフォルト設定を永続的に変更するには、このファイルを .jar
アーカイブから解凍し、ファイル内のプロパティの値を変更し、プロジェクトのライブラリ・パス中のなるべく上位のディレクトリに置きます。このファイルは、適切な ./oracle/jbo/common
サブディレクトリ内のJBO Runtimeというライブラリより上位に置く必要があります。
Diagnostic.properties
ファイル内のプロパティの説明は、「診断メッセージのプロパティ」を参照してください。Diagnostic.properties
ファイルの例は、「診断プロパティ・ファイルのサンプル」を参照してください。
JDeveloperのプロジェクトの「プロパティ」ダイアログに適切な値を入力することにより、診断プロパティを一時的に上書きできます。
JDeveloperのメニュー・バーで「プロジェクト」->「プロジェクトの設定」を選択し、プロジェクトの「プロパティ」ダイアログを開きます。「実行」タブを選択します。
「Javaオプション」フィールドで、コマンドライン・スイッチとして、変更するシステム・プロパティの新規の値を、JVMの-D
フラグに続けて入力します。
たとえば、診断レポートを抑止するには、「Javaオプション」フィールドに-Djbo.debugoutput=silent
という値を入力します。
「OK」をクリックし、ダイアログを閉じて変更を有効にします。
次のセクションでは、Diagnostic.properties
ファイルで設定できるプロパティについて説明します。Diagnostic.properties
ファイルの例は、「診断プロパティ・ファイルのサンプル」を参照してください。
構文: jbo.debugoutput={silent|console|
routing_classname}
このプロパティにより、診断メッセージのルーティング方法を指定します。ルーティングは、oracle.jbo.common.IDiagnostic
インタフェースの実装により決定されます。jbo.debugoutput
プロパティに指定した値により、使用するインタフェースの実装が決まります。
silent
: 診断メッセージを抑止します。oracle.jbo.common.SilentDiagnosticImpl
により実装されます。
console
(デフォルト): oracle.jbo.common.ConsoleDiagnosticImpl
により実装され、メッセージの出力先をコンソールに指定します。
debugoutput
プロパティでも、交換可能な診断実装がサポートされています。たとえば、出力のルーティングについて特定の指定をするには、oracle.jbo.common.IDiagnostic
を実装するanyCorp.ACDiagnosticImpl
クラスを作成します。次に、console
やsilent
ではなく、anyCorp.ACDiagnosticImpl
の完全修飾クラス名をdebugoutput
に渡します。
構文: jbo.logging.show.function={true|false}
このプロパティの値により、診断をコールするファンクションの名前を表示するかどうかを指定します。ファンクション名を表示した場合、パフォーマンスが低下しますので注意してください。デフォルト値はfalse
です。
コール側のファンクションを診断メッセージに表示する方法の例は、「診断メッセージのサンプル」を参照してください。
構文: jbo.logging.show.linecount={true|false}
このプロパティの値により、診断メッセージの行に番号を付けるかどうかを指定します。デフォルト値はtrue
です。
診断メッセージに行番号を表示する方法の例は、「診断メッセージのサンプル」を参照してください。
構文: jbo.logging.trace.threshold={[0-9]}
トレース・メッセージには、1つの整数のしきい値番号が関連付けられます。範囲は0から9までです。現在システム内に存在しているメッセージはすべてレベル3です。デバッグ・ビルドがある場合、レベル6のその他のメッセージも存在します。デフォルト値は3です。
トレースしきい値プロパティの値により、表示するトレース・メッセージを指定します。メッセージのレベルがパラメータに指定した値以下の場合、メッセージが表示されます。メッセージのレベルがパラメータよりも大きい場合、メッセージは表示されません。たとえば、しきい値が3に設定されている場合、0、1、2および3のレベルのメッセージが表示されます。4、5またはそれ以上のレベルのメッセージは表示されません。
構文: jbo.debug.prefix={
prefix}
このプロパティにより、デバッグ診断で出力されるレベル6のメッセージに付加する接頭辞を指定します。デバッグ診断を使用できるのは、ビジネス・コンポーネント製品のデバッグ・ビルドを使用する場合のみであることに注意してください。デフォルト値はDBG
です。
構文: jbo.logging.show.timing={true|false}
このプロパティの値により、デバッグ・コールの間隔を表示するかどうかを指定します。時間の単位はミリ秒です。デフォルト値はfalse
です。
診断メッセージに間隔を表示する方法の例は、「診断メッセージのサンプル」を参照してください。
構文: jbo.logging.show.level={true|false}
このプロパティの値により、メッセージと関連付けられたトレース・レベルを表示するかどうかを指定します。解放モードでは、すべてのデバッグ・メッセージはレベル3になるため、このプロパティは通常は使用されません。デフォルト値はfalse
です。
診断メッセージにトレース・レベルを表示する方法の例は、「診断メッセージのサンプル」を参照してください。
ビジネス・コンポーネントがOracleデータベース内部で実行されている場合、その出力は、データベース・インスタンスに関連付けられたログ・ファイルに保存されます。このログ・ファイルは次の場所にあります。
<ORACLE_HOME>ADMIN\<DB_SID\udump\<DB_SID>S000.TRC
Oracleデータベース内部での実行中に、更新したDiagnostic.properties
ファイルをデータベースにアップロードするには、loadjava
ユーティリティを使用します。
Diagnostic.properties
ファイルで診断オプションをconsole
に設定します。
jbo.debugoutput=console
次のように、loadjava
ユーティリティを使用し、ファイルをアップロードします。
loadjava -v -r -user jbo/jbo@testserver:1521:ORCL -thin oracle\jbo\common\Diagnostic.properties
次のサンプルは、メッセージ・ルーティングがコンソール・モード(すなわち、jbo.debugoutput=console
)に設定されている場合に発行された診断メッセージです。
<3>[11] (10) RowSetHelper.getListeners Getting listeners ready...
このサンプル・メッセージの意味は、次のとおりです。
<3>
: メッセージがトレース・レベル3で発行されたことを示します。
[11]
: これがトレース行番号11であることを示します。
(10)
: 最後のトレース・メッセージから10ミリ秒が経過したことを示します。
RowSetHelper
: トレース・メッセージが発行されたクラスの名前。
getListeners
: トレース・メッセージが発行されたファンクションの名前。
Getting Listeners ready ...
: トレース・メッセージのテキスト。
サンプルのDiagnostic.properties
ファイルは次のとおりです。
# ------------------------------------------------------------------------
# File: oracle.jbo.common.logging.Diagnostic.properties
# Cont: Diagnostic.properties file for DEBUG build of Business Components for Java
# Desc: This is the file used to determine the way that Diagnostic
# calls in the code are handled: all the properties below can be
# overridden by specifying then as -D switches to the java VM
# ------------------------------------------------------------------------
# Which implementation of IDiagnostic to use: console|silent|classname
# classname is the fully qualified name of a user-defined class that
# implements the IDiagnostic interface
jbo.debugoutput=console
# --------------------------------------------------
# Sample DebugOutput Line
# --------------------------------------------------
# <3>[11] (10) RowSetHelper.getListeners Getting listeners ready...
# In the above example:
# <3> - the message is issues at trace level 3
# [11] - this is trace line number 11
# (10) - 10 ms have elapsed since the last trace message
# RowSetHelper - class from which the trace message was issued
# getListeners - function from which the trace message was issued
# Getting Listeners ready ... - test of the trace message
# --------------------------------------------------
# Show calling function: false|true
jbo.logging.show.function=false
# Show a linecount as each diagnostic line is output (true|false)
jbo.logging.show.linecount=true
# Logging cutoff threshold: any trace messages with a level
# higher than this threshold will be suppressed.
# For a release build, system Diagnostic messages are at level 3
# Additionally, in a Debug build, DebugDiagnostic messages are at level 6
jbo.logging.trace.threshold=3
# Prefix string to display on DebugDiagnostic lines
# Debug build only
jbo.debug.prefix=DBG
# Show elapsed time info every call (true|false)
jbo.logging.show.timing=false
# Show level of trace statement
jbo.logging.show.level=false
# ------------------------------------------------------------------------
# end of file
# ------------------------------------------------------------------------