Использование параметра -bs (размер пакета, количество совпадений для каждой задачи) в передаче IBM MQ FTE

Я пытаюсь передать файлы с помощью IBM Websphere MQ FTE с параметром -bs (совпадения для каждой задачи). Я думал, что использование этого параметра разделит общее количество переданных файлов на несколько задач в соответствии с его значением. Например. Я использовал «-bs 10» и попытался передать 16 файлов. В результате должны получиться две отдельные передачи, одна с 10 файлами, вторая с 6 файлами. Я прав? Но для меня результат - все 16 файлов в одной передаче/задаче :/.

Как указано в документации IBM: при установке размера пакета монитора ресурсов (скажем, на 100) монитор ресурсов будет создавать новую передачу для каждых 100 файлов, совпавших с ним. Таким образом, с 1000 файлами .txt вы получите только 10 новых передач.

Я использовал эти команды для создания передачи.

fteCreateTransfer -sa AGENT1 -sm TQM.FTE -da AGENT2 -dm TQM.FTE -dd /var/MQFTE/test -de overwrite -sd delete -gt /var/IBM/WMQFTE/config/TQM.FTE/FTE_TEST.xml c:\\workspace\\FTE_tests\\IN\\*.xml

fteCreateMonitor -ma AGENT1  -mn FTE_TEST_MONITOR -md c:\\workspace\\FTE_tests -mt /var/IBM/WMQFTE/config/TQM.FTE/FTE_TEST.xml -tr match,test.run -pi 30 -pu seconds -f -c -bs 10.

Какие-либо предложения? Спасибо!


person Miroslav Pohoraly    schedule 05.09.2014    source источник


Ответы (1)


Вы правильно понимаете, но проблема заключается в том, что в XML-определении шаблона передачи вы передаете исходные файлы "*.xml", который является шаблоном подстановочных знаков, и вы сопоставляете только один файл триггера, "test.run".

Похоже, вы хотите передать файлы, с которыми вы совпадаете, поскольку вы не знаете их заранее.

Монитор ресурсов каталога WebSphere MQ FTE будет запускать опрос x раз, где x — это количество файлов в вашем каталоге, соответствующих шаблону запуска. Затем они будут объединены в несколько пакетов x/batchSize.

Поскольку вы сопоставляете только один файл, "test.run" монитор ресурсов запускается один раз. Когда агент WebSphere MQ FTE обрабатывает единый управляемый запрос на передачу, вы указываете ему искать любые файлы, оканчивающиеся на .XML, чтобы он передал их все.

Посмотрите в Информационном центре «Настройка задач с заменой переменных» и используйте эту функцию в XML-файле шаблона передачи.

По сути, вы можете в своей первой команде (fteCreateTransfer) изменить «c:\workspace\FTE_tests\IN\*.xml» на «c:\workspace\FTE_tests\IN\${fileName}», а затем изменить вторую команду ( fteCreateMonitor) для мониторинга в том же каталоге "c:\workspace\FTE_tests\IN" и сопоставления с "*.xml".

Когда срабатывает монитор ресурсов, он заменяет ${fileName} именем одного файла, для которого он сработал, и будет повторять это число x раз, так как он будет срабатывать для каждого файла, оканчивающегося на .xml. Если есть 16 файлов, он сделает это 16 раз.

Основываясь на информации, которую вы предоставили, я думаю, что это даст вам желаемое поведение.

Любые дополнительные вопросы или уточнения, которые вам нужны, не стесняйтесь спрашивать.


Привет, Мирослав, похоже, я не могу комментировать, поэтому я добавлю немного сюда, чтобы ответить на ваш комментарий.

Я рад слышать, что предложенные изменения дали вам ожидаемое поведение. На самом деле, часто бывает не известно точное имя файла для передачи, но, используя подстановочные знаки и определенные соглашения об именах, вы, надеюсь, сможете настроить монитор(ы) ресурсов WebSphere MQ FTE для обеспечения желаемого поведения.

При использовании файла триггера с определенным именем, например, «test.run», монитор ресурсов ищет только этот файл, поэтому он ничего не знает о других файлах, оканчивающихся, например, на .xml. Следовательно, почему пакетная обработка работает только с файлами, которые монитор ресурсов запускает/сопоставляет. Помните, что параметр -bs в команде fteCreateMonitor предназначен для «совпадений по задачам», как определено на странице информационного центра для команды. Итак, во втором случае поведение, которое вы видите, ожидается.

Надеюсь, это поможет!

person a_cornish_pasty    schedule 08.09.2014
comment
Спасибо за ответ! Отчасти успех. Я смог передать все 15 (10 и 5) XML-файлов в рамках двух отдельных задач, когда триггер был *.XML, добавив {FileName}. Но когда триггером все еще является этот единственный файл test.run, добавление {FileName}, очевидно, приводит к передаче только test.run. Первый случай (триггер = *.xml, передача *.xml) мне важнее, так что СПАСИБО!!! Но мне любопытно, как насчет второго случая (trigger=test.run, передача *.xml). Кстати, ИМХО незнание точного имени файла, который я хочу передать заранее, очень распространено, не так ли? - person Miroslav Pohoraly; 09.09.2014