使用来自用户定义的扩展的事件日志

对于直接写入本地错误日志,可能不需要消息处理节点和解析器,这是因为建议用户定义的扩展使用异常来报告错误。然而,您可以选择写入重要的事件、错误,或相反,将与 WebSphere Message Broker 相同的方式用于问题确定及操作用途。

凭借 C 代码,您可以使用实用程序函数 CciLog 来这样做。此函数接受两个参数 messageSourcemessageNumber,它们分别定义了事件源和该源中消息的实际整数表示。

对于 Java 代码,类 MbService 提供了将信息记录到事件日志的静态方法。要将消息记录到事件日志中,您需要将消息打包到标准的 Java 资源束中。您可以使用三种记录方法中的一种,来传递资源束名称和消息密钥。将完全解析该消息,然后将它作为单独的插入而插入到相应的代理消息中,如下所示:

对于 Windows 系统,消息写入 Windows 事件日志中,且您的消息目录必须作为 Windows DLL 传递。

对于 Linux 和 UNIX 系统,这些消息写入 SYSLOG 工具中,且您的消息目录必须作为 XPG4 消息目录传递。

以上包括正常处理时生成的异常。您还必须对部署和配置消息流时生成的异常有所准备。这些配置异常生成的消息被报告回工作台,以便显示给工作台用户。要实现此结果,必须创建正确命名的 Java 属性文件,并将它复制到每个工作台中。

构建及安装 Windows 事件源

Windows 上,消息目录作为 Windows DLL 传递,您必须如下所述来创建该 Windows DLL。这包含事件消息的定义,使事件查看器可以根据您的应用程序所撰写的事件消息来显示可读的格式。编译消息目录时,将创建头文件,它为您创建的每个事件消息号都定义了符号值。该头文件包含在您的应用程序中。

要为 Windows 事件日志服务创建事件源,请执行以下操作:
  1. 创建具有事件消息源的消息编译器输入(.mc)文件。请参阅 Microsoft Web 站点 http://msdn.microsoft.com,搜索 .mc 文件获取有关此输入文件格式的详细信息。
  2. 通过发出以下命令编译此消息文件,从而创建源编译器输入文件:
    mc -v -w -s -h c:\mymessages -r c:\mymessages mymsg.mc

    其中 c:\mymessages 是输出文件的路径和目录,而 mymsg.mc 是输入文件的名称。

    消息编译器生成输出头(.h)文件,该文件包含符号 #define,它们映射到在 input.mc 文件中编码的每个消息号。当编译用户定义的扩展源文件(该文件使用 CciLog 实用程序函数撰写您已定义的事件消息)时,必须包含此头文件。CciLogmessageNumber 参数必须使用输出头文件中散列定义的正确值。

  3. 通过发出以下命令,用消息编译器编译输出文件(.rc)来创建资源(.res)文件:
    RC /v <filename>.rc
  4. 通过发出以下命令,用 .res 文件创建资源 DLL:
    LINK /DLL /NOENTRY <filename>.res
要将事件源安装到 Windows 事件日志服务中,请执行以下操作:
  1. 通过发出以下命令来启动 Windows 注册表编辑器:
    regedit
  2. 在以下位置为已定义的现有结构下用户定义的扩展创建新的注册表子键:
    HKEY_LOCAL_MACHINE
       SYSTEM
          CurrentControlSet
             Services
                EventLog
                   Application

    右键单击 Application 并选择新建 -> 键。新键会直接在 Application 键下创建(而不是 WebSphere Message Broker 下)。您必须将在 CciLog 调用的 messageSource 参数上指定的名称赋予该键。

    必须为此条目创建以下值:
    • EventMessageFile 字符串值必须包含创建来包含消息的 .dll 的标准路径。这是 CciLog 所使用的消息目录。
    • TypesSupported DWORD 值必须包含值“7”。
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
as04520_