Использование Ant-сценариев для настройки передачи файлов при помощи WebSphere MQ File Transfer Edition

В статье рассматривается использование Ant-сценариев и Java-классов для настройки WebSphere MQ FTE на автоматическую передачу новых и измененных файлов из папки-источника в папку назначения и для постоянной максимально эффективной синхронизации этих файлов.

Шашикант Р Тамбрахали, программист-консультант, группа WebSphere MQ Client Development, IBM

Шашикант Тамбрахали (Shashikanth R. Thambrahalli) работает программистом-консультантом в группе WebSphere MQ Client Development лаборатории IBM India Software Lab в Бангалоре. Имеет 9-летний опыт работы в IBM, специализируется на клиентах WebSphere MQ, C/C++, технологиях Microsoft .NET, XMS .NET и WCF. Разрабатывает новые возможности для MQ-клиентов и консультирует заказчиков из Индии, а также стран Азии и Тихоокеанского бассейна по вопросам работы с WebSphere MQ, WebSphere MQ FTE и WebSphere MQ Advanced Message Security. Связаться с ним можно по адресу shashikanth@in.ibm.com.



Бала Субраманиан Ветривел, технический специалист, IBM

Бала Субраманиан Ветривел (Bala Subramanian Vetrivel) – фотографияБала Субраманиан Ветривел (Bala Subramanian Vetrivel) работает техническим специалистом в группе Worldwide WebSphere Business Partner. Он имеет семилетний опыт работы в ИТ-отрасли и специализируется на BPM, C/C++, IBM Blueworks, IBM Component Business Model, IBM PureSystems, продуктах IBM Rational, IBM Workload Deployer, Java, SOA, WebSphere Application Server, WebSphere Business Modeler and Monitor, WebSphere Business Services Fabric, WebSphere Industry Content Packs, WebSphere Integration Developer, WebSphere MQ, WebSphere Process Server и WebSphere TX. В настоящее время работает с бизнес-партнерами и клиентами IBM, занимаясь проектированием архитектуры, проверкой концепций, запросами предложений и подготовкой технологии. Также он внес свой вклад в developerWorks, проект Biztech и руководства IBM Redbooks. Связаться с ним можно по адресу bvetrive@in.ibm.com.



12.12.2012

Введение

IBM® WebSphere® MQ File Transfer Edition (FTE) предоставляет платформу корпоративного класса для управления операциями передачи файлов. Для удовлетворения большинства требований к передаче файлов WebSphere MQ FTE предоставляет простой способ настройки таких операций. Но в некоторых случаях WebSphere MQ FTE необходимо расширить для разработки специальных решений по передаче файлов. В данной статье рассматривается сценарий со следующими требованиями:

На источнике:

  • Передавать только те файлы, время создания или изменения которых превышает указанное значение, и выполнять операцию копирования рекурсивно.

На назначении:

  • Удалять файлы, отсутствующие в тех же папках источника, и выполнять операцию удаления рекурсивно.

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

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

WebSphere MQ FTE предоставляет также богатый набор Ant-заданий, которые можно использовать для настройки решений по передаче файлов. Для запуска Ant-сценариев в среде с WebSphere MQ FTE можно использовать команду fteAnt.

Обзор сценария и решения

Метеорологическая служба имеет центры мониторинга погоды в разных местах Англии, например, в Бристоле, Дувре, Манчестере и Саутгемптоне. Эти центры измеряют погодные параметры, такие как температура, влажность и давление воздуха. Измерения производятся круглосуточно и сохраняются в файлах на серверах, расположенных в каждом центре мониторинга. Служба имеет главный центр в Лондоне, где данные всех центров мониторинга хранятся в папках с именами, соответствующими именам каждого центра, например Data_Bristol. Центры мониторинга круглосуточно через заданные промежутки времени отправляют в главный центр файлы с данными о погоде; файлы в центрах мониторинга и в главном центре данных всегда должны быть синхронизированы. В данной статье рассматривается настройка среды для поддержки синхронизации при помощи Ant-сценариев WebSphere MQ FTE в сочетании с XML и Java-классами на источнике и в месте назначения.

На источнике:

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

В месте назначения:

  • Удаляются все файлы, отсутствующие в тех же папках и дочерних папках источника.
  • Создается журнал регистрации удаленных файлов.

Дополнительная информация по Ant-сценариям WebSphere MQ FTE приведена в разделе Использование Apache Ant с WebSphere MQ FTE информационного центра WebSphere MQ FTE.


Предварительные требования

Определите среду WebSphere MQ FTE:

  1. Определите и установите на сервере приведенные далее компоненты. В качестве административного сервера в главном центре данных используется сервер Microsoft® Windows®.
  2. Установите WebSphere MQ V7.0.3 или более новой версии, включая WebSphere MQ Explorer.
  3. Определите менеджер очередей WebSphere MQ под названием LONDON.DATA.CENTER.QMGR, который будет использоваться в качестве менеджера очередей агентов, команд и координации.
  4. Определите прослушиватель на неиспользуемом порту и запустите его. Он будет использоваться удаленными агентами.
  5. Установите WebSphere MQ FTE V7.0.3 Server Edition.
  6. В рамках установки сервера определите агента LONDON.DATA.CENTER.AGNT. Поскольку он является локальным агентом для менеджера очередей, он может определяться как агент соединения связываний (bindings connection agent).
  7. Установите плагин WebSphere MQ FTE V7.0.3 WebSphere MQ Explorer из пакета установки Remote Tools and Documentation.
  8. Определите агенты соединения с клиентом (client connection agent) на каждом сервере (BRISTOL.AGENT и DOVER.AGENT) так, чтобы они соединялись с менеджером очередей LONDON.DATA.CENTER.QMGR, используя порт, который прослушивает определенный ранее прослушиватель. Используйте менеджер очередей LONDON.DATA.CENTER.QMGR в качестве менеджера их очередей агентов, команд и координации.

Если вы новичок в WebSphere MQ FTE и вам нужна дополнительная информация по его настройке, прочтите статью developerWorks Прогулка по WebSphere MQ FTE (EN). Теперь все готово для выполнения шагов 1 - 6, рассматриваемых ниже.

1. Разработка операции выхода для агента источника

Основной задачей операции выхода является удаление всех файлов, время создания или изменения которых меньше указанного. Указать это время можно разными способами; в данной статье используется XML-файл:

<property  name="syncTimeStamp" value="06/21/2012 23:55:00" />

Можно также использовать определяемые пользователям метаданные Transfer для передачи метки времени и модификации операции выхода с целью исключения файлов из списка передачи. Операция выхода реализует интерфейс com.ibm.wmqfte.exitroutine.api.SourceTransferStartExit и переопределяет onSourceTransferStart. WebSphere MQ FTE будет активизировать этот метод до начала передачи файлов.

Выполните компиляцию источника для создания класса. Ниже приведен листинг примера метода:

public class RemoveUnmodifiedFilesFromList implements SourceTransferStartExit {
    public TransferExitResult onSourceTransferStart (String sourceAgentName, 
        String destinationAgentName, 
        Map <String, String> envMetaData,
        Map <String, String> transferMetaData,
        List <SourceFileExitFileSpecification>fileSpec)
    {
        // Считать метку времени из XML-файла
        final String parmTS = transferMetaData.get("syncTimeStamp");
        if(syncTS > createdDate)
        {
            fileSpecs.remove(i); // Нет. Удалить
        }
    }
}

2. Настройка агента источника

  1. Создайте XML-файл, как показано ниже. При необходимости измените значение свойства.
    <property  name="syncTimeStamp" value="06/21/2012 23:55:00" />
  2. Укажите класс exit в файле agent.properties агента источника:
    sourceTransferStartExitClasses=com.ibm.wmqfte.example.RemoveUnmodifiedFilesFromList
  3. Скопируйте класс exit в папку exits менеджера очереди координации. Например:
    <fte install folder> config/LONDON.DATA.CENTER.QMGR/agents/BRISTOL.AGENT/exits

3. Ant-сценарий WebSphere MQ FTE на агенте источника

  1. Ant-файл WebSphere MQ FTE вызывает специальное Ant-задание для перечисления всех файлов на источнике. После передачи файлов этот список будет использоваться на агенте места назначения для удаления файлов, отсутствующих на агенте источника.
    <listFiles dir="${srcDir}" />
    <echo message="recurive.Files***" />
    <echo message="${recurive.Files}" />
  2. Вызовите внешний файл Ant-сценария для удаления ненужных файлов в месте назначения:
    <fte:filespec srcfilespec="${srcDir}" conversion="binary" 
         dstdir="${dstDir}" overwrite="true" />
    <fte:postdst command="DeleteDest.xml" type="antscript" successrc="0">
    <fte:property name="recurive.Files" value="${recurive.Files}"/>
    <fte:property name="destDir" value="${dstDir}"/>
    </fte:postdst>
  3. Во внешнем Ant-сценарии вызовите специальное Ant-задание, удаляющее ненужные файлы путем сравнения списка исходных файлов с папкой назначения:
    <SyncDir srcList="${recurive.Files}" destDir="${destDir}"/>

4. Настройка агента назначения

  1. Укажите местоположение внешнего Ant-сценария в файле:
    agent.properties

    агента в месте назначения
    commandPath=C\:\\IBM\\WMQFTE\\jre\\bin;C\:\\IBM\\WMQFTE\\bin\\;
    C\:\\WINDOWS\\system32\\;

5. Создание специального Ant-задания

  1. Расширьте класс org.apache.tools.ant.Task.
  2. Переопределите метод execute и добавьте новую функциональность:
    public @Override  void execute() throws BuildException
  3. Упакуйте это специальное задание в JAR-файл и поместите его в папку C:\IBM\WMQFTE\ant\lib.

6. Вызов специального Ant-задания

  1. Добавьте ресурс taskdef:
    <taskdef resource="net/sf/antcontrib/antlib.xml"/>
  2. Определите специальное Ant-задание, указав имя класса:
    <taskdef 
    name="listFiles" classname="com.ibm.mq.fte.file.sync.ant.util.ListFilesTask" 
    classpath="{ant.home}/lib" 
    />
    <taskdef 
    name="listDir" classname="com.ibm.mq.fte.file.sync.ant.util.ListDirectoriesTask“ 
         classpath="{ant.home}/lib" 
    />
  3. Поместите JAR-файлы Ant-contrib-1.0b3-bin и AntExtras в ant/lib.

Загрузка файлов

В загружаемом файле AntScript.zip содержатся следующие файлы:

agent.properties
Указывает местоположение класса exit агента источника.
mq-ant-utils.jar
Классы, связанные со специальной Ant-командой. Поместите их в библиотеку ant агентов источника и назначения.
SyncDirWithLoggingSingleXferSyncTS.xml
Ant-сценарий FTE, выполняемый на агенте источника.
DeleteDest.xml
FTE-сценарий, активизируемый Ant-сценарием FTE агента источника. Укажите местоположение этого внешнего Ant-сценария в файле agent.properties агента назначения.

Загрузка

ОписаниеИмяРазмер
Пример кодаAntScript.zip15 КБ

Ресурсы

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



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

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=WebSphere
ArticleID=851675
ArticleTitle=Использование Ant-сценариев для настройки передачи файлов при помощи WebSphere MQ File Transfer Edition
publish-date=12122012