# Настройка сервера для возможности архивирования экземпляров процессов и их определений
Прежде всего, сервер должен быть собран с включенным модулем wfe-archiving.
Настройка сервера состоит из следующих действий.
- Создайте каталог расширений wfe.custom, (полный путь для jboss4 — ${JBOSS4_HOME}/server/default/wfe.custom, полный путь для jboss7 — ${JBOSS7_HOME}/standalone/wfe.custom)
подробнее см. Концепция настроек
- Создайте файл wfe.custom.system.context.xml для определения бинов, со следующим содержимым
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:context="http://www.springframework.org/schema/context" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd"> <bean id="hibernatePropertiesA" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="locations"> <list> <value>classpath:database-archive.properties</value> <value>classpath*:wfe.custom.database-archive.properties</value> </list> </property> </bean> <bean id="sessionFactoryA" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="hibernateProperties" ref="hibernatePropertiesA" /> <property name="entityInterceptor"> <bean class="ru.runa.wfe.commons.hibernate.CacheInterceptor" /> </property> <property name="packagesToScan"> <list> <value>ru.runa.wfe</value> </list> </property> </bean> <bean id="hibernateTemplateA" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactoryA" /> </bean> <bean id="archProcessDAO" class="ru.runa.wfe.execution.dao.ProcessDAO"> <property name="hibernateTemplate" ref="hibernateTemplateA" /> </bean> <bean id="archSwimlaneDAO" class="ru.runa.wfe.execution.dao.SwimlaneDAO"> <property name="hibernateTemplate" ref="hibernateTemplateA" /> </bean> <bean id="archDeploymentDAO" class="ru.runa.wfe.definition.dao.DeploymentDAO"> <property name="hibernateTemplate" ref="hibernateTemplateA" /> </bean> <bean id="archConstantDAO" class="ru.runa.wfe.commons.dao.ConstantDAO"> <property name="hibernateTemplate" ref="hibernateTemplateA" /> </bean> <bean id="archExecutorDAO" class="ru.runa.wfe.user.dao.ExecutorDAO"> <property name="hibernateTemplate" ref="hibernateTemplateA" /> </bean> <bean id="archPermissionDAO" class="ru.runa.wfe.security.dao.PermissionDAO"> <property name="hibernateTemplate" ref="hibernateTemplateA" /> </bean> <bean id="archLocalizationDAO" class="ru.runa.wfe.commons.dao.LocalizationDAO"> <property name="hibernateTemplate" ref="hibernateTemplateA" /> </bean> <bean id="archTokenDAO" class="ru.runa.wfe.execution.dao.TokenDAO"> <property name="hibernateTemplate" ref="hibernateTemplateA" /> </bean> <bean id="archivingInitLogic" class="ru.runa.wfe.service.logic.archiving.ArchivingInitializerLogic"/> <bean id="archivingLogic" class="ru.runa.wfe.service.logic.archiving.ArchivingLogic"/> </beans>
- настройте соединение с БД предназначенной для архивации экземпляров процессов и их определений
Система использует Hibernate ORM и может работать на любой СУБД. Настройка аналогична настройке соединения с основной БД, подробнее см. в руководстве по настройке сервера, Настройка соединения с БД
Например, в случае использования MSSQL Server и jboss7, выполните следующие действия:
1). Создайте модуль для jdbc драйвера, подробнее MSSQL Server
2). Добавьте еще одну секцию источника данных и драйвера в standalone.xml,
<xa-datasource jndi-name="java:/mssqlds-arch" pool-name="java:/mssqlds_arch_Pool" enabled="true" use-java-context="true"> <xa-datasource-property name="URL"> jdbc:jtds:sqlserver://localhost;instanceName=.\SQLEXPRESS; </xa-datasource-property> <xa-datasource-property name="serverName"> localhost </xa-datasource-property> <xa-datasource-property name="databaseName"> wfe-archive </xa-datasource-property> <driver>mssql</driver> <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation> <xa-pool> <min-pool-size>5</min-pool-size> <max-pool-size>30</max-pool-size> </xa-pool> <security> <user-name>wfe</user-name> <password>wfe</password> </security> </xa-datasource>
<drivers> <driver name="mssql" module="net.sourceforge.jtds"> <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class> <xa-datasource-class>net.sourceforge.jtds.jdbcx.JtdsDataSource</xa-datasource-class> </driver> </drivers>
Имя БД, имя сервера БД и имя экземпляра БД необходимо выставить в соответствии с используемыми.
- выполните привязку созданного источника данных и установку соответствующего диалекта, подробнее см. в руководстве по настройке сервера, Настройка соединения с БД
Например, в случае использования MSSQL Server и jboss7, создайте файл wfe.custom.database-archive.properties в каталоге wfe.custom со следующим содержимым
hibernate.connection.datasource=java:/mssqlds-arch hibernate.dialect=ru.runa.wfe.commons.hibernate.SQLServerUnicodeDialect
# Запуск клиентских приложений
Сборка приложений архивации описана в руководстве разработчика.
Для приложения архивации процессов (BackupProcesses) вводятся параметры командной строки:
- количество минут работы приложения
- количество дней назад, когда был завершен процесс
Для приложения архивации определений процессов (BackupProcessDefinitions):
- количество минут работы приложения
- количество дней назад, когда было загружено определение
Для приложения восстановления процесса (RestoreProcess), вводится параметр командной строки:
- идентификатор процесса, который необходимо восстановить
Для приложения восстановления определения процесса (RestoreProcessDefinition) вводятся следующие параметры:
- имя определения
- версия определения
Настройки имени и пароля пользователя находятся в файле archiving-client.properties
Замечание. Если имя определения состоит из нескольких слов, разделенных пробелами, следует записать его в кавычках (одинарных ‘ или в двойных “), например:
cmd> java –jar wfe-archiving-4.2.0-SNAPSHOT.jar ‘Пример Эскалации’ 1
Замечание. Архивация определений производится только для тех определений, для которых не существует процессов.