RSS Подписка на статьи RSS Подписка на комментарии Панель инструментов

Блог профессионалов стал частью сайта технической поддержки DocsVision http://support.docsvision.com. Новые материалы будут появляться уже на этом сайте.

Поиск

Ярлыки

авто генерация кода (1) Администрирование DocsVision (60) Атрибутивный поиск (3) База данных (24) Базы знаний (1) Безопасность (1) Бизнес-процессы (20) Блог (2) Вы увидите это первыми (1) Групповые политики (1) Диаграммы (2) Задания (2) Интеграция (2) Карточки DocsVision (14) Конструктор Решений (11) Маркетинг и продажи (4) Навигатор (3) Новое (3) Новости (32) Опрос (4) Опросы DocsVision (4) Оптимизация (3) Отчеты (2) Ошибки (1) Поддержка (14) Полезные ссылки (1) Представления (4) Производительность (5) Разбор полетов (18) Разработка для Workflow (7) разработка карточек (2) Разработка на платформе DocsVision (41) Разработка решений (43) Расширение платформы (1) Расширенные отчеты (9) Решения на платформе DocsVision (6) Сервисы DocsVision (3) Сканеры (3) Справочник сотрудников (1) Справочник типов (1) Установка (1) Утилиты (13) Шлюз в SharePoint (8) Штрихкод (2) Cкрипты карточек (7) DocsVision внутри (1) DocsVision Live (1) FileStream (1) FireFox (2) Opera (1) Powershell (5) Safari (1) SharePoint2007 (1) SharePoint2010 (2) Silverlight (1) UltraViews (1) Vista (1)

Значения по умолчанию в поле типа Дата

В конструкторе решений есть поля типа "Дата", для которого можно выбрать значение по умолчанию - "Сегодня". Но если нужно добавить дату со смещением? Например, как добавить несколько дней?

Для этого достаточно указать значение

Сегодня+NД

где N - нужное количество дней Читать дальше

Оставить комментарий (всего: 0)

Планирование ресурсов

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

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

Рассмотрим конфигурацию, которая описана здесь http://dvprofessionals.blogspot.com/2009/08/blog-post_21.html
Основные процессы:
  1. sqlservr
  2. DocsVision StorageServer
  3. DocsVision Workflow Server
  4. ExecLogic
  5. ExecLogic*32
  6. w3wp

Распределение процессорного времени 
Счетчик: Process | % processor time




Что видно. Основной потребитель - сервер баз данных. Особой постоянной нагрузки нет, только пики. Но если нужно оптимизировать этот ресурс, то MS SQL Server можно перенести на другой сервер.

Использование памяти.
Счетчик: Process | Working Set




Основной потребитель - процесс ExecLogic*32 (это процесс, который непосредственно обрабатывает функции бизнес-процессов. В данном случае 32 разрядные функции).
Это не критично - данному процессу можно ограничить память при помощи настройки в Консоли настройки.
Помимо этого, следующим процессам можно ограничить объем потребляемой памяти:
ExecLogic - в консоли настройки
w3wp - настройка рециклинга (Recycling) в пуле приложений IIS (Application pool)
sqlservr - настройкой памяти в свойствах сервера MS SQL Server.

Использование системы ввода-вывода
Счетчик: Process | IO Data operations /sec


Данный счетчик фиксирует не только обращения к диску, но и сетевые операции. И тут лидерами будут ExecLogic32 и DocsVision StorageServer, из-за частых сетевых вызовов.

Отдельно полезно будет посмотреть длину средней очереди к диску. Но этот счетчик не относится к конкретному процессу, а характеризует производительность в целом.

Какой можно сделать вывод. Для данной конкретной конфигурации не требуется разделения на несколько серверов. Однако, при росте первым кандидатом на переезд будет MS SQL Server.

Будет полезно, если кто-либо из гуру по системному администрированию покритикует методики измерения в комментариях. Читать дальше

Оставить комментарий (всего: 4)

Контроль за временем отклика сервера.


В версии DocsVision 4.5 есть встроенный функционал проверки длительности выполнения определенных операций. Настройка выполняется, как обычно, в консоли, параметр "Время отклика сервера"

В случае если данные значения не выполняются, то пользователь видит в Навигаторе предупреждение (см. самый первый скриншот).

Как быть пользователям предыдущих версий. Конечно, переходить на 4.5 :)
Но можно также сделать подобный функционал проверки в виде внешней утилиты.

Каким функционалом должен обладать данный инструмент.
1. Проверять время создания сессии
2. Проверять длительность получения данных карточки
3. Проверять время выполнения поиска и т.п.

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

Пример подобной утилиты я выложил на ftp. В архиве утилита, скомпилированная для DocsVision 4.1, инструкция, и исходный код.


Комментарий для желающих доработать. Основные методы проверки реализованы в библиотеке DVCheckObjects. Т.е. можно написать, например, консольное приложение, которое будет использовать данную библиотеку, и назначить это приложение как задачу в Task Scheduler на сервере. Читать дальше

Оставить комментарий (всего: 0)

Вынос Workflow сервиса на отдельную машину


При решении задачи отделения сервиса DocsVision Worklow Service на отдельную машину ранее предлагался следующий способ
1. установка еще одного сервиса Workflow (обозначим его как W2)
2. объединение сервиса, который работает вместе с сервером DocsVision (обозначим его как W1) и внешнего сервиса СУБП в один кластер
3. установка доли процесса в 1% для сервиса W1, для того, чтобы он не обрабатывал бизнес-процессы.

Наличие работающей службы W1 было необходимо для того, чтобы пользователи смогли запускать бизнес-процессы. Без работающей службы этого сделать нельзя, хотя и не всегда требуется.
Данный способ вполне легален, но требует наличия возможности создания кластера, которая включена в лицензию.

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

Обозначим S1 - машина на которой установлен сервер DocsVision, S2 - машина, на которой установлен только сервис Workflow.
  • На S1 останавливаем сервис DocsVision Workflow Service
  • На S1 и S2 создаем значение MachineName  (строка) в ключе реестра HKEY_LOCAL_MACHINE\SOFTWARE\DocsVision\Workflow\4.5\WorkflowServer
  • На S2 в ключе реестра  HKEY_LOCAL_MACHINE\SOFTWARE\DocsVision\Workflow\4.5 указываем адрес соединения с сервером S1 и название базы в BaseName
  • Выполняем два скрипта на базе данных
    DELETE FROM dvsys_sessions where AppID='20F4B6CD-B2F6-4702-BB13-ADF848A4F66F'
    UPDATE dvsys_workflow_services SET ServiceID = 'имя сервера S2, на котором работает WF'
    Данные скрипты очищают открытые сессии от сервиса Worklfow, и указывают новое имя сервиса Workflow (Это все можно сделать и через консоль настройки)
  • Перезапускаем IIS и DocsVision StorageServer Service на S1 и DocsVision Workflow Service на S2. Помним, что на S1 DocsVision Workflow Service должен быть остановлен - он нам не нужен
Готово, после перезапуска служб будем иметь конфигурацию, при которой сервис управления бизнес-процессами будет работать на отдельном сервере.
Читать дальше

Оставить комментарий (всего: 2)

Програмное завершение задания бизнес-процесса

Програмно завершить задание бизнес-процесса можно следующим образом

1. В секции "Performing"  установить
    а) в поле TaskState значение 5 (исполнено)
    б) в поле ActualEndDate текущую дату (дату завершения)
2. В секции "CurrentPerformer" установить
    а)  в поле PerformerState значение 5 (исполнено), если задание было делегировано, то 13 (возврат с делегирования)

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

Так же нужно завершить задания контроллеров, если такие есть. Читать дальше

Оставить комментарий (всего: 3)