使用DS开发job时,偶尔一个Job出现卡死现象,导致工作不能进展下去,有时候需要重启datastage服务才可以。
DataStage在正常运行时候有以下两个主要的进程:
(1)dsrpcd(DS的主进程)
$ps -ef | grep dsrpcd
root 1602486 1 0 09:42:17 pts/5 0:00 /app/dsadm/Ascential/DataStage/DSEngine/bin/dsrpcd
(2)JobMonApp(jobmonitor的进程)
$ps -ef | grep JobMon
root 668620 1 0 09:42:22 pts/5 0:02 /app/dsadm/Ascential/DataStage/PXEngine/java/jre/bin/java -classpath /app/dsadm/Ascential/DataStage/PXEngine/java/JobMonApp.jar:/app/dsadm/Ascential/DataStage/PXEngine/java/xerces/xercesImpl.jar:/app/dsadm/Ascential/DataStage/PXEngine/java/xerces/xmlParserAPIs.jar JobMonApp 13400 13401
在需要重启DS的时候,需保证当前没有任何用户连接到DS上,用netstat命令可以查看当前连接情况。
命令如下:
(1)#netstat -a | grep ds
tcp4 0 0 *.dsrpc *.* LISTEN
tcp4 0 0 P05_EDW_ETL1.dsrpc 10.202.1.67.rusb-sys ESTABLISHED
tcp4 0 0 P05_EDW_ETL1.dsrpc 10.202.1.67.xtrms ESTABLISHED
tcp4 0 0 P05_EDW_ETL1.dsrpc P05_EDW_ETL1.60218 CLOSE_WAIT
tcp4 0 0 P05_EDW_ETL1.60218 P05_EDW_ETL1.dsrpc FIN_WAIT_2
(2)查看连接的进程需使用ps命令
#ps -ef | grep dsapi
dsadm 3289402 1450818 0 10:05:25 pts/5 0:00 grep dsapi
dsadm 791408 2630360 0 09:43:47 - 0:01 dsapi_slave 7 6 0
dsadm 1237846 1266584 0 09:45:49 - 0:00 dsapi_slave 7 6 0
(3)杀掉相关进程命令:kill
#ps -ef | grep dsapi | awk '{print "kill "$2}' | sh
(4)再次确认是否仍有用户连接到当前的datastage服务器
重复执行ps -ef | grep dsapi 和netstat -a | grep ds 命令,如果当前没有用户连接,才可以重启。
(5)重启datastage服务
将路径切换到:/home/datastage/Server/DSEngine/bin (具体要看安装路径)
关闭服务
#uv -admin -stop
启动服务
#uv -admin -start
参考:http://blog.csdn.net/qianyuanyuan1212/article/details/6058457