今天楼下项目组的manager踢掉了电源,导致正在做开发的几台机突然从主机断开。可惜的是他们没有通过
DataStage Director中杀掉刚才的连接,而是选择重启datastage服务,这样一来,监听端口没有释放,服务再次启动后不可用。
以前经常碰到类似的问题,一般情况下重启机器就可以释放。但是这次工作紧而且服务器上又有其他项目的应用正在被使用,无法重新启动。经过半个多小时的摸索,终于解决。
现整理一下解决方法,记录如下:(hp-ux服务器)
1、出现异常断开后,先通过DataStage Director中job——>cleanup resources 中选show all,logout非监听连接
2、如果没有做1、或者做1、失败而停掉了datastage服务,且启动后不可用。则再次停掉服务并确认,而后在服务器端netstat -a | grep ds 查看结果。如状态为FIN_WAIT_2 or CLOSE_WAIT
则直接做4、否则看3、
3、本次查看端口状态为ESTABLISHED,应该是还有客户端进程存在,于是ps -ef | grep dsadm(启动datastage服务的用户名)。看到很多进程如dsapi_slave或dscs之类,逐一kill -9 干掉之。再次执行2、,查看返回状态为FIN_WAIT_1
可以去4、了。
4、查找进程号:ndd -get /dev/tcp tcp_status |grep -e state -e FIN_WAIT_1
断开连接,释放端口:ndd -set /dev/tcp tcp_discon 0x+进程号
进程号就是返回结果的第一列TCP
阅读(4615) | 评论(2) | 转发(1) |