Project

General

Profile

Mdb_modify

Mdb_modify - это сервис, предназначенный для получения информации об изменениях, произошедших в МБД и раздачи этой информации работающим копиям ПО Digispot II.

Использование mdb_modify является обязательным, если количество одновременно работающих копий ПО Digispot II (Джин, Трек2 и пр.) превышает 20. Данный сервис входит в состав Медиа БД Advanced Engine, и не входит в состав Медиа БД Engine. Если не использовать сервис, то SQL-сервер будет перегружен вспомогательными запросами об произошедших изменениях. Эти запросы периодически посылают все рабочие места. При использовании сервиса mdb_mody запросы об изменениях посылает только он один, а полученные изменения сервис записывает в файлы, откуда их считывают все приложения.

Выполняемый файл сервиса называется mdb_mody_x.exe, где х -это номер поколения. На текущий момент- 4.

Установка и настройка

Подключение к БД

Для подключения к БД сервис использует предварительно сконфигурированный ODBC источник. Поэтому необходимо предварительно создать ODBC-источник, указав в нем параметры, необходимые для подключения к используемой на комплексе SQL-базе данных.

Это можно сделать в разделе Control panel -> Administrative tools -> Data sources (ODBC).

Для подключения к MS SQL Server 2005 и 2008 может потребоваться дополнительная установка соответствующего ODBC-драйвера: Native Sql Client. Дистрибутив клиента есть внутри дистрибутива сервера. Он называется sqlncli.msi.

Предварительная настройка БД и каталог для файлов обмена

Сервис сохраняет данные об изменениях в файлы 0.dat и 1.dat, которые затем считываются остальными рабочими местами. Каталог, в котором хранятся эти файлы, указывается непосредственно в БД. Перед установкой сервиса необходимо выбрать каталог для хранения этих файлов.

Программа сохраняет данные в файлы 0.dat и 1.dat поочередно, переходя на другой файл при достижении текущим файлом предельного размера 100 МБ. Переход между файлами 0.dat и 1.dat осуществляется не чаще, чем раз за 30 минут, за это время при очень активной работе с МБД (>100 активных подключений) возможно превышение файлом установленного лимита, в т.ч. в несколько раз.

Каталог, в котором будут хранится эти файлы, должен быть доступен со всех мест комплекса с правами, достаточными для чтения файлов, а сервис (учетная запись, с правами которой он работает) должен иметь права для создания и изменения файлов в этом каталоге.
Предположим, что в нашем случае путь выглядит так: \\server\share\folder

Путь к данному каталогу хранится непосредственно в БД. Его необходим внести туда специальным запросом (необходимо выполнить запрос в SQL Server Management Studio)

DELETE FROM [dbo].[PARAMETERS] where Name='MODIFY_EXCHANGE_PATH_2'
INSERT INTO [dbo].[PARAMETERS] (Name, Value, Type) VALUES ('MODIFY_EXCHANGE_PATH_2','\server\share\folder', 1)


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

В каталоге должно быть как минимум 1 GB свободного места.

Установка сервиса

Выполняемый файл является одновременно и инсталлятором сервиса.

При запуске mdb_mody_4.exe будет выдан запрос на установку сервиса на данном рабочем месте.

mdbm-install.PNG

Чтобы успешно установить сервис, надо запустить mdb_mody_4.exe с правами локального Администратора. Устанавливаемый сервис имеет имя mdb_modify.

При установке сервис конфигурируется на запуск из того каталога, в котором запускается mdb_mody_4.exe. Поэтому необходимо изначально скопировать файл в требуемый каталог. В процессе работы программа создает в данном каталоге подкаталог LOGS в котором создает файлы логов. Необходимо убедиться, что у учетной записи, из под которой работает сервис, есть соответствующие права. По умолчанию, программа хранит 500 МБ логов, соответственно, в данном каталоге д.б. свободно не менее 500 МБайт свободного места.

После установки сервиса будет открыто окно его настройки:

mdbm-cfg.PNG

Для минимальной настройки необходимо:

  1. Указать тип запуска (Startup type) = AUTOMATIC и нажать кнопку Apply
  2. Нажать кнопку Configure и указать:
    1. ODBC источник для подключения к БД и, если требуется, логин и пароль.
    2. Дополнительно можно указать таймаут опроса сервера и максимальный объем хранимых логов.

При минимальной настройке этого достаточно. Сервис можно запустить кнопкой Start и завершить работу инсталлятора кнопкой Exit.

Данные параметры сохраняются в реестре, в ветке

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mdb_modify

Учетная запись

Учетная запись, с которой работает сервис, может быть установлена в свойстве сервиса mdb_modify в оснастке настройки сервисов.

mdbm-logon.PNG

Необходимые права

Пользователю, с правами которого будет работать данный сервис, необходимо предоставить следующие права:

  • право: Log on as a service. Оно автоматически добавляется к праву пользователя при использовании окна, указанного выше. Явно его необходимо давать только в экзотических случаях.
  • чтение и изменение ветки реестра:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mdb_modify
  • чтение, создание и удаление файлов в каталоге обмена файлов
  • чтение, создание и удаление файлов в каталоге <путь к mdb_modify.exe>\LOGS
  • если при настройке подключения к SQL серверу используется система авторизации Windows, то данный пользователь должен иметь привилегии, необходимые для работы с базой данных.

Установка на кластер

Последовательность установки:

  1. На ноде создается ODBC источник
  2. Сервис устанавливается, как описано выше, на первую ноду кластера. Обычно сервис располагается на локальном кластерном носителе (диске), имеющем одинаковое символическое имя на всех нодах. Это удобнее, т.к. логи в этой ситуации хранятся в одном месте.
  3. В ресурсах ноды создается кластерный ресурс - сервис. Все необходимые для этого параметры приведены ранее.
  4. Процесс повторяется на остальных нодах
  5. В зависимостях данного ресурса необходимо указать (ресурсы, от которых зависит данный ресурс)
    1. Ресурс SQL-сервера
    2. Ресурс(ы) носителей, на которых находится сам сервис или каталог с файлами обмена.
  6. Внимательно проверяется учетная запись, с которой будет запускаться сервис - необходимые права описаны выше.

Контроль работоспособности

Сам сервис должен быть запущен (находится в состоянии Running)

Проверить, что сервис работает, проще всего проверив содержимое файлов лога. Программа пишет файлы в подкаталоге LOGS. Необходимо посмотреть самый последний по дате создания файл в этом каталоге, название файла выглядит так:mdb_modify_4.exe <дата> <время>.log

В нем каждые 5 сек должна появляться новая запись. Например:

01-05 17:04:42 Nothing has changed
01-05 17:04:47 Nothing has changed
01-05 17:04:53 Nothing has changed
01-05 17:04:58 Nothing has changed


Записи не должны содержать сообщений об ошибках. Если в течении нескольких минут в файле лога не появилось новых записей и программа не создала нового файла лога (она разбивает их по 1 МБ), то сервис не работает.

Кроме этого, о выходе сервиса из стоя говорят сообщения об ошибках, появляющиеся на рабочих местах ПО Digispot II (в окне ошибок и в логах), содержащие строки:

TDB_SERVICE_EXCHANGE::GetChanges
Can't lock file to exchange
Can't get modifications from exchange agent
Modify file sync
Bad modify file format


Выход сервиса из строя или его остановка приведут к тому, что на всех рабочих местах перестанут отображаться изменения, происходящие в БД (появление и удаление элементов, изменение названия, длительности и пр. ). Речь идет о фоновом отображении. При смене категории и/или типа отображаемого в окне МБД материала или нажатии кнопки Обновить, изменения будут отображены.

Почему "Зверушка"

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

Add picture from clipboard (Maximum size: 742 MB)