公共基本事件模型描述

“公共基本事件”模型是不同类型的企业应用程序之间的事件的新标准。此标准提出组成这些事件的数据元素的一致性(包括元素本身及其格式方面)。

公共基本事件模型中使用的约定

公共基本事件描述

下列属性(它们标识为情况 3 元组而收集的数据)组成“公共基本事件”:

localInstanceId

localInstanceId 是字符串类型,它用来以本地方式标识事件的实例。并不隐含保证此值是全局唯一的。但是,一旦设置了该值,它在事件存在的过程中就保持不变。localInstanceId 的值内容“可以”是由多个部分组成的值(例如,时间戳记、位置、偏移量和消息标识);或者“可以”使用其它应用程序定义的机制来提供该内容以确保标识的唯一性。例如,可以将标识设置为以下字符串的并置:提供本地主机 IP 地址的字符串、提供 access.log 文件的绝对路径的字符串、提供本地全限定主机名的字符串、提供时间戳记的字符串和表示序列号的字符串。产生的字符串显示如下:

9.27.11.27 mycomputer.toronto.ibm.com 20021009012534.002000-240_0

此属性不是键。这是“可选”的不可变属性,即,一旦设置,就不能更改它。“可以”由发出事件的组件提供,也可以由事件的使用者指定。localInstanceId 的最大字符串长度“一定不能”超过 128 个字符。

globalInstanceId

globalInstanceId 是表示事件的主标识的复杂数据类型。该属性在全局唯一标识该事件,“可以”用作事件的主键。该值“必须”是长度至少 128 位但不超过 256 位的“全局唯一标识”(GUID)。GUID 生成算法负责确保此值的唯一性。

这是“可选”的属性,但是,如果指定了它,它就是不可变的,即,一旦设置了该值,在事件存在的过程中就不能更改它。globalInstanceId 可以由发出事件的组件提供,也可以由事件的使用者提供。

globalInstanceId 是建立事件之间的关联所必需的。如果未指定 globalInstanceId,则不能提供 AssociatedEvent 所描述的关联。

creationTime

创建事件的日期与时间“必须”按 XML 模式 dateTime 数据类型定义的方式指定。creationTime 的值提供的粒度“必须”与生成平台允许的粒度一样精确。

这是“必需”的属性,它是不可变的且“必须”由报告该事件的组件提供。如果设置了它,就不能在事件存在的过程中更改它

severity

severity 指示相对报告事件的应用程序而言事件描述的状态的严重性级别。该属性可能包含的值的意义可通过列举一些常用值或限定符(指示事件的严重性级别)来描述。例如,信息、警告或映射至希望的严重性级别的一些整数全部都是有效值。本文档并不暗示任何特定实现,而是在了解此字段的用户可按其实现要求添加附加值的情况下建议使用下列值。此字段只是帮助定义所遇到的这种情况的严重性,同时帮助管理员将重点放在企业中当前发生的最严重问题上。

下列预定义严重性级别是按严重性上升的顺序列示的:

值的范围从 0 到 70。保留值从 0(表示未知)开始,以 10 为递增量逐渐增加至 60(表示致命)。“可以”添加其它严重性但“一定不能”超过 70。如果不指定任何值,则此事件解释为不具有任何严重性,相当于“NONE”。

这是“可选”的属性,而且一旦设置了它,它就是不可变的。严重性没有任何缺省值。

priority

priority 定义事件的重要性和应该处理记录的相对顺序。下列优先级是预定义的:

值的范围从 0 到 100。表示“低”的保留值为 10,表示“中”的保留值为 50,而表示“高”的保留值为 70。“可以”添加其它优先级,但是“一定不能”超过 100。

如果不指定任何值,则此事件解释为不具有任何优先级,相当于“NONE”。

priority 属性是独立的,与 severity 无关,原因是优先级更象受使用者驱动的属性,而严重性则是指示受影响的组件感觉到的情况的状态。例如,应该先处理具有优先级为“高”严重性为“不严重”的事件,然后处理优先级为“低”严重性为“紧急”的事件。

这是“可选”的属性,而且是可变的。优先级没有任何缺省值。

reporterComponentId

reporterComponentId 是代表受影响的组件报告事件或情况的组件的标识。此属性的数据类型为复杂类型(如 ComponentIdentification 类型所述,该类型提供唯一标识某一组件所必需的数据)。

它是“必需”的属性(如果报告组件不同于源组件的话)。否则,此字段“必须”省略。此属性是不可变的,即,一旦设置了它,就不能更改。

sourceComponentId

sourceComponentId 是受事件或情况影响的组件的标识。此属性的数据类型为复杂类型(如 ComponentIdentification 类型所述,该类型提供唯一标识某一组件所必需的数据)。

此属性是“必需”的,而且是不可变的。事件的产生者“必须”提供 sourceComponentId。如果报告组件和受影响的组件相同,则“必须”省略 reporterComponentId。

situationType

situationType 指定导致报告事件的情况的类型。这是可扩展字符串值。

建议的保留关键字包括:

这是“可选”的属性,而且是不可变的。situationType 的最大字符串长度“一定不能”超过 512 个字节。

contextDataElements

contextDataElements 是此事件引用的一组类型为 ContextDataElement 的上下文。此属性保存一些数据,这些数据用来帮助关联在工作单元的执行路径生成的消息或事件,以便诊断问题。

这是“可选”的属性且是可变的。它可由发出事件的组件提供,也可由事件的使用者指定。

msg

msg 属性是伴随事件的文本。这通常是针对特定语言环境呈示的采用人们可阅读格式的已解析消息字符串。

msg 属性的语言环境由类型为 MsgDataElement 的 msgLocale 属性指定。msg 语言环境没有任何缺省值。

此属性是“可选”的,但是当 MsgDataElement 的 msgCatalogId 和 msgCatalog 属性未指定值时,“建议”为其指定值。

msgDataElement

msgDataElement 是引用 MsgDataElement 的属性。此属性保存一些数据,这些数据用来指定与此事件保存的消息相关联的所有相关信息。

这是“可选”的属性且不可变。它是由发出事件的组件提供的。

extensionName

extensionName 属性包含此事件表示的“事件类”(例如,Trace 和 CommonBaseEvent)的名称。事件类名可指示期望在特定事件中出现的任何附加属性。如果选择使用 ExtendedDataElement(会在下一节中描述它),则建议为 extensionName 指定一个值。

这是“可选”的属性,它是不可变的并且“必须”由报告事件的组件提供。如果指定的值为空,则该值假定为“CommonBaseEvent”。

extendedDataElementsextendedProperties

extendedDataElements 属性是类型为 ExtendedDataElement 的名称元素的序列。
它通过提供位置来指定在 CommonBaseEvent 数据模型中未说明的任何其它属性以用于扩展性。放置在此处的信息假定为特定于产品的数据。

此属性可由您提供,而且可以根据相关规则过滤、搜索或引用已命名元素。

这是“可选”的可变属性。即,在设置它之后可以更改。此属性的值可由发出事件的组件提供或由事件的使用者指定。

associatedEvents

associatedEvents 属性允许事件或父子关系的非限制组合。此属性是一个复杂类型,它由标识相关联的事件的 globalInstanceIds 以及描述由关联名称表示的关联类型的类型字段组成。

这是“可选”的可变属性。即,在设置它之后可以更改。此属性的值可由发出事件的组件提供或由事件的使用者指定。

repeatCount

repeatCount 是特定时间间隔内给定事件的发生次数。时间间隔由下面描述的 elapsedTime 属性指示。导致先前发出的事件重复发生的原因的定义是特定于应用程序的,因此并非由此规范定义。

此属性是“可选”的且是可变的。repeatCount 可由发出事件的组件或事件的使用者设置。没有任何缺省值。值 0 或没有任何值表示事件没有重复发生。

elapsedTime

elapsedTime 是特定事件发生一定次数的时间间隔或经历时间。发生次数由 repeatCount 的值指定。此值指示观察到重复发生的事件的持续时间。

此属性的值“必须”以毫秒粒度表示。

此属性是“可选”的且是可变的。但是,如果指定 repeatCount,则必须存在经过时间。elapsedTime 可由设置 repeatCount 的同一组件设置。elapsedTime 没有任何缺省值。

sequenceNumber

sequenceNumber 是允许以不同于多个消息到达使用者位置(例如,事件服务器或管理工具)的逻辑顺序来发送和处理这些消息的源定义编号。序列号帮助使用者对到达的消息排序。这与时间和事件的特定提供者有关。

此属性是“可选”的,且一旦设置了它,它就是不可变的。没有任何缺省值。

ComponentIdentification 描述

在问题报告中,对于问题诊断,应该考虑两个总体类别的组件:观察和报告情况的组件(报告组件)和经历情况的实际组件(受影响组件)。组件标识提供唯一标识组件所必需的属性的集合。同一数据被用来标识报告事件或情况的组件和受影响或经历情况的组件。在某些情况下,这些组件将是相同的。

例如,在典型的信息技术环境中,一般来说,是通过管理代理程序或适配器从应用程序接收或收集的事件来监视在该环境中运行的应用程序的活动的。

示例 1:考虑 WebSphere 应用程序(称为 myWebApp)在执行表查询时因为远程系统上的 DB2 服务器问题而超时的情况。于是,Web 应用程序发出一个事件,指示故障情况。在这种情况下,myWebApp 是“受影响”或“源”组件。

示例 2:考虑应用程序 X 在 Windows 服务器上运行的情况。应用程序遇到错误并向 Windows 错误日志添加一个条目。然后,有一个独立的应用程序(适配器)从错误日志读取消息,生成公共基本事件并提交它。在这种情况下,事件的“受影响”或“源”组件是应用程序 X 而报告组件是生成并提交该事件的适配器。

ComponentIdentification 类型的详细描述如下。

location

location 指定与组件的位置相对应的物理地址。例如,主机名、IP 地址和 VTAM LU。位置的值格式由 locationType 属性指定。首选值是全限定主机名。

此属性是“必需”的,而且是不可变的。即,一旦设置了它,就不能更改。位置的最大字符串长度“一定不能”超过 256 个字符。

locationType

此属性指定 location 属性中的值的格式和含义。此属性具有下列熟知的保留关键字:

缺省值是“Unknown”。此属性是“必需”的,而且是不可变的。即,一旦设置了它,就不能更改。locationType 的最大字符串长度“一定不能”超过 32 个字符。

application

application 属性指定应用程序(例如,myApp)的用户名。应用程序版本信息可追加至组件的结尾,用 # 字符隔开。

这是“可选”的属性,而且是不可变的。即,一旦设置了它,就不能更改。应用程序名的最大字符串长度“一定不能”超过 256 个字符。

executionEnvironment

executionEnvironment 属性标识应用程序在其中运行的即时环境。例如,WebSphere Application Server 名称:cell:node:server。

executionEnvironment 版本信息可追加至组件的结尾,用 # 字符隔开。executionEnvironment 的最大字符串长度“一定不能”超过 256 个字符。

这是“可选”的属性,而且是不可变的。即,一旦设置了它,就不能在事件存在的过程中更改。

component

component 指定组件的逻辑标识。此属性“必须”包含特定应用程序、产品或子系统的名称(例如,IBM DB2 V7.1)。此值在由报告者位置指定的作用域中“最好”是唯一的。

此属性是“必需”的,而且是不可变的。即,一旦设置了它,就不能在事件存在的过程中更改。组件名的最大字符串长度“一定不能”超过 256 个字符。

subComponent

subComponent 指定事件的逻辑组件属性的进一步描述。

它“最好”包含 component 属性的子组件的标识,同时应该是在事件中指定的最精确的定义。此属性可以是应用程序或操作系统系统资源的各种部件之一,例如,模块名、类名以及类和方法名。

此属性是“必需”的,而且是不可变的。即,一旦设置了它,就不能在事件存在的过程中更改。subComponent 名的最大字符串长度“一定不能”超过 512 个字符。

componentIdType

componentIdType 指定由此 componentIdentification 标识的组件的格式和含义。此属性的保留、非独占性关键字列表包括:
 

此属性是“必需”的,而且是不可变的。componentIdType 的最大字符串长度“一定不能”超过 32 个字符。

instanceId

instanceId 指定由 component 属性指定的组件的实例的句柄或标识。即,网格服务句柄(GSH)和 EJBHandle。

此属性是“可选”的,而且是不可变的。即,一旦设置了它,就不能更改。instanceId 的最大字符串长度“一定不能”超过 128 个字符。

processId

processId 是字符串类型,它标识生成事件的运行组件或子组件的进程标识。

这是“可选”的不可变属性。即,一旦设置了它,就不能更改。processId 的最大字符串长度“一定不能”超过 64 个字符。

threadId

hreadId 属性为字符串类型,它标识由生成事件的进程标识指示的组件或子组件的线程标识。运行进程可能衍生一个或多个线程来运行其函数和入局请求。因此,线程标识将作相应更改。

这是“可选”的不可变属性。即,一旦设置了它,就不能更改。threadId 的最大字符串长度“一定不能”超过 64 个字符。

ExtendedDataElement 描述

ExtendedDataElement 允许您提供要对扩展性用途指定的名称类型值集合。这是可以包括 CommonBaseEvent 数据模型中未说明的任何其它属性的位置。此处指定的集合假定为特定于产品的数据。

可以依据相关性规则过滤、搜索或引用已命名属性。“名称”由您定义,但是,保留关键字的非独占列表如下所示:

RawData - 此关键字指示“按原样”数据,这些数据通常采用其产生者的专有格式。它可能是包括二进制在内的任何格式。它用来允许逐字检索数据,而且支持了解上下文格式的工具。

RootHeader - 此关键字用来标识由 dataRefs 定义的 ExtendedDataElements 的层次结构的根 ExtendedDataElement。

ExtendedDataElement 类型的详细描述如下所示:

name

name 属性指定 ExtendedDataElement 的名称。此名称对于事件中的所有其它属性“必须”是唯一的(例如,RawData、msgLocale 和 EventStatus)。

此属性是“必需”的,而且是不可变的。
 

type

在下面的 values 属性中指定的值的数据类型。

有效类型如下所示:
 

上面的数据类型是 ExtendedDataElement 类型支持的唯一有效类型。缺省值是“string”。

此属性是“必需”的,而且是不可变的。

values

用于该扩展数据元素的一组值,其类型由上述 type 属性定义。

此属性是“可选”的且是可变的。如果指定了“value”或“hexValue”属性,则“一定不能”指定它。

hexValue

hexValues 属性是一组字节,用来保存不在上面定义的受支持类型列表中的任何其它数据类型或 complexType 数据。

此属性是“可选”的,而且是不可变的。如果指定了“values”或“value”属性,则“一定不能”指定它。

注意:hexValue 和 values 属性是互斥的。只能定义这两个属性的其中一个。
 

children

children 属性引用其它 ExtendedDataElement 来指定 ExtendedDataElement 的结构化列表。此列表允许创建与特定一组 CommonBaseEvents 对应的相关 ExtendedDataElement 的层次结构。因此,这是一种快速且有效地访问 ExtendedDataElement 的列表的方法,它不必浏览和检查所有 ExtendedDataElement 的列表。

此属性是“可选”的且是可变的。
 

ContextDataElement 描述

ContextDataElement 类型定义此事件引用的一个或多个上下文。此复杂类型保存一些数据,这些数据用来帮助关联在工作单元的执行路径生成的消息或事件,以便诊断问题。

下表提供了表示公共基本事件中上下文的数据属性的摘要。摘要表之后是此 ContextDataElement 的详细描述

contextDataElement 的详细描述如下:
 

type

这是上下文的数据类型。此类型应该允许事件的使用者识别上下文值的格式。该类型是特定于应用程序的(例如,PD_LogRecordCorrelator)。

此属性是“必需”的,而且是不可变的。

name

这是创建此上下文数据元素的应用程序的名称(例如,相关引擎)。

此属性是“必需”的,而且是不可变的。

contextValue

这是有关上下文的实现的上下文的值。

如果 contextId 指定了值则此属性不是必需的;且该属性是不可变的。
 

contextId

此属性是对包含特定于产品或用户的上下文的元素的引用。

如果 contextValue 指定了值则此属性不是必需的;且该属性是不可变的。如果指定了 contextValue 属性,则“一定不能”指定它。

注意:contextValue 和 contextId 是互斥的,只能定义这两个属性中的一个。但是,如果将 contextValue 设置为一个值,则会忽略 contextId。
 

AssociatedEvent 描述

AssociatedEvent 类型允许分组事件。它允许标识相关联的事件及其 associationEngine。

AssociatedEvent 类型的详细描述如下所示:

associationEngine

这是对创建此 AssociatedEvent 的 AssocationEngine 的引用。

此属性是“必需”的,而且一旦设置了它,它就是不可变的。

resolvedEvents

对应与此事件相关联的事件的一组 globalInstanceIds

这是“必需”的可变属性,由关联引擎提供,而关联引擎由 name 属性指定。
 

AssociatedEvent 描述

AssociationEngine 元素允许标识关联的事件,此复杂类型还提供属性来描述关联的类型。它在 XML 模式中由它自己的独立实体表示,并且 AssociatedEvent 元素会引用它。

AssociationEngine 类型的详细描述如下:

name

将创建关联的应用程序的名称(例如,我的相关引擎名)。

此属性是“必需”的,而且一旦设置了它,它就是不可变的。

type

此属性应该包含包含由此 AssociationEngine 创建的关联的类型。

一些严格定义的关联包括:

保留的关键字值包括:

此属性是“必需”的,而且如果它是为特定“name”属性而设置的则是不可变的。

id

元素的主标识。此属性必须是全局唯一的。此属性的建议值是 128 位或 256 位“全局唯一的标识”(表示为十六进制字符串)。一旦设置了此值,就一定不能更改。

这是“必需”的不可变属性。

MsgDataElement 描述

此 MsgDataElement 表示用来指定与此事件保存的消息相关联的所有相关信息的数据。

msgId

msgId 属性指定事件的消息标识。此标识通常是字母数字或数字字符的唯一值字符串。它可以只是在消息编目中标识消息的数字字符的字符串,也可以是由多个部分组成的字母数字字符的字符串(例如,DBT1234E)。msgId 的内容的格式是由 msgIdType 属性指定的(如下一节中所述)。

这是“可选”属性,一旦设置了它,它就是不可变的,并且它应由发出事件的组件提供。msgId 属性的最大字符串长度“一定不能”超过 256 个字符。

msgIdType

msgIdType 属性指定 msgId 的含义和格式。如果标识符合或表示某一标准或熟知约定,则它由此属性命名。例如,IBM3.4.1 暗示由 3 部分、8 个字符的字符串标识(包括表示组件的 3 个字母字符,后跟 4 个数字字符,后缀为一个字母字符)构成的消息标识(例如,DBT2359I)。其它类似保留关键字包括 IBM3.4、IBM4.4、IBM3.1.4、IBM3.4.1、IBM4.4.1 和 IBM3.1.4.1。

保留关键字的当前非独占列表包括:

这是“可选”的属性,一旦设置了它,它就是不可变的,并且它应由发出事件的组件提供。如果指定了 msgId 属性,则必须提供它。msgIdType 属性的最大字符串长度“一定不能”超过 32 个字符。

msgLocale

msgLocale 属性指定呈示 msg 的语言环境。它的值是符合 IETF RFC 1766 规范的语言环境代码。例如,en-US 表示美国英语的值。

此属性是“可选”的,且一旦设置了它,它就是不可变的。如果指定 msgLocale,则由事件的使用者决定语言环境。

每个 msgLocale 的最大字符串长度“一定不能”超过 5 个字符。

msgCatalogTokens

msgCatalogTokens 属性由一组字符串值组成,用于保存将基于 NLS 的消息解析为完全格式化文本的替换数据。值的顺序由数组元素的隐式顺序暗示。标记的语言环境应该与由 msgLocale 定义的消息文本的语言环境相同。

此属性是“可选”的,且一旦设置了它,它就是不可变的。如果没有任何替换值,则不需要指定此属性。msgCatalogTokens 属性的最大字符串长度“一定不能”超过 256 个字节。

msgCatalogId

msgCatalogId 属性是用于解析消息编目中的消息文本的消息的索引或标识。

此属性是“可选”的,且一旦设置了它,它就是不可变的。

msgCatalog

msgCatalog 属性是包含 msgCatalogId 指定的已转换消息的消息编目的限定名。

此属性是“可选”的,且一旦设置了它,它就是不可变的。msgCatalog 属性的最大字符串长度“一定不能”超过 128 个字符。

msgCatalogType

msgCatalogType 属性指定 msgCatalog 的含义和格式。保留关键字的当前非独占列表包括:

此属性是“可选”的,且一旦设置了它,它就是不可变的,而且如果定义了 msgCatalog 属性,则“必须”提供它。msgCatalogType 属性的最大字符串长度“一定不能”超过 32 个字符。
 

相关概念
公共基本事件模型

相关参考
公共基本事件 XML 模式规范


(C) Copyright IBM Corporation 2000, 2003. All Rights Reserved.