我想从JAVA开始工作流程。我使用SSH连接到Informatica服务器并执行命令pmcmd以启动工作流程
JSch js = new JSch();
Session s = js.getSession("username", "host", 22);
s.setPassword("password");
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
s.setConfig(config);
s.connect();
Channel c = s.openChannel("exec");
ChannelExec ce = (ChannelExec) c;
ce.setCommand("pmcmd startworkflow -sv integrationservice -d Domain_dwhetl -u user -p pass-usd hq -f dvl wf_test");
//ce.setCommand("find -name PMCMD");
ce.setErrStream(System.err);
ce.connect();
BufferedReader reader = new BufferedReader(new InputStreamReader(ce.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
ce.disconnect();
s.disconnect();
System.out.println("Exit code: " + ce.getExitStatus());
运行此命令时出现错误:bash:pmcmd:命令未找到。
如果我将路径添加到pmcmd.exe:
ce.setCommand("/PMRootDir/pmcmd startworkflow -sv integrationservice -d Domain_dwhetl -u user -p pass-usd hq -f dvl wf_test");
我收到错误:/ PMRootDir / pmcmd:加载共享库时出错:libpmasrt.so:无法打开共享对象文件:没有这样的文件或目录
但是,当我直接在Informatica服务器中运行这些命令时,工作流将成功启动。
任何人都可以帮助解决这个问题吗?
谢谢!
最佳答案
您已将PATH设置为Informatica的安装位置,或更具体地说是pmcmd可执行文件所在的目录。
在调用pmcmd之前添加导出命令。
export PATH=<path Infa installation directory>:$PATH;