メソッド タイミングのプロパティ

次の 3 種類のプロパティを使用して、メソッドタイミングを制御します。

次のセクションでは、これらのプロパティについて説明します。

global.properties ファイルで定義されたプロパティ

global.properties ファイルで定義されたプロパティは、JRun インストールのすべてのサーバー上で実行するすべてのアプリケーションに適用されます。
global.properties ファイルは、JRun とともに提供されているため変更できません。メソッド タイミングに適用される global.properties ファイルのセクションには、次のステートメントが含まれています。

#######################################################################
## メソッド タイミング
#######################################################################

# メソッド タイミングを有効にします。
timing.enabled=false

timing.excludecalls=java.*,javax.*,sun.*,org.omg.CORBA.*
timing.includecalls=java.sql.*

# メッセージを処理するために使用されるロガーを定義します。
# 既定では、メッセージはサーブレットを実行する JRun サーバーの
# ログ ファイルに書き込まれます。
# これらのプロパティはメッセージの形式を制御します。

# ロガー名を定義します。
timing.logging.class=simplelogger

# システム ロガーにタイミング メッセージを転送する
# 単純なロガー用のプロパティを指定します。
timing.simplelogger.class=allaire.jrun.methodTimer.SimpleLogger
timing.simplelogger.level=info
timing.simplelogger.entermethod=ENTER
timing.simplelogger.exitmethod=EXIT
timing.simplelogger.beforemethodcall=CALLENTER
timing.simplelogger.aftermethodcall=CALLEXIT
timing.simplelogger.delimiter=,

# メソッド タイミング メッセージをスレッドのローカル記憶領域に転送する
# スレッド ロガーのプロパティを指定します。
# ThreadLogger を
# allaire.jrun.servlets.JRunStats サーブレットと併用して出力を表示します。
timing.threadlogger.class=allaire.jrun.methodTimer.ThreadLogger
# JRunStats サーブレットの設定 (threadlogger と
# 併用されます)
timing.jrunstats.includeSource=true
timing.jrunstats.sourcepath=/WEB-INF/classes;/WEB-INF/jsp
timing.jrunstats.includeZeroTimes=false

# 計測するクラスの名前を指定します。
timing.classes=HttpServlet,SnoopServlet,jsp,jst

# HttpServlet およびすべての直接サブクラスに関する計測設定を指定します。
timing.HttpServlet.class=javax.servlet.http.HttpServlet
timing.HttpServlet.methods=*
timing.HttpServlet.calls=*,javax.servlet.http.*
timing.HttpServlet.doGet.calls=*
timing.HttpServlet.subclasses=true

# SnoopServlet に関する計測設定を指定します。
timing.SnoopServlet.class=SnoopServlet
timing.SnoopServlet.methods=*
timing.SnoopServlet.calls=*,javax.servlet.http.*

# HttpJSPServlet およびすべての直接サブクラスに関する計測設定を指定します。
timing.jsp.class=allaire.jrun.jsp.HttpJSPServlet
timing.jsp.subclasses=true
timing.jsp.methods=*
timing.jsp.calls=*,javax.servlet.http.*,javax.servlet.*

# JSTTag およびすべての直接サブクラスに関する計測設定を指定します。
timing.jst.class=allaire.jrun.jsp.JSTTag
timing.jst.subclasses=true
timing.jst.methods=*
timing.jst.calls=*

一般プロパティ

JRun メソッド タイミングを有効化または無効化するプロパティを生成し、タイミングの対象または非対象となるメソッドを含むライブラリを指定します。次の表では、一般的なプロパティについて説明しています。timing.enabled プロパティを除き、次に説明するすべてのプロパティの例は、global.properties ファイルに含まれるステートメントです。
プロパティ
説明
timing.enabled
 
メソッド タイミングを有効 (true) または無効 (false) に指定します。
global.properties ファイルは、このプロパティの値を false と定義します。
次のステートメントは、メソッド タイミングを有効にします。
timing.enabled=true
 
timing.excludecalls
 
タイミングから除外するメソッドのカンマ区切りリストを指定します。アスタリスク (*) ワイルドカード文字を使用して、ライブラリ内のすべてのメソッドへの呼び出しを除外します。
次のステートメントは、指定されたライブラリ内のすべてのメソッドをタイミングから除外します。
timing.excludecalls=java.*,javax.*
,sun.*,org.omg.CORBA.*
 
timing.includecalls
 
タイミングを計測するメソッドのカンマ区切りリストを指定します。アスタリスク (*) ワイルドカード文字を使用して、ライブラリ内のすべてのメソッドへの呼び出しを含めます。このプロパティは、timing.excludecalls 内の競合する設定を書き換えます。
excludecalls プロパティと
includecalls プロパティの要素で始まる完全修飾クラス名 (パッケージ名を含む) は、対象または非対象、あるいはその両方になります。これらのプロパティは、ライブラリ名または特定のクラス名です。
前述の timing.excludecalls ステートメントで使用された場合、次のステートメントは、java.sql ライブラリ内のメソッドへの呼び出しを除く、java ライブラリ内のすべてのメソッドへの呼び出しを除外します。
timing.includecalls=java.sql.*
 

クラスおよびメソッド プロパティ

このセクションでは、JRun によってタイミングが実行されるクラスおよびメソッドを制御するために使用するプロパティについて説明します。

前のセクションで説明したように、通常、timing.includecalls プロパティと timing.excludecalls プロパティを使用して、タイミングの対象または非対象となるメソッドを含むライブラリを指示します。タイミングを計測するメソッドのクラスおよびサブクラスを指示するには、このセクションで説明するプロパティを使用します。

global.properties ファイルには、次のメソッドへの呼び出しのメソッド タイミングを計測するステートメントが含まれています。

次の表では、クラスおよびメソッドのプロパティについて説明しています。
プロパティ
説明
timing.classes
 
タイミングを計測するクラスのカンマ区切りリストを指定します。
追加のプロパティは、これらのクラスに関する必要な詳細を提供します。
次のステートメントは、HttpServletSnoopServletjsp、およびjst クラスに対してタイミングが計測されるように指示します。
timing.classes=HttpServlet,SnoopSer
vlet,jsp,jst
 
timing.<ClassName>.
class
 
タイミングを計測するクラスの完全なパッケージ クラス名を指定します。
次のステートメントには、HttpServlet クラスの完全なパッケージ クラス名が記述されています。
timing.HttpServlet.class=javax.serv
let.http.HttpServlet
 
timing.<ClassName>.
methods
 
タイミングを計測する、指定されたクラスのメソッドのカンマ区切りリストを指定します。
アスタリスク (*) ワイルドカード文字を使用して、複数のメソッドを指定できます。
次のステートメントは、HttpServlet クラスにあるすべてのメソッドに対してタイミングが計測されるように指示します。
timing.HttpServlet.methods=*
 
timing.<ClassName>.
calls
 
タイミングを計測する、現在のメソッドによって呼び出されたメソッドのカンマ区切りリストを指定します。呼び出されたメソッドは、timing.<ClassName>.methods によって指定されたメソッド内のメソッドから呼び出されます。
アスタリスク (*) ワイルドカード文字を使用して、複数のメソッドを指定できます。
次のステートメントは、javax.servlet.http への呼び出しに対してタイミングが計測されるように指示します。
最初の引数として指定されたアスタリスク (*) は、前述のステートメントで対象または非対象とされたすべてのクラスおよびライブラリがこのステートメントに適用可能なことを示します。javax ライブラリは、timing.excludecalls プロパティでタイミングから除外されたので、メソッドへの呼び出しに含むクラスを指定する必要があります。
timing.HttpServlet.calls=*,javax.s
ervlet.http.*
 
timing.<ClassName>.
<MethodName>.calls
 
timing.<ClassName>.methods によって指定された各メソッドに対して、タイミングを計測する、呼び出されたメソッドのカンマ区切りリストを指定できます。
アスタリスク (*) ワイルドカード文字を使用して、複数のメソッドを指定できます。
次のステートメントは、doGet メソッド内で呼び出された getConnection メソッドのタイミングを計測します。
timing.HttpServlet.doGet.calls=getC
onnection
 
timing.<ClassName>.
subclasses
 
<ClassName> の直接サブクラス、または <ClassName> インターフェイス ディレクトリを実装するクラスに対してタイミングを計測するかどうかを指定します。true または falseを指定します。
次のステートメントによって、
HttpServlet クラスのすべての直接サブクラスに対してメソッド タイミングが実行されます。
timing.HttpServlet.subclasses=true
 

ログ プロパティ

JRun メソッド タイミングは、生成するメッセージの処理を JRun ログ メカニズムに依存します。したがって、メソッド タイミングを設定するための 1 つのステップとして、ロガーに関連するプロパティを設定する必要があります。ロギングの詳細については、441 ページの第 38 章「ログ」を参照してください。

既定により、メソッド タイミングは、メッセージを文字列形式にする simplelogger を使用し、そのメッセージを JRun ロガーに送信します。

既定のメッセージ形式は、現在のメソッドおよび呼び出されたメソッドに制御がいつ転送されたり戻されるかを示します。これらのメッセージを区別するキーワードは、このセクションで説明するプロパティを使用して変更できます。

このセクションでは、メソッド タイミング メッセージに関連付けられたロガーを制御するために使用するプロパティについて説明します。次の表では、ログ プロパティについて説明しています。このセクションのすべてのプロパティの例は、global.properties ファイルに含まれるステートメントの例です。
プロパティ
説明
timing.logging.class
 
タイミングの出力を取得するロガーの名前を指定します。
追加のプロパティは、このロガーに関する必要な詳細を提供します。
次のステートメントは、ロガー名を
simplelogger と定義します。
timing.logging.class=simplelogger
 
timing.<LoggerName>.
class
 
タイミング メッセージの形式を定義するロガー クラスを指定し、そのメッセージをログ システムに転送します。通常、
allaire.jrun.methodTimer.SimpleLogger クラスを使用します。

次のステートメントは、simplelogger
ロガー クラスを指定します。
timing.simplelogger.class=allaire.
jrun.methodTimer.SimpleLogger
 
timing.<LoggerName>.
level
 
ログへのログ イベント タイプを指定します。このタイプのメッセージが生成されると、それらのメッセージはロガーに送信されます。指定可能な値は次のとおりです。debugerrorinfo (既定)、およびwarning
次のステートメントによって、info レベルのメッセージが生成されます。
timing.simplelogger.level=info
 
timing.<LoggerName>.
entermethod
 
現在のクラスの開始時にタイミング メッセージに含めるテキストを指定します。
次のステートメントは、現在のメソッドの開始時にテキスト ENTER を表示します。
timing.simplelogger.entermethod=ENTER
 
timing.<LoggerName>.
exitmethod
 
現在のメソッドの終了時に生成されるタイミング メッセージに含めるテキストを指定します。
次のステートメントは、現在のメソッドの終了時にテキスト EXIT を表示します。
timing.simplelogger.exitmethod=EXIT
 
timing.<LoggerName>.
beforemethodcall
 
呼び出されたメソッドの終了時に生成されるタイミングメッセージに含めるテキストを指定します。
次のステートメントは、呼び出されたメソッドの開始時にテキスト CALLENTER を表示します。
timing.simplelogger.beforemethodcall=C
ALLENTER
 
timing.<LoggerName>.
aftermethodcall
 
呼び出されたメソッドの終了時に生成されるタイミング メッセージに含めるテキストを指定します。
次のステートメントは、呼び出されたメソッドの終了時にテキスト CALLEXIT を表示します。
timing.simplelogger.aftermethodcall=
CALLEXIT
 
timing.<LoggerName>.
delimiter
 
タイミング メッセージのコンポーネント間に使用する区切り文字を指定します。simplelogger の既定の区切り文字はカンマです。それ以外の場合はスペースです。
次のステートメントは、simplelogger の既定の区切り文字をカンマと定義します。
timing.simplelogger.delimiter=,