ユーザー定義拡張機能は例外を使用してエラーをレポートするよう推奨されているので、 メッセージ処理ノードおよびパーサーは、 ローカル・エラー・ログに直接書き込む必要性はほとんどありません。 しかし WebSphere Message Broker と同じ方法で、問題判別および操作上の目的のために、 重大なエラーなどを書き込むようにすることができます。
C コードを用いると、 ユーティリティー関数 CciLog を使用してこれを実行できます。この関数で受け入れられる 2 つの引数 messageSource および messageNumber は、 イベント・ソースおよびそのソース内のメッセージの実際の整数表現をそれぞれ定義します。
Java コードの場合、 MbService クラスはイベント・ログに情報をログするための静的メソッドを提供します。 イベント・ログへのメッセージをログするには、 標準 Java リソース・バンドルにメッセージをパッケージする必要があります。 3 つのロギング・メソッドのいずれかを使用して、 リソース・バンドル名およびメッセージ・キーに渡します。 メッセージは完全に解決され、 下に示す適切なブローカー・メッセージに単一挿入として挿入されます。
Windows システムの場合、 メッセージは Windows イベント・ログに書き込まれ、 メッセージ・カタログは Windows DLL として送信される必要があります。
Linux および UNIX システムの場合、こうしたメッセージは SYSLOG 機能に書き込まれ、メッセージ・カタログは XPG4 メッセージ・カタログとして送信される必要があります。
これらは、通常処理の際に生じる例外を網羅しています。 メッセージ・フローのデプロイおよび構成の際に生じる例外に関しても、 準備する必要があります。 こうした構成の例外から生じるメッセージは、 ワークベンチ ユーザーに表示するためにワークベンチに再びレポートされます。 これを行うには、適切な名前の Java プロパティー・ファイルを作成して、 それを各ワークベンチにコピーする必要があります。
Windows では、 メッセージ・カタログは Windows DLL として送信されます。 その DLL は次の説明に従って作成しなければなりません。 これには、イベント・ビューアーを使用可能にして、 ご使用のアプリケーションが書き込むイベント・メッセージに基づく、 読み取り可能な形式を表示するためのイベント・メッセージの定義が含まれます。 メッセージ・カタログをコンパイルすると、 作成した各イベント・メッセージ番号のシンボル性を定義するヘッダー・ファイルが作成されます。 このヘッダー・ファイルは、ご使用のアプリケーションに組み込まれます。
mc -v -w -s -h c:¥mymessages -r c:¥mymessages mymsg.mc
ここで、c:¥mymessages は出力ファイルのパスおよびディレクトリーで、 mymsg.mc は入力ファイルの名前です。
メッセージ・コンパイラーは出力ヘッダー (.h) ファイルを作成します。 このファイルには、input.mc ファイルにコード化された各メッセージ番号にマップされる #defines というシンボルが含まれます。 定義済みのイベント・メッセージに書き込むため、 CciLog ユーティリティー関数を使用するユーザー定義拡張機能のソース・ファイルをコンパイルする場合には、 このヘッダー・ファイルを含める必要があります。 CciLog での messageNumber 引数は、 出力ヘッダー・ファイルにハッシュ定義された適切な値を使用しなければなりません。
RC /v <filename>.rc
LINK /DLL /NOENTRY <filename>.res
regedit
HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services EventLog Application
「Application」を右マウス・ボタン・クリックして、 「新規」->「キー」を選択します。 新規キーが、Application キー (WebSphere Message Broker キーの下ではない) の下に直ちに作成されます。 このキーに、CciLog 呼び出しの messageSource パラメーターで指定した名前を付けなければなりません。