メッセージ・データ
すべての問題判別の Common Base Event は、Common Base Event の msg フィールド内で報告される特定のイベントを記述する、人間が読むことのできるテキストを提供する必要があります。
実際のメッセージ・エントリーまたはログ・ エントリーを示すイベントに関連するテキストは、翻訳およびローカライズされていることが予想されます。 イベントに国際化テキストが用意されている場合は常に、Common Base Event に msgDataElement エレメントを含めます。 このエレメントでは、メッセージ・テキストがどのように作成され、解釈されるのかについての情報が提供されます。 この情報は、特にイベントのプログラマチックな解釈を 試みる場合、またはメッセージ・テキストのフォーマットに使用されたロケールや言語から独立したメッセージの解釈を試みる場合に非常に重要です。
前提条件: 国際化メッセージの作成に関連した概念を理解していること。 これらの概念について教育する場合の有用なソースが、Java™ 情報の国際化対応、 および Java 言語内でのリソース・バンドルの 使用に関連した資料で提供されています。
Common Base Event の msgDataElement エレメントには、
イベントに用意された msg フィールドの値についての
以下の情報が含まれます。
- メッセージの言語同様に、メッセージ内のロケールに依存しないフィールドがどのようにフォーマットされるのかを識別する、指定メッセージ・テキストのロケール (msgLocale)。
- メッセージ言語、メッセージ・ロケール、およびメッセージ・フォーマットに依存しないメッセージの解釈に 使用できる、メッセージと関連したロケール非依存 ID (msgId および msgIdType)。
- 以下を含む、翻訳されたメッセージがどのように作成されるのかという情報。
- メッセージ・テンプレートを検索するために使用される ID (msgCatalogId)。
- メッセージ・テンプレートを検索するために使用されるメッセージ・カタログの名前および型 (msgCatalog および msgCatalogType)。
- 最終メッセージを作成するためにメッセージ・テンプレートに 挿入された、ロケール非依存のあらゆる情報 (msgCatalogTokens)。
- msg
- すべてのメッセージ、ログ、トレース・イベントは、Common Base
Event の msg フィールドにおいて、人間が読むことができるメッセー
ジを提供する必要があります。ログ・イベントおよび診断イベントの両方の問題判別イベントで、msg フィールドが必要になります。
このフィールドは、このフィールドをオプションのフィールドとしてリストする Common Base Event の基本仕様
よりさらに制限されます。有効かつ効率的な問題判別のためには、報告される状況を迅速に識別する機能が要求されるからです。
このメッセージのフォーマットおよび使用法はコンポーネントに固有のものですが、以下の一般的なガイドラインを使用してください。
- メッセージおよびログ・イベントにあるメッセージ・テキストは、国際化対応が予想されます。
- メッセージ・テキストのロケールを、Common Base Event の msgDataElement エレメントにある msgLocale フィールドを使用して指定します。
- 可能な場合は常に、国際化対応のメッセージのフォーマットおよび構造に関しての追加情報を、 Common Base Event の msgDataElement エレメントを使用して指定します。
- msgLocale
- Common Base Event 内にメッセージ・テキストがあるときは常にメッセージ・ロケールを指定します。これは、すべての問題判別イベントの場合と同様です。 msgLocale フィールドは Common Base Event 仕様内でオプション値としてリストされますが、 可能な場合はいつでも問題判別イベント内でこの情報を指定します。 これが問題判別イベントの必要フィールドではない理由は、Common Base Event のフォーマット時に、ロケール情報のないまたは使用可能でないインスタンスが存在することです。
- msgId および msgIdType
- 会社の中には、国際化対応メッセージ・テキスト内にロケール非依存の ID を組み込み、この ID を使用して、メッセージ・テキストがメッセージ に依存せずに、記述された条件を解釈するようにしているところもあります。 例えば、IBM® ソフトウェア から発行されるメッセージの大部分は、IEE890I WTO Buffers in console backup storage = 1024 のようになっており、固有のロケールに依存しない ID である IEE890I が、翻訳されたメッセージ・テキストの先頭に付けられます。 この ID は、ロケーションおよび言語に依存せずにメッセージを一意的に検出して識別する手段となります。 この検出は、ロケール非依存およびプログラマチックな分析にとって大変有益です。
- msgId フィールドは、Common Base Event 仕様の中でオプション値としてリストされ ていますが、この ID がメッセージ・テキストに含まれる場合は常に問題判別イベント内で提供されなければなりません。同様に、msgIdType フィールドは、Common Base Event 仕様の中でオプション値としてリストされ ていますが、msgId に対して値が供給される場合は常に問題判別イベント内で提供されなければなりません。メッセージ・テキストが翻訳されていないか、ローカライズされていない場合 (トレース・イベント用など)、これらのフィールドは指定しないでください。
- msgCatalogId
- msgCatalogId フィールドは、Common Base Event 仕様の中でオプション値としてリストされて いますが、Common Base Event にローカライズまたは翻訳されたメッセージ・テキストがある場合 (例えば、メッセージまたはログ・イベントを発行して表示する問題判別イベントを用意する場合) は、常にこの値を指定します。 これは、問題判別イベントに必須のフィールドではありません。 すべての問題判別イベントが翻訳されたメッセージ・テキストを含むわけではないからです。Common Base Event のフォーマット時に値が指定されていないか、使用可能でない場合もあります。 メッセージ・テキストが翻訳またはローカライズされていない 場合 (トレース・イベント用など)、このフィールドは指定しないでください。
- msgCatalogTokens
- msgCatalogTokens フィールドは、Common Base Event 仕様の中でオプション値としてリスト されていますが、Common Base Event にローカライズまたは翻訳されたメッセージ・テキストがある場合 (例えば、メッセージまたはログ・イベントを発行して表示する問題判別イベントを用意する場合) は、常にこの値を指定します。 これは、問題判別イベントに必須のフィールドではありません。すべての問題判別イベントが翻訳されたメッセージ・テキストを含むわけではないからです。Common Base Event のフォーマット時に値が指定されていないか、使用可能できない場合もあります。 この値には、翻訳メッセージを作成するときに、ローカライズされたメッセージ・テキストに挿入されるロケール非依存値またはメッセージ・トークンのリストが含まれます。
- これらの値は、メッセージの作成で使用された翻訳メッセージ・テンプレートが分からない場合、翻訳されたメッセージからの抽出が難しくなります。 メッセージ・テキストが翻訳またはローカライズされていない場合、このフィールドは指定しないでください。
- Common Base Event には、このフィールド、拡張データ・エレメント、およびスキーマへの拡張 を含む、イベントに関する追加データを提供するための機構がいくつか用意されています。 イベントに関連したメッセージ・テキストに含まれるメッセージ・トークンのリストを指定するために、 msgCatalogTokens フィールドは常に使用します。 これらの値は、Common Base Event の他のパーツでも提供される場合がありますが、このフィールドに含める必要があります。
- msgCatalog および msgCatalogType
- msgCatalog および msgCatalogType フィールドは、Common Base Event 仕様の中でオプション値としてリストされていますが、Common Base Event にローカライズまたは翻訳されたメッセージ・テキストがある場合 (例えば、メッセージまたはログ・イベントを発行して表示する問題判別イベントを用意する場合) は、常にこの値を指定します。 これらは、問題判別イベントに必須の フィールドではありません。すべての問題判別イベントが翻訳されたメッセージ・テキストを含むわけではないからです。Common Base Event のフォーマット時に値が指定されていないか、使用可能できない場合もあります。 メッセージ・テキストが翻訳またはローカライズされていない 場合 (トレース・イベント用など)、これらのフィールドへの入力はしないでください。