Невозможно присвоить имя экземпляра параллельному рабочему процессу в Informatica

В 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

Я отредактировал рабочий процесс и установил флажок «Настроить текущее выполнение». Внутри кнопки «Настроить параллельное выполнение» я создал три экземпляра: INST1, INST2, INST3, но без каких-либо связанных файлов параметров. Все файлы параметров пустые.

Я понимаю, я думаю, что для запуска рабочего процесса с PMCMD я должен передать одно из настроенных имен экземпляров (например, INST1, INST2, INST3 и т. Д.)

Если я выполняю команду PMCMD из Putty во второй раз, чтобы увидеть запуск второго экземпляра, я получаю сообщение о том, что рабочий процесс все еще выполняется, и мне нужно подождать? Почему? Я установил флажок «Параллельный рабочий процесс» в рабочем процессе.

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, но имя экземпляра, похоже, игнорируется.

Дальше. Мне нужно предварительно настроить имена экземпляров в диспетчере рабочих процессов? Достаточно ли параметров экземпляра PMCMD и файла параметров? Это не кажется таким уж динамичным, если экземпляры должны быть предварительно определены в рабочих процессах.

Спасибо.

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

@MacieJG

Вот скриншоты из Putty, когда я запускаю команду. Вы можете видеть, что имя экземпляра DALLAS передается через PMCMD OK. Никакая комбинация никогда не получает имя экземпляра. Я не включил фотографии предложенного вами Теста 1, но результаты были такими же ... все еще ни одного экземпляра.

введите описание изображения здесь  введите описание изображения здесь


person Davidson    schedule 04.09.2017    source источник
comment
Попробуйте два теста: попробуйте запустить экземпляр DALLAS, упомянутый ниже (-rin DALLAS), с параметром «Разрешить одновременный запуск» с тем же именем экземпляра, а затем с «Разрешить одновременный запуск только с уникальным именем экземпляра и DALLAS, созданным в списке». Поделитесь результатами.   -  person Maciejg    schedule 08.09.2017
comment
На экране замазки я вижу сообщение о том, что wf_Temp с именем экземпляра запуска [DALLAS] и идентификатором запуска [22807] запущен успешно. Так это работает, не так ли?   -  person Maciejg    schedule 11.09.2017
comment
Я не вижу ни имени экземпляра DALLAS ни в мониторе рабочего процесса, ни в журнале сеанса. Но да, вы видите это в окне шпатлевки как выходные данные команды PMCMD. Но, судя по вставке в мой исходный вопрос, его нет в журнале сеанса. Я также не могу запустить команду putty подряд после изменения DALLAS на HOUSTON (например). Я получаю сообщение о том, что поток запущен, и мне нужно подождать. Я пробовал бесчисленное количество экспериментов, чтобы заставить эту функцию работать в Informatica .... я никогда не вижу имени экземпляра в мониторе или журнале ... даже несмотря на то, что документы повторяют это снова и снова, вот как это работает   -  person Davidson    schedule 11.09.2017
comment
Итак, теперь синтаксис pmcmd правильный и правильно читается командой ... почему он не принимается фактическим рабочим процессом и не включается в ЖУРНАЛ ... В основном, я хочу увидеть имя экземпляра в мониторе рабочего процесса ... это действительно то, что мне нужно.   -  person Davidson    schedule 12.09.2017
comment
Я выясню, почему -nowait, похоже, тоже не работает, позже .... Как Java-разработчик мне нравится понятие потоков и параллельных рабочих процессов.   -  person Davidson    schedule 12.09.2017
comment
@Maciejg, у вас есть собственный образец, который вы могли бы экспортировать и прислать мне? Я вижу вашу версию этого. Может быть, есть еще что-то, что я не замечаю ... Я оооочень ценю ваше усилие, чтобы помочь. Может быть, вы могли бы создать рабочий процесс, как у меня, который просто вызывает таймер на минуту и ​​посмотреть, сможете ли вы заставить свою версию работать?   -  person Davidson    schedule 12.09.2017
comment
@davidson Я столкнулся с той же проблемой, и она решается перезапуском службы интеграции. Мы не перезапускали службу интеграции, чтобы исправить эту проблему. Но это решило эту проблему. Когда мы связались со службой поддержки informatica для решения проблемы, они предоставили ссылку ниже. kb.informatica.com/solution/23/Pages/59/501120. aspx Пожалуйста, найдите ветку, которую я открыл в сети Informatica. network.informatica.com/thread/83540 Надеюсь, это поможет.   -  person Venkat    schedule 16.07.2018


Ответы (4)


Вот мой полный тест, как указано в комментарии выше. Я изо всех сил старался разместить здесь все, что вам может понадобиться, но если я что-то пропустил, просто дайте мне знать. Итак, начнем ...

Я создал очень простой рабочий процесс для запуска с именем экземпляра. Он использует таймер для ожидания и команду tast для записи имени экземпляра в файл:

Обзор рабочего процесса

Параллельное выполнение настроено максимально просто:

Конфигурация рабочего процесса

Теперь я подготовил следующий пакет для запуска рабочего процесса (только пользователь и пароль удалены):

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 можно найти здесь. Полное определение моего рабочего процесса тестирования доступно здесь.

Я очень надеюсь, что это вам как-то поможет. Не стесняйтесь сообщить мне, если вы обнаружите, что здесь чего-то не хватает. Удачи!

person Maciejg    schedule 13.09.2017
comment
Я импортировал ваш пример .... Он работает ... теперь мне нужно навести порядок в моем собственном рабочем процессе и сузить круг вопросов, которые мне не хватает. Большое вам спасибо. Я скоро вернусь и расскажу, почему мой не работал. - person Davidson; 14.09.2017
comment
Я решил, что мой поток wf_Temp каким-то образом поврежден, и мои изменения на самом деле не сохраняются, как я думал. Итак, я создал совершенно новый рабочий процесс wf_Temp2, и он впервые работал с именами экземпляров. Мне ужасно, что я не подумал об этом раньше. Все работает как рекламируется. Ваш пример, тем не менее, доказал мне, что здесь определенно что-то на моей стороне. Что-ЕСЛИ во мне, сказал: давайте просто начнем с совершенно нового потока - что-то не так с исходным. Думаю, так оно и было. Идеально. - person Davidson; 15.09.2017
comment
Рад, что смог помочь, и вам удалось решить эту проблему! Тем не менее, какое-то время меня будет беспокоить то, что я не знаю, в чем заключалась основная причина: D Если вы можете сравнить экспортированные XML-файлы и что-то выяснить, дайте мне знать. Я рано начну спать: D Ура! - person Maciejg; 15.09.2017
comment
Очень хорошая идея. Я сделаю это. Я тоже ненавижу незнание, в чем проблема. - person Davidson; 15.09.2017
comment
Сравнение XML двух версий было одинаковым, за исключением отметок времени и имен. Затем, внезапно, спустя все это время, мой исходный рабочий процесс неожиданно начал показывать имя экземпляра. вау ... Я могу только предположить, что где-то был гремлин. Но я очень благодарен вам за вашу преданность делу. - person Davidson; 19.09.2017

Вам не нужно предварительно настраивать имена экземпляров в рабочем процессе. Достаточно передать имя экземпляра в pmcmd вместе с параметром filename.

person Samik    schedule 04.09.2017
comment
Спасибо за подтверждение. Исходя из исходного вопроса, знаете ли вы, почему я не вижу имени экземпляра в журналах сеанса? И действительно, я действительно хочу видеть имя экземпляра в мониторе, когда рабочий процесс выполняется для визуальных элементов, на каком экземпляре запущен. - person Davidson; 05.09.2017

попробуйте это: pmcmd startworkflow -sv (service) -d (domain) -u (user) -p (password) -f (folder) -paramfile (full param file path name) -rin INST1 wf_Temp

person tiagotxm    schedule 05.09.2017
comment
Спасибо ... Я подтвердил, что все мои пармы имеют правильную последовательность и формат. Пожалуйста, смотрите мой ответ в следующем сообщении - person Davidson; 06.09.2017

Чтобы быть точным: когда вы настраиваете параллельное выполнение, вы можете указать, если вы:

  • разрешить одновременный запуск с тем же именем экземпляра
  • разрешить одновременный запуск только с уникальным именем экземпляра

В дополнение к этому вы можете, но не обязаны указывать, какой экземпляр какой файл параметров должен использовать, чтобы не было необходимости упоминать его при выполнении. Но это отдельная особенность.

Теперь, если вы выбрали первый, вы сможете вызывать WF несколько раз с одной и той же командой. Если вы выбрали второй и попробуете это, вы получите ошибку «WF уже запущен».

Беда в том, что ваш пример на первый взгляд кажется правильным. Согласно сообщению журнала:

Workflow wf_Temp started with run id [22350], run instance name [], run type [Concurrent Run with Unique Instance Name]

Таким образом, вы разрешаете только уникальные экземпляры. Похоже, что имя экземпляра не использовалось. Первое выполнение не устанавливает имя экземпляра, поэтому аналогичное второе выполнение также не будет использовать его и будет отклонено, поскольку это то же имя экземпляра (то есть None).

Вы можете попробовать изменить настройку на Allow concurrent run with same instance name, это позволит выполнить второе выполнение, но не решит основную проблему. По какой-то причине имя экземпляра не передается.

Пожалуйста, сверьте вашу команду с документами, указанными ниже. Попробуйте, возможно, соответствовать порядку. Пожалуйста, поделитесь дополнительной информацией, если это все еще не удается.

Глядя на документы:

pmcmd StartWorkflow ‹< - service | -sv> service [‹-domain | -d> domain] [‹ -timeout | -t> timeout]> ‹< - user | -u> username | ‹-uservar | -uv> userEnvVar > ‹< - пароль | -p> пароль | ‹-passwordvar | -pv> passwordEnvVar> [‹< - usersecuritydomain | -usd> usersecuritydomain |‹ -usersecuritydomainvar | -usdv> userSecuritydomainEnvVar>] [‹-folder | -f> folder ] [‹-Startfrom> taskInstancePath] [‹-recovery | -norecovery>] [‹-paramfile> paramfile] [‹ -localparamfile | -lpf> localparamfile] [‹-osprofile | -o> OSUser] [-wait | -nowait ] [‹-runinsname | -rin> runInsName] рабочий процесс

person Maciejg    schedule 06.09.2017
comment
Я подтвердил, что мой список последовательности опций соответствует "документации". В моем примере выше показано, что Infa понимает, что я хочу одновременный запуск с уникальным именем экземпляра, и я использую параметр -rin. Workflow Edit for Concurrent Workflow требует создания по крайней мере одного экземпляра, поэтому у меня есть только значение по умолчанию «RUNINSTANCE1», которое предоставляется при добавлении экземпляра. Это моя команда с некоторыми замаскированными деталями ... pmcmd startworkflow -sv xxx -d xxx -u michael.davidson -p xxx -usd xxx -f Davidson -paramfile / opt / informatica / version_10 / server / infa_shared / SrcFiles / dh_parms_DAL. par -rin ДАЛЛАС wf_Temp - person Davidson; 06.09.2017
comment
вы имеете в виду, что -rin DALLAS не запускает экземпляр DALLAS? Это странно, именно так должно работать. Это означает, что мы, вероятно, упускаем какую-то деталь. Можете ли вы показать несколько экранов с описанием рабочего процесса? Можете ли вы взглянуть на консоль администратора (или попросить кого-нибудь о помощи), чтобы убедиться, что запрос был получен правильно? Правильно ли репозиторий / папка (на случай, если вы примените изменения в одном env и протестируете на другом)? Извините, что беспокою вас некоторыми очевидными вопросами, но я предполагаю, что, поскольку на первый взгляд все выглядит хорошо, должна быть какая-то крошечная ошибка. - person Maciejg; 07.09.2017
comment
Я согласен, я, наверное, куда-то попроще. Когда вы сказали: «... запустите экземпляр DALLAS», у меня был только один простой рабочий процесс. Никто из участников рабочего процесса ничего не знает о DALLAS. Могу я упустить какую-нибудь ссылку на ДАЛЛАС? Я думал, что все, что мне нужно, - это параметры в PMCMD - имя экземпляра и файл параметров. - Предполагается, что в рабочем процессе должен быть настроенный «экземпляр DALLAS», чтобы pmcmd знал, что начать? Моя цель - один общий (в основном) рабочий процесс, который вызывается снова и снова с новым именем экземпляра и связанным с ним файлом параметров. Не знаю, как прикрепить скриншот. - person Davidson; 07.09.2017
comment
Добавил три картинки ... что еще нужно, могу добавить. - person Davidson; 07.09.2017
comment
Кроме того, вся работа выполняется в среде DEV, поэтому несовпадение версий не будет проблемой. Вся деятельность в среде DEV. Не беспокойтесь о том, что вопросы будут мешать ... Я благодарен за помощь. Я думаю, мы так близки, но упускаем что-то маленькое. - person Davidson; 07.09.2017