51Testing软件测试论坛

标题: WWWW [打印本页]

作者: uk2008jun123    时间: 2009-8-10 19:26
标题: WWWW
Datarelay介于mgmt和数据仓库间,是个传递消息的组件。Datarelay分为server端和client端。Mgmt的数据更新如果需要让仓库同步,则通知server端, serve端生成事件并分发事件到各个client端,client端再通知仓库,让它到数据库同步数据。

Datarelay server端启动后,数据库表DRS_GROUP会插入数据
[localimg=400,31]2[/localimg]

GROUP_ID对应为datarelay.config文件的group.id参数

Datarelay client端启动后,数据库表DRC_Group会插入数据
[localimg=400,51]3[/localimg]


停止Datarelay client端最好用shutdown.sh脚本,如果成功停止,DRC_GROUP表就会清除相应的数据。这样下次启动就可通过该表知道client有没有正常注册上。

[localimg=400,44]4[/localimg]

现在有这样一个场景

当前有两个Datarelay client端,GROUP_ID为:drc-203.10.10.14和203.10.0.18-drc。这时drc-203.10.10.14这个Datarelay的服务器网络中断了。

操作:mgmt上将一个vodid=319点点播做了绑定,那么mgmt会在DISTRIBUTEINFO表插入一条数据,ENTITY即是被操作对象的id

[localimg=400,27]5[/localimg]

此后mgmt会通知Datarelay server端,并在DISTRIBUTE_EVENT表插入数据



该表的PATLOAD字段的值对应为DISTRIBUTEINFO表的GROUP_NUMBER的值。

而事件的执行结果则会记录在DISTRIBUTE_TASK表中



EVENT_ID字段的值对应DISTRIBUTE_EVENT表的ID字段的值。STATE的值是任务的执行状态,1为失败,0为成功。

仅当Datarelay的所有任务执行成功,DISTRIBUTEINFO、DISTRIBUTE_EVENT、DISTRIBUTE_TASK表的相应数据会马上被清除掉,只有出现失败的任务,才能看到相关的数据。

[localimg=400,82]6[/localimg]


Datarelay Server端和一般每3分钟向client发一次心跳, client 端datarelay.log心跳日志:

30.04.2009 10:25:37 *DEBUG* [http-2080-1] HttpServiceMapping: Looking up handler for [/DatarelayService] (AbstractUrlHandlerMapping.java, line 161)
HeartbeatMessageHandler: 2009-04-30 10:25:37 | DEBUG | XTVMW | Entre func [onDatarelayMessage]Received Message from Server ,The MessageType is 'HEARTBEAT' | com.huawei.xtvmw.datarelay.client.HeartbeatMessageHandler.onDatarelayMessage(HeartbeatMessageHandler.java:56) (DebugLogImpl.java, line 383)
30.04.2009 10:25:37 *DEBUG* [http-2080-1] HeartbeatMessageHandler: 2009-04-30 10:25:37 | DEBUG | XTVMW | Exit func [onDatarelayMessage] | com.huawei.xtvmw.datarelay.client.HeartbeatMessageHandler.onDatarelayMessage(HeartbeatMessageHandler.java:65) (DebugLogImpl.java, line 383)


Server端的datarelay.log心跳日志:

30.04.2009 10:37:32 *INFO * [pool-3-thread-4] HeartbeatMessageGenerator: 2009-04-30 10:37:32 | INFO  | XTVMW | HeartBeatean to http://203.10.0.18:2080/datarelay/DatarelayService has successed  | com.huawei.xtvmw.datarelay.server.HeartbeatMessageGenerator.onDatarelayMessage(HeartbeatMessageGenerator.java:130) (DebugLogImpl.java, line 383)
30.04.2009 10:37:32 *INFO * [pool-3-thread-4] DrWatchdogService: 2009-04-30 10:37:32 | INFO  | XTVMW | notify to http://203.10.0.18:2080/datarelay/DatarelayService has successed  | com.huawei.xtvmw.datarelay.service.DrWatchdogService$WatchdogExecutor.run(DrWatchdogService.java:496) (DebugLogImpl.java, line 383)


如果server 端有向某client发心跳的日志而client端没看到心跳日志,则是client出了问题。
如果server端没有向任何client发心跳的日志,则是server端出了问题。

如果不是很有必要深究原因,重启出问题的服务吧。



Client 端处理任务的日志
30.04.2009 08:57:48 *INFO * [pool-1-thread-4] UpdateMessageHandler: 2009-04-30 08:57:48 | INFO  | XTVMW | Received Message from DatarelayServer where the event id is -1,the topic is vod AND the repository operaotr is successed.. | com.huawei.xtvmw.datarelay.client.UpdateMessageHandler.onDatarelayMessage(UpdateMessageHandler.java:88) (DebugLogImpl.java, line 383)

30.04.2009 08:57:48 *INFO * [pool-1-thread-4] CompleteMessageGenerator: 2009-04-30 08:57:48 | INFO  | XTVMW |  Complete Notify Operation to [http://203.10.0.11:8080/datarelay/DatarelayService] succeeded!  | com.huawei.xtvmw.datarelay.client.CompleteMessageGenerator.onDatarelayMessage(CompleteMessageGenerator.java:97) (DebugLogImpl.java, line 383)

第一段红色字体表示“通知了仓库,关于vod的更新,并且通知successed.了”。
第二段红色字体表示“回复了server端,通知消息的任务圆满完成”。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2