问题现象

V5和V7早期iMC版本在去部署了portal组件后再次部署时会报错,多次尝试均无法成功,并且页面提示查看对应deploy日志信息,如下图所示:

 

告警信息

portal组件重新部署时失败,多次尝试均不成功。

原因分析

打开报错页面提示的日志文件,可以看到后台详细的执行过程,发现部署时iMC后台在访问\Program Files\iMC\apache\bin\httpd.exe文件时发生异常,进而部署失败。如下所示:

2016-06-07 16:34:27 [ERROR] [SwingWorker-pool-2-thread-3] [com.h3c.imc.deploy.tasks.UnzipFileTask$a::a(336)] Unzip file error
java.io.FileNotFoundException: Z:\Program Files\iMC\apache\bin\httpd.exe (另一个程序正在使用此文件,进程无法访问。)

    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:194)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:145)
    at com.h3c.imc.deploy.tasks.UnzipFileTask$a.a(UnzipFileTask.java:291)
    at com.h3c.imc.deploy.tasks.UnzipFileTask$a.doInBackground(UnzipFileTask.java:170)
    at javax.swing.SwingWorker$1.call(SwingWorker.java:277)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at javax.swing.SwingWorker.run(SwingWorker.java:316)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:662)
2016-06-07 16:34:27 [ERROR] [Thread-41] [com.h3c.imc.deploy.dma.wizard.DeployingPanelDescriptor$c::run(346)] Task execute failed

进到目录下发现此文件为一个exe文件,所以应该是已经在执行了,部署时再次执行时报错导致。

解决办法

打开服务器的任务管理器,在“进程”一列找到名为httpd.exe的进程,将其右键手动停止掉即可。

然后再重新部署组件,操作成功。

建议与总结

此为iMC较老版本处理机制问题,后续版本已经优化解决。

UAM其他组件部署时也有可能出现此报错,处理方法与上文描述一致。

案例信息

案例类型:经验案例
案例号:201606080005
创建时间:2016年6月8日
更新时间:2016年6月22日
发布时间:2016/6/22 11:34:39
文章密级:游客可见
有效期:长期有效
发布者:杨银波 [y10225]
点击次数:1235
评论平均得分:0
关键词:imc portal 部署 失败
产品线:ESM
产品系列:iMC-UAM用户接入管理组件
产品版本:
故障类型:软件bug

常用操作
收藏