现在的位置: 首页 > 综合 > 正文

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

2018年01月15日 ⁄ 综合 ⁄ 共 744字 ⁄ 字号 评论关闭
 今天楼下项目组的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等网友提供的解决方法,原文中间有些地方描述不是很清晰,本着方便大众娱乐大众的精神,结合我的实际操作在此赘述一番。

抱歉!评论已关闭.