华为软交换端局话统丢失问题分析报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华为软交换端局话统丢失问题分析报告
一、故障现象
华为软交换端局在M2000上无法取得话统结果
二、故障处理过程
提取网元运行日志进行分析
三、故障分析
上传话统流程过程中后台执行ULD MEASRST命令上传话统结果,此命令由Maintain进程处理,如果此进程无响应,将造成无法上传话统结果。
分析Maintain进程运行日志发现,有以下打印
2011-03-01 15:41:27:657 Err \bambase\monitorthread.cpp 776
Succeed to GetProcessHeaps..
2011-03-01 15:41:27:657 Err \bambase\monitorthread.cpp 813
Max heap number is 100.
2011-03-03 12:49:13:021 Err \maintain.cpp 207
[CMaintainApp::InitInstance]Initial...
2011-03-03 12:49:13:099 Err \maintain.cpp 233
[CMaintainApp::InitInstance]Call AfxSetResourceHandle() succeed
2011-03-03 12:49:13:115 Err \maintain.cpp 258
[CMaintainApp::InitInstance]Call InstanceFirst() succeed
其中2011-03-01日15:41:27 到2011-03-03日12:49:13之间的1天多的时间内没有任何打印,说明Maintain进程出现了吊死无响应,不响应M2000下发的执行命令(ULD MEASRST),这是造成M2000取不到话统结果的原因。
分析Maintain运行日志发现,进程是在运行到Succeed to GetProcessHeaps..
位置时出现吊死无响应,此部分打印由Maintain进程的监控线程运行。在Maintain内部有一个主线程、多个工作线程和一个监控线程组成,其中监控线程负责监控其他线程的运行情况。
当有某个线程出现异常,监控线程负责杀死此线程并将它重启。但是没有任何机制监控监控线程的工作情况,如果监控线程出现异常,那整个进程将长期处于异常状态无响应。此为问题产生的主要原因。
3月3日12:49由于有维护操作,由于BAM要响应维护命令,MAINTAIN进程自动重启,M2000取话统结果问题同时得到恢复。
在R7C3SPH018中,对各进程组件部分做了优化,增加了监控线程向BAM管理器上报心跳的机制,使得每个工作进程的监控线程被BAM管理器监控,有效解决了吊死问题。
四、结论
内部缺陷导致Maintain进程出现吊死,最终使得M2000无法取得话统结果
五、解决方案及建议
1、升级MSOFTX3000 V100R007C03SPH018或以上补丁;
2、备份BAM服务器D:\MSOFTX3000目录下Bam.ini文件(此文件为系统隐藏文件,需要
打开文件夹属性的现实系统文件和显示隐藏文件才能看到);
3、手动修改Bam.ini文件,找到[System\Maintain]项,在其项的最后一行加入
NeedShakehand=1,如下
[System\Maintain]
ImagePath =D:\MSOFTX3000\Services\Maintain.exe
Start =2
VirtualProcID = 6
ProcessID =2312
ModuleName = Maintain.exe
State=1
MainThreadID=5248
NeedShakehand=1
4、修改完成保存文件,并重启整个BAM服务器使得配置生效。
2011年3月7 日