无法在Informatica中为实例工作流分配实例名称

时间:2017-09-04 17:36:05

标签: informatica informatica-powercenter

在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,它似乎不那么动态。

感谢。

enter image description here

enter image description here

enter image description here

@MacieJG

这是我运行命令时Putty的截图。您可以看到实例名称DALLAS正在通过PMCMD传递OK。没有组合获得实例名称。我没有包含您建议的测试1的图片,但结果相同..仍然没有实例。

enter image description here enter image description here

4 个答案:

答案 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)

以上是我在上述评论中要求的完整测试。我尽力把你可能需要的东西放在这里,但如果我错过了什么,请告诉我。所以这里......

我创建了一个非常简单的工作流程来运行实例名称。它使用一个计时器来等待,并使用命令来将实例名称写入文件:

Workflow overview

以最简单的方式设置了并发执行:

Workflow configuration

现在,我准备了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

执行完毕后,我在工作流程监控器中看到了这一点:

Workflow Monitor

正如预期的那样,执行并正确显示了三个实例。文件输出看起来也很好:

enter image description here

可以找到pmcmd的输出here.我的测试工作流程的完整定义可用here.

我真的希望这会以某种方式帮助你。如果您在这里发现任何遗漏,请随时告诉我。祝你好运!