Содержание


Очистка данных в продукте IBM Business Process Manager

Comments

Если не ограничивать рост данных, с течением времени это может привести к таким проблемам, как уменьшение доступного дискового пространства и снижение производительности, поскольку к запросы к базам данных будут обрабатываться все медленнее. В этой статье мы рассматриваем все области, в которых продукт IBM Business Process Manager (BPM) накапливает данные, включая базы данных и файловую систему. Мы обращаем внимание читателя на те случаи, когда информация имеет специфику в зависимости от конкретной редакции (IBM BPM Advanced или IBM BPM Standard), а также предоставляем информацию с учетом специфики версии. Излагаемый материал относится к продукту IBM BPM версии V7.5.1.1 и выше, хотя большая часть этого материала применима и к предшествующим продуктам WebSphere Process Server и WebSphere Lombardi Edition.

В этой статье рассматриваются следующие темы.

  • Проекты и снимки компонента Process Center
  • Данные экземпляров процессов и задач компонента Process Server
  • Данные событий компонента Performance Data Warehouse
  • Некоторые дополнительные, второстепенные данные, которые также способны накапливаться, хотя и не так быстро, как вышеперечисленные данные
  • IBM Business Monitor — дополнительный инструмент для продукта IBM BPM.

Process Center

Компонент Process Center содержит проекты, которые представляют собой развертываемые приложения процессов (process app) или инструментарии (toolkit) многократного использования.

Приложения процессов и инструментарии

Доступ к приложениям процессов (process app) и к инструментариям (toolkit) можно получить посредством вкладки Manage проекта Process Center(см. рис. 1).

Рисунок 1. Доступ к приложениям процессов (Process apps) и к инструментариям (Toolkits)
Archiving process apps and                     toolkits
Archiving process apps and toolkits

Архивирование проекта не удаляет его и не высвобождает занимаемое им пространство в базе данных, а просто помечает проект так, что по умолчанию он больше не отображается в пользовательском интерфейсе компонента Process Center. Чтобы действительно удалить какой-либо проект, выберите опцию для отображения архивированных проектов, а затем удалите соответствующий проект (см. рис. 2). Для этого данный проект должен быть сначала заархивирован.

Рисунок 2. Удаление заархивированных приложений процессов и инструментариев
Deleting archived process apps and toolkits
Deleting archived process apps and toolkits

Удаление проекта удаляет все снимки и все экземпляры процесса, а также весь контент BPM Advanced, в том числе ассоциированные экземпляры BPEL-процесса, BLA-приложения (business-level application) и корпоративные приложения.

Эта возможность удаления была добавлена в версии BPM V7.5.1.0; она доступна лишь из пользовательского интерфейса, т. е., каких-либо механизмов для использования скриптов не существует.

Снимки в Process Center

При редактировании приложения процесса (или инструментария) с помощью компонента Process Designer осуществляется изменение его специальной версии (снимка), которая обозначается как Current (прежнее название: Tip). В любой момент времени можно сделать новый снимок и присвоить этому снимку имя. Именованные снимки можно развертывать на Process Server, однако для редактирования доступны только Current-версии снимков.

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

Вместо того чтобы архивировать весь проект и все его снимки, можно заархивировать отдельные именованные снимки. Это можно сделать на странице Snapshots приложения процесса/инструментария с помощью выпадающего меню для каждого снимка. Напоминаем, что архивирование не удаляет снимок, а просто помечает его и скрывает.

Итак, каким образом осуществляется удаление снимка в Process Center? В версии BPM V8.5.0 появилась wsadmin-команда под названием BPMSnapshotCleanup, которая позволяет удалять как именованные, так и неименованные снимки. Чтобы удалить именованные снимки, их необходимо сначала заархивировать.

Эта важная команда была портирована на предшествующую версию BPM V8.0.1 в рамках пакета исправлений 8.0.1.2. Если вы применяете версию V8.0.1, мы рекомендуем осуществить обновление до версии V8.0.1.2. Это предоставит вам доступ к этой команде, а также к нескольким другим командам, имеющим отношение к очистке, о которых мы расскажем далее. Если вы применяете версию V8.0.1.2, убедитесь в том, что у вас установлены пакеты исправлений (iFixe) под номерами JR49267, JR48877, JR49374.

Эта важная команда также была портирована на предшествующую версию в рамках пакета исправлений V7.5.1.2; соответственно, если вы применяете версию 7.5.1.x, мы рекомендуем вам выполнить обновление до версии V7.5.1.2. Если вы применяете версию V7.5.1.2, убедитесь в том, что у вас установлены пакеты исправлений (iFixe) под номерами JR48877 и JR49374.

В пакете исправлений 8.5.01 реализована новая возможность активации автоматической очистки неименованных снимков. Для активации этой опции добавьте в файл 100custom.xml следующие строки.

<unnamed-snapshots-cleanup-config>
    <enabled>true</enabled><cleanup-start-time>23:23:59<
	/cleanup-start-time><cleanup-duration-minutes>5<
	/cleanup-duration-minutes><clean-after-number-named-snapshots>4<
	/clean-after-number-named-snapshots>
</unnamed-snapshots-cleanup-config>

Для получения дополнительной информации обратитесь к разделу Deleting unnamed snapshots, automated Информационного центра по продукту IBM BPM V8.5.

Следует также отметить, что для удаления неименованных снимков имеется еще один способ (из категории "для бедных"): экспортируйте снимок в виде twx-файла и заново импортируйте его в Process Center. Неименованные снимки не экспортируются.

Расширенный контент в Process Center

Если вы применяете редакцию IBM BPM Advanced и у вас имеются приложения процессов и инструментарии, содержащие расширенный контент (например, BPEL-процессы), вам необходима стратегия удаления BLA-приложений и корпоративных приложений, которые создаются в сервере воспроизведения Process Center в результате существования этого контента.

Для каждого приложения процесса (или инструментария) в Process Center, содержащего модуль или библиотеку (непосредственно или вследствие наследования через инструментарий), для Current-снимка и для каждого именованного снимка приложения процесса (инструментария), содержащего расширенный контент, создаются свои BLA-приложения. Этим BLA-приложениям присваиваются имена вида <Acronym>-<Snapshot-name>, например, PA1-V1.0.

Внутри такого BLA-приложения каждый модуль или каждая библиотека порождает EAR-файл, который является активом в рамках этого приложения. Эти BLA-приложения создаются по требованию (при воспроизведении контента из Process Designer или при публикации контента из Integration Designer в Process Center) и сохраняются до тех пор, пока приложение процесса или инструментарий активированы. По мере того, как вы создаете инструментарии с расширенным контентом, пользуетесь этими инструментариями из приложений процесса, а также делаете снимки инструментариев и приложений процессов, такой расширенный контент может быстро накапливаться и оказывать негативное влияние на продолжительность запуска сервера, на потребление памяти и на общую производительность.

Обычно BLA-приложения действительно требуются лишь для Current-снимка приложения процесса, поэтому их можно удалять из Current-снимков любых инструментариев и из любых именованных снимков инструментариев/приложений процессов. Чтобы удалить BLA-приложения, достаточно применить к снимку действие Undeploy. Эта опция представлена на странице Snapshots компонента Process Center в выпадающем меню для Current-снимка, если расширенный контент этого снимка был развернут. Для именованных снимков сначала необходимо использовать действие Deactivate, после чего вы увидите действие Undeploy (если расширенный контент был развернут). Конечно, вы всегда можете использовать административную консоль WebSphere или команды для удаления BLA-приложений и EAR-файлов в ручном режиме. Не опасайтесь удаления чего-либо нужного, поскольку в случае необходимости эти BLA-приложения будут воссозданы по запросу.

Если вы используете AIS-сервисы (advanced integration service), которые являются связующим звеном между BPMN-процессами и BPEL-процессами, мы рекомендуем фасадный шаблон для уменьшения размера задействованных EAR-файлов. Этот шаблон описан в размещенной на сайте developerWorks статье под названием: Implementing the facade pattern using IBM Business Process Manager Advanced V7.5.

Process Server

Process Server – это место, где вы устанавливаете снимки приложений процессов и где вы исполняете процессы в этих снимках. С точки зрения накопления контента в Process Server необходимо подумать о том, как удалять эти установленные снимки, а также о том, как удалять процессы после их завершения или терминирования.

Снимки в Process Server

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

Заказчикам редакции BPM Advanced следует помнить, что если приложение процесса содержит какой-либо расширенный контент, например, модуль или библиотеку из Integration Designer, то для этого приложения процесса будет создано BLA-приложение с EAR-файлами. В концептуальном смысле сначала контент продукта BPM устанавливается на компоненте Process Server, после чего развертывается контент продукта BPM Advanced. Это увеличивает количество генерируемых и устанавливаемых BLA-приложений и составляющих их EAR-файлов. Это ключевой момент, необходимый для понимания соответствующих wsadmin-команд.

Вы сможете удалить снимки из компонента Process Server только в версии BPM V8.0.1 или выше, выполнив wsadmin-команду BPMDeleteSnapshot. Для выполнения этой команды необходимо соблюсти несколько предварительных условий, включая следующие.

  • Удаляемый снимок не может иметь никаких исполняющихся экземпляров и не может быть снимком по умолчанию. Для проверки соблюдения этих условий воспользуйтесь командой BPMShowSnapshot .
  • Снимок не может быть активным. Для деактивации снимка воспользуйтесь командой BPMDeactivateSnapshot. Для процессов продукта BPM Advanced также необходимо применить команду BPMStop. Эти команды предотвращают запуск новых экземпляров BPMN-процессов и BPEL-процессов, а также позволяют замораживать существующие экземпляры.
  • Контент редакции BPM Advanced, в том числе BLA-приложения и EAR-файлы, должен быть подвергнут действию Undeploy с помощью команды BPMUndeploy .

После успешного удаления снимка обратите внимание на то, что все его экземпляры BPD-определений (business process definition) были удалены вместе с ним.

Экземпляры в Process Server

Применительно к нашей тематике необходимо рассмотреть следующие два типа экземпляров: экземпляры задачи пользователя или человека и экземпляры процесса. Это касается как BPMN/BPD-процессов, так и BPEL-процессов. И экземпляры задач, и экземпляры процессов хранятся в базе данных даже после завершения задачи и процесса. Таким образом, следует подумать о регулярной очистке от более старых экземпляров.

Когда вы удаляете экземпляры процесса, экземпляры задачи также удаляются. Вы также можете удалять экземпляры BPEL-задачи человека независимо от их процессов, но это не распространяется на BPD-задачи пользователя.

Чтобы удалить экземпляры BPD-процесса и ассоциированные с ними экземпляры задачи в версии BPM V8.0.1 и выше можно использовать wsadmin-команду BPMProcessInstancesCleanup. Она позволяет указать конкретные экземпляры для удаления или диапазон дат, в пределах которого будут удалены все завершенные экземпляры. Вы также указываете, какие типы экземпляров следует удалять: завершенные, отмененные, сбойные или все. В версиях V8.0.1.2 и V8.5.0.1 эта команда была доработана — теперь она включает дополнительные параметры для указания максимальной продолжительности исполнения и максимального количества экземпляров для удаления. Благодаря этому она хорошо подходит для исполнения в режиме регулярного планового cron-задания, что позволяет ограничить ее отрицательное влияние на систему и объем выполняемой этой командой работы.

В версии V7.5.x такой команды не существует, однако вы можете воспользоваться предоставляемой хранимой процедурой LSW_BPD_INSTANCE_DELETE для удаления заданных в явном виде экземпляров процесса. Напоминаем, что для версии V7.5.1.1 имеется промежуточное исправление, которое значительно повышает производительность этой хранимой процедуры. Более подробную информацию можно получить в документации по исправлению APAR JR46453. Это исправление входит в состав пакета исправлений V7.5.1.2.

Редакция BPM Advanced предоставляет несколько опций для удаления человеческих задач и экземпляров процессов Business Process Choreographer (BPC).

  1. При моделировании человеческих задач и BPEL-процессов в Integration Designer задайте автоматическое удаление экземпляров после выполнения.
  2. Для индивидуального удаления задач или процессов используйте компонент BPC Explorer.
  3. Создайте специальную утилиту с использованием API-интерфейсов BPC.
  4. Используйте предоставленные jython-скрипты deleteCompletedTaskInstances.py или deleteCompletedProcessInstances.py для пакетного удаления экземпляров задач или процессов по таким критериям, как состояние, владеющий пользователь, дата выполнения.
  5. Используете сервис Cleanup Serviceна странице административной консоли Human Task Manager или Business Flow Manager для планирования работ по автоматическому удалению экземпляров задачи или процесса. Он позволяет задать время запуска, продолжительность работы, количество удаляемых экземпляров и критерии для удаления экземпляров по состоянию и по дате (см. рис. 3).
Рисунок 3. Планирование работы сервиса Cleanup Service для очистки экземпляров BPEL-процесса
Cleanup Service scheduling for BPEL process instance purging
Cleanup Service scheduling for BPEL process instance purging

Кроме того, редакция BPM Advanced позволяет удалять некоторые другие артефакты, в том числе следующие:

  • Ставшие ненужными шаблоны продукта BPM для процессов и для задач человека.
  • Записи аудиторского журнала
  • Завершившиеся неудачей сообщения в очереди hold-queue
  • Неиспользуемые общие рабочие элементы

Сведения по удалению этих артефактов изложены в разделе Информационного центра под названием Cleanup procedures for Business Process Choreographer. Мы также настоятельно рекомендуем ознакомиться с циклом статей на сайте developerWorks под общим названием Operating a WebSphere Process Server environment.

События типа Durable Subscription в Process Server

Событию типа "сообщение" (message) в действии по передаче сообщения в BPD-процессе можно приписать атрибут durable (долговечное). Для этого необходимо поставить флажок Durable Subscription в свойствах(см. рис. 4).

Рисунок 4. Задание опции Durable Subscription для посреднических событий
Specifying a durable subscription for intermediate events
Specifying a durable subscription for intermediate events

Если эта опция задействована в Process Designer, то durable-сообщения будут накапливаться, что, в свою очередь, обусловит необходимость периодической очистки (даже при заданной опции Consume Message). До определенного момента времени не существовало никакого встроенного способа для выполнения такой очистки, однако эта проблема была решена в версиях V7.5.1.2, V8.0.1.2 и V8.5.0.1 посредством введения новой wsadmin-команды BPMDeleteDurableMessages, которая принимает следующие три параметра.

  • olderThan: удалению подлежат только события, возраст которых превышает заданное количество дней
  • maximumDuration: команда будет исполняться на протяжении лишь заданного промежутка времени
  • transactionSlide: количество событий для удаления в пересчете на транзакцию

Пример:
BPMDeleteDurableMessages {-olderThan 30 -maximumDuration 60 -transactionSlice 100}

Performance Data Warehouse

BPD-процессы способны поддерживать отслеживание (при котором события отсылаются в компонент Performance Data Warehouse и регистрируются в его базе данных). Количество отсылаемых событий определяется главным образом тем, активирована ли для ваших BPD-процессов опция автоматического отслеживания (для новых BPD-процессов она активируется по умолчанию).

При наличии автоматического отслеживания компонент Performance Data Warehouse может быстро накопить большой объем данных. К сожалению, до определенного момента времени не существовало никакого предоставляемого вместе с продуктом и поддерживаемого способа удаления каких-либо данных этой категории. В результате многие заказчики применяли специальный SQL-код, который непосредственно обращается к базе данных с целью удаления или перемещения определенных данных согласно таким критериям, как возраст или состояние.

В качестве альтернативного варианта можно было полностью удалить все данные компонента Performance Data Warehouse посредством отбрасывания и повторного создания таблиц, как описано в следующих двух технических документах категории Technote:

Хорошая новость состоит в том, что на сегодняшний день продукт поддерживает выборочную очистку данных компонента Performance Data Warehouse. Эта функциональность реализуется при установке пакетов исправлений 8.5.0.1, 8.0.1.2 и 7.5.1.2. В результате установки этих пакетов инструмент perfDWTool получает новую опцию prune, позволяющую избавляться от данных, возраст которых превышает заданное количество дней (см. пример ниже).
perfDWTool.sw –u uid –p pwd –nodeName node prune –daysOld days

Эта команда удалит все данные, возраст которых превышает значение параметра days. Обратите внимание, что эта команда должна исполняться на активном узле кластера и что все элементы этого кластера должны функционировать. Эту процедуру следует выполнять в период наименьшей загруженности сервера. Ее функционирование определяется тремя новыми параметрами, которые можно изменить в файле 100custom.xml.

  • prune-batch-size: Количество записей, подлежащих удалению за одну операцию очистки. По умолчанию этот параметр имеет значение 1000.
  • prune-operation-time-box: Продолжительность работы процедуры в секундах. По умолчанию этот параметр имеет значение 10800 секунд (3 часа).
  • prune-operation-time-box-retry: Количество попыток. По умолчанию этот параметр имеет значение 4, соответственно, запущенная процедура совершит три дополнительных попытки.

Дополнительные данные

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

Присоединенные документы

Унаследованные Coach-элементы поддерживают выгрузку документов во внутреннее хранилище документов посредством API-интерфейсов, а также заранее предоставленные средства управления. Эти документы нельзя удалить отдельно, однако они связаны с экземплярами процесса и соответственно удаляются при удалении этих экземпляров. В качестве альтернативного варианта для удаления этих документов вы можете написать собственный сервис с использованием JavaScript-метода deleteAllVersions в объекте TWDocument.

Когда в версиях в V8.0.0 и V8.0.1 появились Coach-элементы следующего поколения, сначала не было предусмотрено никакой эквивалентной возможности хранения встроенных документов, несмотря на поддержку доступа к внешним системам управления корпоративным контентом. Однако в версии V8.5.0 эта возможность была повторно представлена для встроенных вложений – с использованием тех же Coach-представлений, которые применяются для внешних ECM-систем. Как и в случае унаследованных Coach-элементов, не существует никаких явных средств для удаления этих документов, однако они удаляются, когда удаляются экземпляры их родительского процесса. Кроме того, их также можно очистить программными средствами – с использованием метода deleteAllVersions.

Каталог temp

В процессе установки и в процессе исполнения некоторых операций файлы помещаются в системный каталог temp (%temp%). С течением времени эти файлы могут накапливаться, поэтому мы рекомендуем следить за этим каталогом и применять политику для его периодической очистки.

IBM Business Monitor

В случае использования продукта IBM Business Monitor вам также следует периодически производить очистку его данных, поскольку он способен аккумулировать данные весьма быстро. Продукт IBM Business Monitor обладает развитыми возможностями для удаления и для архивирования данных. Business Monitor поставляется с возможностью очистки событий в административной консоли, которую вы конфигурируете для каждой модели монитора (см. рис. 5).

Рисунок 5. Страница консоли IBM Business Monitor с возможностями для очистки событий
Purging Event Console page in IBM Business Monitor
Purging Event Console page in IBM Business Monitor

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

Примечание: Эта функция очищает только терминированные экземпляры; она никогда не удаляет действующие экземпляры, независимо от их возраста.

Такая процедура очистки и архивирования может осуществляться однократно, как описано в разделе Очистка и архивирование данных экземпляра, либо выполняться периодически, как описано в разделе Планирование очистки и архивирования данных экземпляра.

Заключение

В этой статье мы указали на основные области накопления данных, о которых вам следует знать при использовании продуктов IBM Business Process Manager и IBM Business Monitor, а также описали, как производить очистку этих данных. В таблице 1 обобщены типы данных и возможности различных версий по их очистке.

Таблица 1. Возможности очистки различных типов данных в зависимости от версии продукта
Данные V7.5.1x V8.0.1x V8.5.0x
Приложения процессов и инструментарии в Process Center Архивирование и удаление с помощью пользовательского интерфейса Process Center Архивирование и удаление с помощью пользовательского интерфейса Process Center Архивирование и удаление с помощью пользовательского интерфейса Process Center
Снимки в Process Center Команда BPMSnapshotCleanup в версии V7.5.1.2 Команда BPMSnapshotCleanup в версии V8.0.1.2 Команда BPMSnapshotCleanup плюс сервис с возможностью планирования начиная с версии V8.5.0.1
Расширенные BLA-приложения и EAR-файлы в Process Center Выполнение действия Undeploy с помощью пользовательского интерфейса Process Center для удаления BLA-приложений и EAR-файлов Выполнение действия Undeploy с помощью пользовательского интерфейса Process Center для удаления BLA-приложений и EAR-файлов Выполнение действия Undeploy с помощью пользовательского интерфейса Process Center для удаления BLA-приложений и EAR-файлов
Снимки в Process Server Команда BPMDeleteSnapshot в версии V7.5.1.2 Команда BPMDeleteSnapshot в версии V8.0.1.0 Команда BPMDeleteSnapshot
Экземпляры BPD-процесса Хранимая процедура LSW_BPD_INSTANCE_DELETEКоманда BPMProcessInstancesCleanup в версии V8.0.1.2 Команда BPMProcessInstancesCleanup усовершенствованная в версии V8.5.0.1
Экземпляры BPEL-процесса Скрипт deleteCompletedProcessInstances.py или сервис Cleanup Service в BFM Скрипт deleteCompletedProcessInstances.py или сервис Cleanup Service в BFM Скрипт deleteCompletedProcessInstances.py или сервис Cleanup Service в BFM
Durable-события в BPD Команда BPMDeleteDurableMessages в версии V7.5.1.2Команда BPMDeleteDurableMessages в версии V8.0.1.2 Команда BPMDeleteDurableMessages
Performance Data Warehouse Команда prune в версии V7.5.1.2Команда prune в версии V8.0.1.2 Команда prune в версии V8.5.0.1
Business Monitor Очистка и архивирование с помощью консоли, а также планируемый сервис Очистка и архивирование с помощью консоли, а также планируемый сервис Очистка и архивирование с помощью консоли, а также планируемый сервис

Мы надеемся, что эта информация поможет вам поддерживать свою BPM-систему в надлежащем состоянии. Обратите внимание, что на момент написания этой статьи последние пакеты исправлений (fixpack) имели номера 7.5.1.2, 8.0.1.2 и 8.5.0.1. По мере выпуска новых версий IBM BPM просматривайте разделы "Новое в …" в соответствующих информационных центрах, чтобы знакомиться с дополнительными возможностями, появившимися в сфере очистки данных. Ссылки на информационные центры по всем версиям продукта IBM BPM приведены на странице IBM - Business Process Manager - Library.


Ресурсы для скачивания


Похожие темы


Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=SOA и web-сервисы
ArticleID=975751
ArticleTitle=Очистка данных в продукте IBM Business Process Manager
publish-date=06262014