JRas メッセージおよびトレース・イベントのタイプ
基本的な JRas メッセージおよびイベント・タイプは、 WebSphere® Application Server が本来認識するタイプとは異なるため、 JRas タイプは、ランタイム環境に固有のタイプにマップされます。 JRas メッセージおよびトレース・イベントの処理方法は、 カスタム・フィルターとメッセージ・コントロールで制御できます。
イベント・タイプ
このタスクおよびそのサブタスクで説明されている JRas フレームワークは、 推奨されません。ただし、Java™ ロギングを使用して、同様の結果を得ることができます。
スタンドアロンの JRas ロギング・ツールキットが定義する基本メッセージとトレース・イベントのタイプは、WebSphere Application Server ランタイムが認識するネイティブ・タイプと同じではありません。 基本の JRas タイプはネイティブ・タイプ上にマップされます。 このマッピングは、プラットフォームやエディションによって異なる場合があります。 マッピングについては、以下のセクションで説明します。
プラットフォーム・メッセージ・イベントのタイプ
WebSphere Application Server ネイティブ・タイプ | JRas RASIMessageEvent タイプ |
---|---|
Audit | TYPE_INFO、TYPE_INFORMATION |
警告 | TYPE_WARN、TYPE_WARNING |
Error | TYPE_ERR、TYPE_ERROR |
アプリケーション開発者は、JRas を使用して、WebSphere Application Server for
z/OS®
監査トレースを発行するための TYPE_INFO または TYPE_INFORMATION の JRas RASIMessageEvent タイプを使用することで、MVS™ WTO (オペレーター宛メッセージ) メッセージを発行することができます。
WebSphere Application Server for z/OS 監査トレースは、
MVS 経路コード 11 へ WTO (ハードコピーの WTO) をマップします。
プラットフォーム・トレース・イベントのタイプ
- RASITraceEvent インターフェースには、単純なレベルのセットを好むユーザーを対象に、TYPE_LEVEL1、TYPE_LEVEL2、および TYPE_LEVEL3 が用意されています。 WebSphere 実装は、このレベルのセットをサポートしています。 レベルは階層になっており、レベル 2 を使用可能にすると、 レベル 1 も使用可能になり、レベル 3 を使用可能にすると、レベル 1 および 2 も使用可能になります。
- RASITraceEvent には、OR 演算可能な、 より複雑な値のセットを好むユーザーを対象に、TYPE_API、TYPE_CALLBACK、TYPE_ENTRY_EXIT、TYPE_ERROR_EXC、TYPE_MISC_DATA、TYPE_OBJ_CREATE、TYPE_OBJ_DELETE、TYPE_PRIVATE、TYPE_PUBLIC、TYPE_STATIC、および TYPE_SVC が用意されています。
これらのトレース・イベント・タイプは、以下のように、 ネイティブ・トレース・タイプ上にマップされます。
WebSphere Application Server ネイティブ・タイプ | JRas RASITraceEvent レベル・タイプ |
---|---|
Event | TYPE_LEVEL1 |
EntryExit | TYPE_LEVEL2 |
デバッグ | TYPE_LEVEL3 |
WebSphere Application Server ネイティブ・タイプ | JRas RASITraceEvent 列挙タイプ |
---|---|
Event | TYPE_ERROR_EXC、TYPE_SVC、TYPE_OBJ_CREATE、TYPE_OBJ_DELETE |
EntryExit | TYPE_ENTRY_EXIT、TYPE_API、TYPE_CALLBACK、TYPE_PRIVATE、TYPE_PUBLIC、TYPE_STATIC |
デバッグ | TYPE_MISC_DATA |
単純にするため、 トレース・タイプ方法のどれか 1 つをアプリケーション全体を通して一貫して使用することを お勧めします。 また、レベルでないタイプを使用する場合は、 各カテゴリーから 1 つのタイプを選択し、混乱を避けるために、 選択したタイプをアプリケーション全体を通して一貫して使用します。
メッセージとトレースのパラメーター
- Primitives
- int や long などの Primitives は、Object タイプのサブクラスとして 認識されず、これらのいずれかのメソッドに直接渡すことはできません。 プリミティブ値は、パラメーターとして渡す前に 適切な Object タイプ (Integer、Long) に変換する必要があります。
- オブジェクト
- オブジェクト上で toString() メソッドが呼び出され、結果の String が表示されます。 メッセージ・ロギングまたはトレース・メソッドに渡されたオブジェクトに、toString メソッドを適切に実装する必要があります。 呼び出し元 は、toString メソッドがパスワードなどの機密データを平文で表示しないこと、および無限再帰を起こさないことを保証する責任があります。
- Object[]
- Object[] タイプは、複数のパラメーターがメッセージ・ロギングまたはトレース・メソッドへ渡される場合を想定して用意されています。 配列内の各 Object 上で toString メソッドが呼び出されます。 ネストされた配列は処理されません。つまり、Object 配列内のエレメントは配列に属しません。
- Throwable
- Throwable タイプのスタック・トレースが検索および表示されます。
- Array of primitives
- byte[]、int[] などのプリミティブの配列
は、Object として認識されますが、Java コードでゆるやかに関連付けられます。通常は、可能であればプリミティブの配列は使用しません。
プリミティブの配列が渡されると、結果は不定のものとなり、
渡された配列のタイプ、配列を渡すために使用された API、および製品のリリースによって変化する場合があります。
一貫性のある結果を求める場合は、ユーザー・コードにより、
プリミティブ配列をプリプロセスし、ストリング・フォーマットのタイプにフォーマットしてからメソッドに渡す必要があります。
このようなプリプロセスが実行されない場合は、以下のような問題が発生する可能性があります。
- [B@924586a0b - このメッセージは、ロケーション X でバイト配列として復号されます。このメッセージは、通常、配列が Object[] タイプのメンバーとして渡される際に戻され、byte[] タイプで toString メソッドが呼び出された結果として表示されます。
- 正しくないトレース引数 : long の配列。 この応答は、通常、プリミティブの配列が Object を取るメソッドに渡される際に戻されます。
- 01040703: バイトの配列の 16 進表記。 この問題は、通常、バイト配列が単一の Object を取るメソッドへ渡される際に発生することがあります。 この振る舞いは、変更の対象となり、信頼することはできません。
- "1" "2": int[] タイプのメンバーのストリング表記で、 各エレメントを整数に変換し、その整数上で toString メソッドを呼び出すことによって形成されます。 この振る舞いは、変更の対象となり、信頼することはできません。
- [Ljava.lang.Object;@9136fa0b : オブジェクトの配列。 この応答は、通常、ネストされた配列を含んでいる配列が渡される際に見られます。
メッセージ・ロギングの制御
- このメッセージ・イベント・タイプは、RASIMessageEvent インターフェースで定義されたメッセージ・イベント・タイプのいずれかでなければなりません。
- このメッセージ・イベント・タイプのロギングは、 メッセージ・ロガーのマスクの状態によって使用可能にしなければなりません。
- このメッセージ・イベント・タイプは、WebSphere Application Server ランタイムによって確立されたすべてのフィルター基準を通過しなければなりません。
Manager クラスから WebSphere Application Server ロガー が取得された場合、マスクの初期設定 は、すべてのネイティブ・メッセージ・イベント・タイプを WebSphere Application Server ハンドラーに転送します。メッセージ・ロガーのマスクの状態をプログラマチックに設定することにより、 ログに記録するメッセージを制御することが可能です。
製品の一部のエディションでは、ユーザーが指定したサーバー・プロセス用のメッセージ・フィルター・レベルがサポートされています。 このようなフィルター・レベルを設定すると、指定された重大度レベルのメッセージのみが、WebSphere Application Server に書き込まれます。メッセージ・ロガーのマスク検査を通過するメッセージ・タイプは、WebSphere Application Server のフィルターで除外されることがあります。
トレースの制御
製品の各エディションは、トレースを使用可能または使用不可にするメカニズムを提供しています。 さまざまなエディションが、静的なトレースの使用可能化 (トレース設定は、サーバーが始動される前に指定されます)、 動的なトレースの使用可能化 (実行中のサーバー・プロセスのトレース設定を動的に変更することができます)、またはこの両方をサポートします。
- このトレース・イベント・タイプは、RASITraceEvent インターフェースで定義されたトレース・イベント・タイプのいずれかでなければなりません。
- このトレース・イベント・タイプのロギングは、トレース・ロガーのマスクの状態によって使用可能にしなければなりません。
- このトレース・イベント・タイプは、WebSphere Application Server ランタイムによって設定されたすべてのフィルター基準を通過しなければなりません。
Manager クラスからロガーを取得した場合、マスクの初期設定では、すべてのトレース・タイプが抑制されます。 このルールの例外は、WebSphere Application Server ランタイムが、静的なトレースの使用可能化をサポートしており、 そのトレース・ロガーのデフォルト以外のトレース開始状態が指定されている場合です。 メッセージ・ロガーとは異なり、WebSphere Application Server は、トレース・ロガーのトレース・マスクの状態を動的に変更することができます。 WebSphere Application Server は、RASITraceEvent インターフェースで定義された値に対応するトレース・ロガーのマスクの一部のみを変更します。 WebSphere Application Server は、ユーザー定義タイプとして使用中である可能性のあるマスクの未定義ビットの変更は行いません。
一部のプラットフォームで使用できる 動的なトレースの使用可能化機能が使用されている場合は、トレース状態の変更が、 アプリケーション・サーバー・ランタイムとトレース・ロガーのトレース・マスクの両方に反映されます。 ユーザー・コードにより、RASITraceEvent インターフェースで定義されている値に対応するトレース・マスク内のビットがプログラマチックに変更されると、トレース・ロガーのマスク状態とランタイム状態は非同期となり、予期しない結果が発生します。 したがって、RASITraceEvent インターフェースで定義されている値に対応するマスクのビットをプログラマチックに変更することはサポートされていません。