Начиная с версии системы 3.23 появилась возможность скачивания сразу нескольких документов из Объектов единым архивом.
1. Для запуска сервиса архивации на сервере необходимо:
2. Необходимо установить архиватор 7-Zip для корректной распаковки скачанных архивов с документами. Чтобы скачанные архивы по умолчанию открывались через данную программу, необходимо убедиться, что файлы с расширением .zip ассоциированы с данным архиватором.
client.config сервиса архивации (см. ниже) и, при желании, выполнить настройки ведения логов в файле log4net.config.SL.DocumentsArchiving.Service.exe (содержится в папке DocumentsArchivingService) по команде install, после чего запустить его по команде run.
Файл конфигурации client.config должен быть скопирован в папку публикации сервиса. После редактирования файла конфигурации необходимо перезапустить сервис.
Пример настройки файла конфигурации внешнего сервиса архивации
<?xml version="1.0"?> <configuration> <configSections> <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/> </configSections> <connectionStrings> <add name="db" providerName="System.Data.SqlClient" connectionString="Server={server};Database={database};User Id={user};Password={password}; Max Pool Size = 4000"/> <add name="busDb" providerName="System.Data.SqlClient" connectionString="Server={server};Database={database};User Id={user};Password={password}; Max Pool Size = 4000"/> </connectionStrings> <appSettings> <add key="BusTransportType" value="SqlServer"/> <add key="Bus_DocumentsArchivingCommandsQueue:NumberOfWorkers" value="1"/> <add key="Bus_DocumentsArchivingCommandsQueue:MaxParallelism" value="3"/> <add key="ProfilerLogEnable" value="true"/> <add key="IsWriteToProfilerLogAllRequests" value="true"/> <add key="ProfilerAllLogsSizeLimitMegaBytes" value="10"/> <add key="CompressionLevel" value="Optimal"/> <add key="TemporaryArchiveFlat" value="FileSystem"/> <add key="PathToTemporaryArchiveFlat" value="C:\Temp"/> </appSettings> <unity xmlns="http://schemas.microsoft.com/practices/2010/unity"> <container> <register type="Advanta.Files.IFileStorageProvider, Advanta.Infrastructure" mapTo="SL.Storage.SqlFileStorageProvider, SL.DocumentsArchiving.Service"> <constructor> <param name="connectionStringName" value="db" type="string"></param> </constructor> </register> <!-- <register type="Advanta.Files.IFileStorageProvider, Advanta.Infrastructure" mapTo="SL.Storage.LocalFileStorageProvider, SL.DocumentsArchiving.Service"> <constructor> <param name="documentsFolder" type="string" value="C:\LocalFileStorage" /> </constructor> </register> --> </container> </unity> </configuration>
Обязательные настройки отмечены -звездочкой (*)
<configSections> (*) - не изменяется<connectionStrings> (*) - настройка параметров подключения сервиса к базе данных системы ADVANTA<add name=«db» providerName=«System.Data.SqlClient» connectionString=«{DbConnectionString}» /> (*)name - тип подключения, возможные значения: dbproviderName - указание провайдера для подключения, возможные значения: System.Data.SqlClientconnectionString - заменить значение {DbConnectionString} на корректную строку подключения к базе данных<add name=«busDb» providerName=«System.Data.SqlClient» connectionString=«{DbConnectionString}» />name - тип подключения, возможные значения: busDb - имя строки подключения для шины данныхproviderName - указание провайдера для подключения, возможные значения: System.Data.SqlClientconnectiongString - заменить значение {DbConnectionString} на корректную строку подключения к базе данных<appSettings> (*) - основные настройки приложения типа ключ-значение <add key=«{Key}» value=«{Value}» /> - один параметр определяет одну настройку. Описание значений ключей:BusTransportType - тип транспорта для шины данных, возможные значения (если в конфиге нет параметра, используется значение SqlServer):SqlServer - шина данных работает через SQL Server (требует указания в разделе <connectionStrings> выше строки подключения с именем busDb)InMemory - шина данных работает через памятьBus_DocumentsArchivingCommandsQueue:NumberOfWorkers - количество обработчиков событий сервиса архивации документов, значение по умолчанию 1Bus_DocumentsArchivingCommandsQueue:MaxParallelism - максимальный параллелизм обработчиков событий сервиса архивации документов, значение по умолчанию 3ProfilerLogEnable (*) - запущена ли запись событий сервиса архивации документов профайлером (true или false)IsWriteToProfilerLogAllRequests (*) - следует ли записывать все события сервиса архивации документов профайлером (true или false) ProfilerAllLogsSizeLimitMegaBytes (*) - суммарный лимит (в МБ) журналов профайлераCompressionLevel - степень сжатия архивов сервисом архивации документов (значение по умолчанию Optimal):Optimal - максимальное сжатиеFastest - максимальная скорость архивацииNoCompression - без сжатияTemporaryArchiveFlat - место временного размещения скачанных архивируемых файлов - только для DocumentsArchivingService=Local (значение по умолчанию Memory):Memory - оперативная памятьFileSystem - файловая системаPathToTemporaryArchiveFlat - путь к папке для временного размещения скачанных архивируемых файлов - работает и обязателен только для варианта TemporaryArchiveFlat = FileSystem<unity> - настройки DI-контейнера. Надо выбрать только 1 из вариантов, а второй закомментировать (как в примере выше):<register>…первый блок …</register> - при разрешении зависимости в SL.Storage.SqlFileStorageProvider (файлы хранятся в БД)<register>…второй блок …</register> - при разрешении зависимости в SL.Storage.LocalFileStorageProvider (файлы хранятся на диске, значение value параметра documentsFolder должно содержать имя папки с файлами)
Файл конфигурации ведения логов приложения log4net.config должен быть скопирован в папку публикации сервиса. Если данный файл отсутствует, то в этом случае логи работы сервиса вестись не будут.
После редактирования файла конфигурации логов необходимо перезапустить сервис.
Пример содержания файла log4net.config:
<?xml version="1.0" encoding="utf-8" ?> <log4net> <root> <level value="ALL"/> <appender-ref ref="appender"/> </root> <appender name="appender" type="log4net.Appender.RollingFileAppender"> <file value="archsvc.log"/> <appendToFile value="true"/> <rollingStyle value="Size"/> <maxSizeRollBackups value="3"/> <maximumFileSize value="3MB"/> <staticLogFileName value="true"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%d %-5p %m%n"/> </layout> </appender> </log4net>
Подробнее о значениях параметров файла настройки см. в официальной документации Log4net - https://logging.apache.org/log4net/manual/configuration/appenders/rollingfileappender.html
Для использования локального сервиса архивации (встроенного в Cистему), устанавливать отдельно его не нужно, но необходимо настраивать параметры сервиса в конфигурационном файле client.config самой Системы (см. ниже).
Для настройки сервиса для массового скачивания документов единым архивом необходимо:
1. Обязательно предусмотреть возможность выноса сервиса архивации файлов на отдельный сервер.
2. Скорректировать раздел appSettings в конфигурационном файле client.config сервера приложения ADVANTA, добавив параметры для настройки взаимодействия с Сервисом массового скачивания документов:
При использовании сервиса архивации на отдельном сервере
<appSettings> <!-- текущие настройки Системы --> <!-- Пример настройки Системы для архивации файлов на отдельном сервере --> <add key="DocumentsArchivingService" value="Remote" /> <add key="DocumentsArchiveLifeTimeHours" value="168" /> <add key="MaxTotalFileSize" value="2097152000" /> <add key="MaxFileCount" value="500" /> <add key="MaxDocumentsArchivingActionCount" value="3" /> <add key="MaxFullPathLength" value="150" /> <add key="MinFolderNameLength" value="3" /> <add key="MinRootFolderNameLength" value="30" /> </appSettings>
При использовании локального сервиса архивации необходимо настроить дополнительные параметры, кроме указанных выше
<appSettings> <!-- текущие настройки Системы --> <!-- Пример настройки Системы для архивации файлов на одном сервере с приложением ADVANTA --> <add key="DocumentsArchivingService" value="Local" /> <!-- Параметры, по аналогии с примером выше для использования удаленного сервиса архивации --> <!-- Дополнительные параметры при выборе локального сервиса архивации файлов --> <add key="Bus_DocumentsArchivingCommandsQueue:NumberOfWorkers" value="1"/> <add key="Bus_DocumentsArchivingCommandsQueue:MaxParallelism" value="3"/> <add key="ProfilerLogEnable" value="true"/> <add key="IsWriteToProfilerLogAllRequests" value="true"/> <add key="ProfilerAllLogsSizeLimitMegaBytes" value="10"/> <add key="CompressionLevel" value="Optimal"/> <add key="TemporaryArchiveFlat" value="Memory"/> <add key="PathToTemporaryArchiveFlat" value="C:\Temp"/> </appSettings>
Где:
DocumentsArchivingService - ключ активации функционала, указывающий на расположение сервиса архивации документов: Remote - используется удалённый сервис архивации документов Local - используется встроенный в Систему сервис архивации документовDocumentsArchiveLifeTimeHours - время жизни архивов документов (в часах), значение по умолчанию 168MaxTotalFileSize - максимальный суммарный размер файлов (в байтах) для архивирования документов. Если в конфиге нет параметра, используется значение 2097152000MaxFileCount - максимальное количество файлов для архивирования документов. Если в конфиге нет параметра, используется значение 500MaxDocumentsArchivingActionCount - максимальное количество одновременно выполняемых задач архивирования документов. Если в конфиге нет параметра, используется значение 3MaxFullPathLength - максимальная длина полного пути в архиве (символов), значение по умолчанию 200MinFolderNameLength - минимальная допустимая при сокращении длина названия папок архива (кроме корневой), значение по умолчанию 6MinRootFolderNameLength - минимальная допустимая при сокращении длина названия корневой папки, значение по умолчанию 30
Параметры, доступные в файле client.config основного приложения ADVANTA только для варианта, когда DocumentsArchivingService = Local:
Bus_DocumentsArchivingCommandsQueue:NumberOfWorkers - количество обработчиков событий сервиса архивации документов, значение по умолчанию 1Bus_DocumentsArchivingCommandsQueue:MaxParallelism - максимальный параллелизм обработчиков событий сервиса архивации документов, значение по умолчанию 3ProfilerLogEnable - запущена ли запись событий сервиса архивации документов профайлером (true или false)IsWriteToProfilerLogAllRequests - следует ли записывать все события сервиса архивации документов профайлером (true или false) ProfilerAllLogsSizeLimitMegaBytes - суммарный лимит (в МБ) журналов профайлераCompressionLevel - степень сжатия архивов сервисом архивации документов (значение по умолчанию Optimal):Optimal - максимальное сжатиеFastest - максимальная скорость архивацииNoCompression - без сжатияTemporaryArchiveFlat - место временного размещения скачанных архивируемых файлов - только для DocumentsArchivingService=Local (значение по умолчанию Memory):Memory - оперативная памятьFileSystem - файловая системаPathToTemporaryArchiveFlat - путь к папке для временного размещения скачанных архивируемых файлов - только для варианта TemporaryArchiveFlat = FileSystem
Если какой-то из вышеперечисленных параметров (кроме ключа активации функционала DocumentsArchivingService) не указан в файле client.config, то используется его значение по умолчанию.
Подробнее об отслеживании хода процесса скачивания документов единым архивом на странице «Фоновые процессы».