使用 CBE 和 JAXB 集成实现对 WebSphere Application Server 上应用程序的业务数据监控
2009-10-28 00:00:00 来源:WEB开发网在拦截器中定义 CBE
在上面的拦截器中,我们通过 constructCBE(invokeCtx) 来实现构造并发送 CBE 的流程。
构造 CBE 消息文件头: 公共基础事件有其特定的格式,所有在拦截器类中,我们需要通过设定其相关属性以满足其式需求,其中包括版本信息,创建时间信息,位置信息,环境变量信息,时间戳信息,线程 ID,事件源组件信息。清单 4 给出了构造定义 CBE Header 的样例代码。
清单 4. 构造 CBE 消息文件头 // 创建事件工厂
org.eclipse.hyades.logging.events.cbe.EventFactory eventFactory = null;
eventFactory = (org.eclipse.hyades.logging.events.cbe.EventFactory)
org.eclipse.hyades.logging.events.cbe.EventFactoryFactory.createEventFactory();
// 创建事件
org.eclipse.hyades.logging.events.cbe.CommonBaseEvent event = null;
String eventXMLString = null;
event = eventFactory.createCommonBaseEvent();
// 定义事件版本信息
event.setVersion("1.0.1");
long currentTime = System.currentTimeMillis();
// 定义事件创建时间
event.setCreationTimeAsLong(currentTime);
// 定义事件全局 ID
String timeStamp = Long.toString(currentTime);
String threadID = Long.toString(Thread.currentThread().getId());
event.setGlobalInstanceId(threadID + "_" + timeStamp);
// 定义组件
org.eclipse.hyades.logging.events.cbe.ComponentIdentification componentID =
eventFactory.createComponentIdentification();
componentID.setComponentIdType
(org.eclipse.hyades.logging.events.cbe.ComponentIdentification.
COMPONENT_ID_TYPE_PRODUCT_NAME);
componentID.setComponent("IBM WebSphere");
componentID.setComponentType("WebSphere");
componentID.setSubComponent(boSchemaName);
componentID.setLocationType(org.eclipse.hyades.logging.events.
cbe.ComponentIdentification.LOCATION_TYPE_HOSTNAME);
componentID.setLocation("localhost");
componentID.setExecutionEnvironment
(System.getProperty("os.name"));
componentID.setProcessId(timeStamp);
componentID.setThreadId(threadID);
event.setSourceComponentId(componentID);
// 定义事件环境
org.eclipse.hyades.logging.events.cbe.Situation situation =
eventFactory.createSituation();
situation.setRequestSituation("EXTERNAL", "", "SUCCESSFUL");
event.setSituation(situation);
更多精彩
赞助商链接