在Informatica中,我可以启动工作流,但无法让它在会话日志和工作流监视器中识别我的实例名称。
工作流程启动但在会话日志中显示:
Workflow wf_Tenter image description hereemp started with run id [22350], run instance name [], run type [Concurrent Run with Un[enter image description here][1]ique Instance Name]
实例名称为空白。
我的命令是:
pmcmd startworkflow -sv <service> -d <domain> -u <user> -p <password> -f <folder> -rin INST1 -paramfile <full param file path name> wf_Temp
我已编辑了工作流程并选中了“配置当前执行”复选框。在Configure Concurrent Execution按钮内,我创建了三个实例:INST1,INST2,INST3,但没有任何相关的参数文件。所有参数文件都是空白的。
我认为,我认为,为了使用PMCMD启动工作流程,我必须传入一个已配置的实例名称(即INST1,INST2,INST3等)
如果我第二次从Putty执行PMCMD命令以查看第二个实例运行,我收到一条消息,工作流仍在运行,我必须等待?为什么?我已经检查了工作流程中的Concurrent Workflow框。
ERROR: Workflow [wf_Temp]: Could not start execution of this workflow because the current run on this Integration Service has not completed yet.
Disconnecting from Integration Service
所以,我认为我很接近,但我错过了一些东西。工作流使用我在PMCMD中传递的参数文件运行,但实例名称似乎被忽略。
此外。是的,我必须在Workflow管理器中预先配置实例名称吗? PMCMD实例和参数文件参数是否足够?如果必须在工作流程中预先定义Instances,它似乎不那么动态。
感谢。
@MacieJG
这是我运行命令时Putty的截图。您可以看到实例名称DALLAS正在通过PMCMD传递OK。没有组合获得实例名称。我没有包含您建议的测试1的图片,但结果相同..仍然没有实例。
答案 0 :(得分:1)
您无需在工作流程中预先配置实例名称。在pmcmd中传递实例名称和参数文件名就足够了。
答案 1 :(得分:1)
试试这个:pmcmd startworkflow -sv(service)-d(domain)-u(user)-p(password)-f(folder)-paramfile(full param file path name)-rin INST1 wf_Temp
答案 2 :(得分:1)
准确地说:配置并发执行时,您可以指定:
除此之外,您可以,但不必指出哪个实例应使用哪个参数文件,因此在执行时不需要提及它。但这是一个单独的功能。
现在,如果您已经选择了第一个,您将能够使用相同的命令多次调用WF。如果您已经选择了第二个并试试这个,那么您的WF已经在运行&#39;错误。
麻烦的是,你的例子乍一看似乎是正确的。根据日志消息:
Workflow wf_Temp started with run id [22350], run instance name [], run type [Concurrent Run with Unique Instance Name]
所以你只允许使用唯一的实例。似乎没有使用实例名称。第一次执行不会设置实例名称,因此类似的第二次执行也不会使用它并将被拒绝,因为这是相同的实例名称(即无)。
您可以尝试将设置更改为Allow concurrent run with same instance name
,这将允许secon执行,但不能解决主要问题。由于某种原因,实例名称不会被传递。
请根据下面引用的文档验证您的命令。尽量尝试匹配订单。如果仍然失败,请分享更多信息。
查看文档:
pmcmd StartWorkflow &LT;&LT; -service | -sv&GT;服务[&lt; -domain | -d&gt;域名] [&lt; -timeout | -t&gt;超时] GT; &LT;&LT; -user | -u&GT;用户名|&LT; -uservar | -uv&GT; userEnvVar&GT; &LT;&LT; -password | -p&GT;密码|&LT; -passwordvar | -pv&GT; passwordEnvVar&GT; 并[d&LT; -usersecuritydomain | -usd&GT; usersecuritydomain |&LT; -usersecuritydomainvar | -usdv&GT; userSecuritydomainEnvVar&GT;] 并[d -folder | -f&GT;夹] 并[d -startfrom&GT; taskInstancePath] 并[d -recovery | -norecovery&GT;] 并[d -paramfile&GT; paramfile] 并[d -localparamfile | -LPF&GT; localparamfile] 并[d -osprofile | -o&GT; OSUSER] [-wait | -nowait] 的并[d -runinsname | -rin&GT; runInsName] 强> 工作流
答案 3 :(得分:1)
以上是我在上述评论中要求的完整测试。我尽力把你可能需要的东西放在这里,但如果我错过了什么,请告诉我。所以这里......
我创建了一个非常简单的工作流程来运行实例名称。它使用一个计时器来等待,并使用命令来将实例名称写入文件:
以最简单的方式设置了并发执行:
现在,我准备了followig批处理来运行工作流程(只删除用户和密码):
SET "PMCMD=C:\Informatica\9.5.1\clients\PowerCenterClient\CommandLineUtilities\PC\server\bin\pmcmd"
%PMCMD% startworkflow -sv Dev_IS -d Domain_vic-vpc -u ####### -p ####### -f Dev01 -rin GLASGOW wf_Instance_Test
%PMCMD% startworkflow -sv Dev_IS -d Domain_vic-vpc -u ####### -p ####### -f Dev01 -rin FRANKFURT wf_Instance_Test
%PMCMD% startworkflow -sv Dev_IS -d Domain_vic-vpc -u ####### -p ####### -f Dev01 -rin GLASGOW wf_Instance_Test
它运行三个实例,其中两个具有相同的名称,只是为了测试它。我按以下方式运行批处理来捕获输出:
pmStartTestWF.bat > c:\MG\pmStartTestWF.log
执行完毕后,我在工作流程监控器中看到了这一点:
正如预期的那样,执行并正确显示了三个实例。文件输出看起来也很好:
可以找到pmcmd的输出here.我的测试工作流程的完整定义可用here.
我真的希望这会以某种方式帮助你。如果您在这里发现任何遗漏,请随时告诉我。祝你好运!