案例类别 VAS网络
系统类型 CMODE
系统版本 硬件SUN 软件所有版本
案例标题 CMODE放号中的数据库出现LOCK的处理方法
故障现象 启动sam_cmode进程不能正常处理工单
故障描述 启动以sam_cmode –d方式启动发现sam_cmode始终在处理一个用户
connected
c f e a e d d
a c f d
a d a
send: LOGIN:USERNAME=utbjPASSWORD=utbj
recv: LOGIN:RESULT=
connect cmode successful!
c a
d a
send DEL :
a connection break or timeout in recv
commu err when delete event
故障分析 在CMODE的数据库中手动删除该用户记录发现oracle无任何反馈信息
(正常情况下会出现oracle的完整性约束报错ORA: integrity constraint (PDXDBAFK_TSIGNUP_USERID) violated child record found)
初步怀疑tcontract表中该用户记录被锁定
通过查询oracle的视图发现目前有用户正在update该用户记录且发现有很多update操作没有commit
SQL> select aSERIAL#aSIDcSQL_TEXTaprogram from v$session av$locked_object bv$sqltext c where asid=bSESSION_ID and cSQL_TEXT like update tcontract set % and aprogram like sqlplus% order by asid;
update tcontract set lstatus=E where tel=
sqlplus@gz_signup (TNS VV)
故障处理 通过oracle命令将这些session杀死重启sam_cmode和signup模块
alter system kill session ;
日常维护 维护人员尽量不要手工修改CMODE数据库中的数据
修改完毕确认正确后及时执行commit操作