在现实项目中,有时我们不会在Designer Client或者Director Client直接运行datastage job, 而是通过shell调用,下面简单介绍一下可能遇到的问题及解决办法。
本机调用命令(命令中的参数:SourceFile是区分大小写的,需要多加注意)
./dsjob -run -mode NORMAL -param SourceFile=DAD_DDDC_Multi-Date_Oct_2013_v1.csv ANALYZERPROJECT Untitled1
远程调用命令(下面的ip地址也可以使用[server name]代替)
dsjob -server 192.168.12.** -user stmttest -password 123456 -run -mode NORMAL -param SourceFile=DAD_DDDC_Multi-Date_Oct_2013_v1.csv ANALYZERPROJECT Untitled1
问题1:
执行dsjob的时候遇到"error while loading shared libraries: xxx.so.x"问题,可参考我的上一篇博客进行解决。
问题2:
code -2 (DSJE_BADSTATE)之类的返回错误。
解决办法:
通常是因为上一次的dsjob运行失败,导致它当前处于:RUNFAILED, CRASHED的状态而无法再次运行。
使用下边的命令,查看一下dsjob的当前状态。
./dsjob -jobinfo ANALYZERPROJECT Untitled1
如果发现其状态错误,可以使用下列命令进行状态重置,然后再运行。./dsjob -run -mode RESET ANALYZERPROJECT Untitled1
问题3:
以Excel作为数据源文件进行数据提取。
解决办法:
datastage9及以上版本可以直接读取Excel文件。
如果项目确实需要在低版本datastage进行这种操作,我的建议是使用catdoc(开源免费小工具,可以到国外网站进行下载)中的xls2csv工具,进行提取前转化。
在下边的IBM的网站里,我们可以找到大量相关的技术支持文章,希望有所帮助:
http://www-01.ibm.com/support/docview.wss?uid=swg21595194