如何解决Datastage端口不能释放的问题

 今天楼下项目组的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
感谢 lynnliu等网友提供的解决方法,原文中间有些地方描述不是很清晰,本着方便大众娱乐大众的精神,结合我的实际操作在此赘述一番。

你可能感兴趣的:(工作,娱乐,manager,服务器,kill,resources)