ФБП:Сервер и Менеджер серверов Руководство администратора · «Финансы без проблем»

Документ предназначен для администратора, который обслуживает серверную часть системы «Финансы без проблем» (сокращённо — ФБП), но ранее с этой системой не работал. Здесь описано, как устроен ФБП:Сервер, как его установить, запускать, наблюдать за его работой и действовать в нештатных ситуациях. Описание языка отчётных форм и запросов сюда не входит — администратору оно не требуется.

1. Введение: что это за система к оглавлению

1.1. Назначение системы

«Финансы без проблем» — учётная (бухгалтерская) платформа, существующая с 1995 года. Она построена по схеме «клиент–сервер»: на серверном компьютере работает программа ФБП:Сервер, а на рабочих местах сотрудников — клиентские программы. Все вычисления — регистрация хозяйственных операций, расчёт итогов (баланса), выполнение отчётов — выполняет сервер. Клиентская программа только передаёт серверу поручения пользователя и показывает готовые результаты; сама она никаких учётных вычислений не производит.

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

1.2. Состав серверной части

Администратор работает с двумя программами, которые поставляются и устанавливаются вместе, в один каталог:

ПрограммаНазначение
Fbp.Server.exe Сам сервер. Работает как служба Windows (возможен и запуск из командной строки для диагностики). Один экземпляр обслуживает одну базу данных.
Fbp.Server.Manager.exe Менеджер серверов — оконная программа администратора. Позволяет вести список баз, устанавливать и удалять службы, запускать и останавливать серверы, наблюдать их состояние, просматривать журналы и управлять лицензией. Запускается с правами администратора.

1.3. Главная особенность: обмен через общий каталог, а не через сеть

Сервер и клиенты обмениваются данными не по сетевым протоколам (ни TCP/IP, ни именованные каналы не используются), а через общий файловый каталог, называемый каталогом обмена. Клиент записывает в этот каталог файл-запрос, сервер забирает его, выполняет и записывает файл-ответ, который клиент читает. Чтобы клиенты на других компьютерах могли работать, каталог обмена должен быть доступен им по локальной сети как общий ресурс (сетевая папка).

Из этой особенности следуют два практических вывода. Во-первых, «сетевые» проблемы ФБП — это всегда проблемы доступа к сетевой папке (прав, связности, блокировок файлов), а не сетевых портов и брандмауэра приложений. Во-вторых, сервер и каталог обмена должны располагаться так, чтобы сервер работал с ним как с локальным каталогом: каталог обмена обычно находится на том же компьютере, что и сервер.

1.4. Термины, используемые в документе

ТерминЗначение
База (база данных) Вся учётная информация одной организации: план счетов, журналы операций, отчётные формы, список пользователей. Физически — набор файлов в одном каталоге (каталог базы).
Каталог обмена Общий каталог, через который клиенты передают серверу запросы и получают ответы. Традиционное имя — BOX_.
Служба (служба Windows) Зарегистрированный в операционной системе экземпляр сервера с автоматическим запуском. Стандартный способ эксплуатации.
Операция Единица учёта: зарегистрированное хозяйственное действие (проводка с суммой, датой и комментарием).
Форма (отчётная форма) Отчёт или экранный диалог. Хранится в каталоге базы в виде текстового файла *.rpt и выполняется сервером по запросу клиента.
Пересчёт баланса Служебный процесс сервера, обновляющий итоговые остатки и обороты по счетам после изменения данных (см. п. 2.3).
Сигнал жизни Файл _STATUS_.FBP, который работающий сервер регулярно обновляет, сообщая своё состояние (см. п. 6.1).

2. Архитектура и принцип работы к оглавлению

2.1. База данных — набор файлов; сервер работает в памяти

База ФБП — это обычные файлы в каталоге базы: план счетов (ACNT.A3P), дерево видов операций (CAS.RUL), журналы операций — по одному файлу на каждый месяц (YYYYMM.F3P), отчётные формы (*.rpt) и другие (полный перечень — в приложении 10.1). Никакой внешней СУБД (SQL Server, Oracle и т. п.) система не использует.

При запуске сервер загружает базу с диска в оперативную память и далее вся работа ведётся в памяти — поэтому сервер быстр даже на больших базах. Журналы операций записываются на диск сразу при регистрации операций; изменения плана счетов сохраняются на диск автоматически — примерно через минуту после последнего изменения (в паузу между запросами клиентов) и обязательно при штатной остановке. Ориентировочное потребление памяти — около 2–2,5 ГБ на экземпляр сервера для крупной базы; на небольших базах заметно меньше. Для баз, которые используются непостоянно, память в простое можно освобождать — режимом гибернации (п. 5.7): сервер останавливается без запросов и поднимается автоматически по первому обращению клиента.

2.2. Цикл обработки запроса

Сервер в непрерывном цикле просматривает каталог обмена (включая его подкаталоги — каждый клиент может работать в своём подкаталоге). Один запрос проходит так:

  1. Клиент создаёт файл запроса под временным именем с расширением .REQ и, записав его целиком, переименовывает в .IN. Переименование — атомарный сигнал «файл готов»: сервер никогда не увидит недописанный запрос.
  2. Сервер обнаруживает файл .IN, выполняет содержащиеся в нём поручения, удаляет .IN, записывает ответ в файл .ANS и по завершении переименовывает его в .OUT.
  3. Клиент читает готовый .OUT и удаляет его.

Если сервер был остановлен, а клиенты продолжали подкладывать запросы, накопившиеся файлы .IN будут обработаны после запуска сервера — запросы не теряются. Если при обработке запроса возник технический сбой (например, не удалось создать файл ответа), сервер не теряет и не «зацикливается» на таком запросе: он откладывает его в карантин — файл с расширением .BAD — и пишет об этом в журнал (см. п. 8.2).

2.3. Пересчёт баланса

Итоговые остатки и обороты по счетам (баланс) сервер хранит в памяти в готовом виде, чтобы отчёты строились мгновенно. После каждого изменения данных (регистрация или удаление операций, изменение плана счетов) сервер пересчитывает баланс — сразу после обработки пачки запросов, а не в момент обращения к отчёту. Пересчёт помесячный и по возможности частичный: пересчитываются только затронутые месяцы. Ориентировочная длительность на крупной базе: частичный пересчёт — единицы секунд (обычно 4–9 с), полный пересчёт при запуске — десятки секунд.

Во время пересчёта обработка запросов приостанавливается: клиенты в эти секунды ждут ответа. Это нормальное поведение. Менеджер серверов показывает пересчёт отдельным состоянием с шкалой прогресса по месяцам (см. п. 5.3), поэтому паузу легко отличить от неисправности.

2.4. Один сервер — одна база; несколько баз на одном компьютере

Каждый экземпляр сервера обслуживает ровно одну базу. Запустить два экземпляра на одну и ту же базу невозможно — этому препятствует файл блокировки (_SRVNEW_.LCK, см. п. 6.4). Если организация ведёт несколько баз, на одном компьютере устанавливается несколько служб — по одной на базу; у каждой службы своё имя (см. п. 3.4) и свой каталог обмена. Менеджер серверов как раз и предназначен для управления такой группой серверов из одного окна.

2.5. Общая схема

  Рабочие места (клиенты)          Серверный компьютер
 ┌───────────┐ ┌───────────┐
 │ Клиент 1  │ │ Клиент 2  │  … по локальной сети (общая папка)
 └─────┬─────┘ └─────┬─────┘
       │  файлы запросов (.IN) и ответов (.OUT)
       ▼             ▼
      ┌───────────────────────┐      ┌──────────────────────────┐
      │   Каталог обмена      │ ◄──► │  Служба Windows          │
      │   (BOX_)              │      │  Fbp.Server.exe          │
      └───────────────────────┘      │  (база загружена в ОЗУ)  │
                                     └───────────┬──────────────┘
                                                 │ чтение/запись
                                                 ▼
                                     ┌──────────────────────────┐
                                     │  Каталог базы: ACNT.A3P, │
                                     │  CAS.RUL, YYYYMM.F3P,    │
                                     │  *.rpt, журналы сервера  │
                                     └──────────────────────────┘

3. Установка и первый запуск к оглавлению

3.1. Требования

3.2. Размещение файлов поставки

Программы сервера и менеджера не требуют установщика: достаточно скопировать файлы поставки в выбранный каталог, например C:\FBP\Server. Обязательное условие: менеджер и сервер должны лежать в одном каталоге — менеджер устанавливает службы именно на тот Fbp.Server.exe, который находится рядом с ним. Рядом же впоследствии появятся файл лицензии FbpServer.lic и файл списка баз FbpManager.bases.json.

3.3. Выбор каталогов базы и обмена

Для каждой базы требуется два каталога:

Если каталога обмена не существует (например, базу перенесли с другого компьютера без него), сервер создаст его сам при запуске — это не ошибка.

3.4. Установка сервера как службы Windows

Штатный способ эксплуатации — служба Windows. Установка выполняется из менеджера серверов (кнопка «Установить сервер БД» или флажок при добавлении базы, см. п. 5.2). При установке служба настраивается так:

Штатная остановка сервера (из менеджера или директивой клиента) не считается сбоем: перезапуск после неё не срабатывает ни при каком флажке. А вот принудительное завершение процесса в диспетчере задач Windows считает сбоем.

На одну базу можно установить только одну службу: менеджер откажет в установке второй службы на тот же каталог базы. Две службы на одну базу мешают друг другу — вторая не запустится («база уже обслуживается»), а Windows сообщит лишь «служба не ответила на запрос своевременно».

Запуск сервера из командной строки (Fbp.Server.exe <каталог базы> <каталог обмена>) — вспомогательный режим для диагностики: сервер работает в окне консоли, остановка — клавишами Ctrl+C. Постоянно эксплуатировать сервер в таком режиме не следует.

3.5. Первый запуск

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

  1. проверяет, не обслуживает ли базу другой экземпляр (файл блокировки, п. 6.4);
  2. открывает журнал FbpServer-ГГГГ-ММ-ДД.log в каталоге базы;
  3. проверяет лицензию (раздел 4);
  4. загружает базу в память и выполняет полный пересчёт баланса;
  5. переходит в рабочий цикл — начинает обслуживать клиентов.

Загрузка крупной базы занимает десятки секунд; всё это время менеджер показывает состояние «загрузка базы». Готовность к работе — состояние «работает» в менеджере. То же самое можно увидеть и без менеджера — по файлу сигнала жизни _STATUS_.FBP (п. 6.1) и по записям в журнале.

4. Лицензирование к оглавлению

4.1. Принцип

Лицензия выдаётся поставщиком на конкретный компьютер (не на базу и не на число пользователей) и не имеет срока действия. Лицензия — это файл FbpServer.lic, который кладётся в один каталог с Fbp.Server.exe. Файл подписан электронной подписью поставщика, поэтому подделать или перенести его на другой компьютер невозможно: при проверке сервер сверяет лицензию с кодом своего компьютера.

Менеджер серверов лицензии не требует — лицензируется только сервер.

4.2. Режимы работы сервера

РежимУсловиеПоведение сервера
Полноценный Файл FbpServer.lic действителен для этого компьютера Работа без ограничений; при запуске в журнал пишется «Лицензия: <имя клиента>», в менеджере — «полноценная».
Ознакомительный (демонстрационный) Файл лицензии отсутствует Сервер работает полнофункционально 30 минут, затем останавливается штатно (с сохранением данных). После перезапуска отсчёт начинается заново. В менеджере — «demo, осталось N мин».
Отказ Файл лицензии есть, но подпись не сошлась или лицензия выписана на другой компьютер Сервер отказывается работать и завершается сразу (код завершения 4); в журнале — причина отказа и код компьютера.

4.3. Получение и установка лицензии

  1. В менеджере серверов нажмите «Лицензия…». В окне будут показаны состояние лицензии и код компьютера вида XXXX-XXXX-XXXX-XXXX (его можно скопировать).
  2. Передайте код компьютера поставщику. Поставщик выпишет файл FbpServer.lic и передаст его вам.
  3. Нажмите «Установить лицензию…» и выберите полученный файл. Менеджер скопирует его в каталог программы (поверх старого, если он был).
  4. Перезапустите все серверы (кнопка «Перезапустить сервер» для каждой базы): лицензия проверяется при запуске.

4.4. Замена или переустановка серверного компьютера

Так как лицензия привязана к оборудованию, при переносе системы на другой компьютер (а в ряде случаев — и после существенной смены конфигурации) лицензия перестаёт действовать: сервер переходит в отказ. Порядок действий тот же, что при первичной установке: узнайте код нового компьютера кнопкой «Лицензия…», передайте поставщику, установите полученный файл. До получения лицензии сервер может работать в ознакомительном режиме — удалите недействующий файл FbpServer.lic, чтобы вместо отказа включился 30-минутный режим.

Код компьютера привязан к установке операционной системы. Чистая переустановка Windows, как правило, меняет код — лицензию придётся перевыпустить.

5. Менеджер серверов — основной инструмент администратора к оглавлению

5.1. Назначение и запуск

Менеджер серверов (Fbp.Server.Manager.exe) — единое окно управления всеми серверами (базами) данного компьютера. Через него выполняются все повседневные действия администратора: добавление баз в список, установка и удаление служб, запуск и остановка серверов, наблюдение за их состоянием, просмотр журналов, установка лицензии.

Менеджер запускается с правами администратора (они требуются для управления службами). Менеджер не запускает серверы как свои дочерние процессы и не нужен для их работы: он лишь управляет службами Windows и читает файлы состояния. Поэтому закрытие (полный выход) менеджера никак не влияет на работающие серверы.

На одном компьютере работает только один экземпляр менеджера. Повторный запуск не создаёт вторую копию, а поднимает на передний план уже открытое окно (в том числе свёрнутое в область уведомлений); если окно найти не удалось, будет показано сообщение «Менеджер баз уже запущен на этом компьютере». Это защита от конфликтов: из двух окон можно было бы одновременно запускать и останавливать одни и те же серверы.

Верхняя строка главного окна показывает версию серверной программы — ту же, что и окно активности сервера (п. 5.6).

5.2. Список баз: добавление, изменение, удаление

Менеджер ведёт собственный список баз («реестр баз»). Он хранится в файле FbpManager.bases.json рядом с программой; для каждой базы запоминаются: отображаемое имя, каталог базы, каталог обмена и суффикс имени службы.

Добавление базы (кнопка «Добавить базу…»):

Изменение базы (кнопка «Изменить базу…») открывает ту же форму. Если служба уже установлена, а вы изменили каталоги или суффикс, менеджер предложит переустановить службу с новыми параметрами (сервер будет остановлен и переустановлен). Если отказаться, служба продолжит работать со старыми каталогами до переустановки вручную.

«Убрать базу из списка» удаляет только запись в менеджере — ни база, ни служба не затрагиваются. Если служба ещё установлена, менеджер предупредит: «Служба <имя> ещё установлена — сначала удалите службу».

Если файл списка баз окажется повреждён (например, его редактировали вручную с ошибкой), менеджер при запуске сообщит об этом, покажет путь к файлу и не позволит записывать поверх него, пока файл не будет исправлен вручную или вы явно не подтвердите сброс. Список баз в такой ситуации не теряется без предупреждения — исходный файл и его резервная копия FbpManager.bases.json.BAK остаются на диске.

5.3. Главное окно: состояние серверов

Список в главном окне обновляется автоматически каждые 5 секунд (во время пересчёта — каждые полсекунды). Колонки:

КолонкаСодержимое
БазаОтображаемое имя базы.
Имя службы WindowsПолное имя службы (FbpServer или FbpServer-<суффикс>).
Служба Windows Статус службы по данным операционной системы: «работает», «остановлен», «запускается», «останавливается», «пауза»; «не установлен» — если служба не установлена; «ИМЯ ДУБЛИРУЕТСЯ!» — если то же имя службы назначено нескольким базам; «НА ЭТУ БАЗУ ЕЩЁ: …» — на тот же каталог базы настроена ещё одна служба (п. 3.4; красный значок, если установлена и своя служба базы).
Состояние сервера БД Состояние самого сервера по его сигналу жизни: «загрузка базы» (мигающая ячейка), «работает», «останавливается», «остановлен», «спит (ожидание старта)» — при включённой гибернации, если сервер уснул штатно (п. 5.7); «УПАЛ — разберитесь в причине» — служба остановлена не штатно (сбой или снятие процесса в диспетчере задач). Во время пересчёта здесь отображается «пересчёт: <месяц>» и рисуется шкала прогресса по месяцам года. При отсутствии данных — «—».
ГибернацияНастройка режима сна (п. 5.7): «Сон через N мин» или «—», если гибернация выключена. Сам факт сна показывают синий цвет кнопки «Гибернация базы…» и синяя строка базы.
Время запуска / Время работыМомент запуска сервера и длительность работы.
Каталог базыПуть к каталогу данных.
ЗапросовСколько запросов обработано с запуска.
Память, МБПотребление оперативной памяти процессом сервера. У остановленного и спящего сервера — «0»: процесса нет, память не занята.
Лицензия«полноценная», «demo, осталось N мин» или «—».
АрхивНастройка архивирования (п. 7.4): «вкл/выкл, полный/ инкрементный» и время последнего архива; «архивируется…» — архив создаётся прямо сейчас; при сбое — текст ошибки; «—» — архивирование не настроено.
Запуск службыКак Windows обращается со службой: «вручную» или «при загрузке Windows»; «перезапуск при сбое», если он включён; «СБОЕВ ЗА СУТКИ: N» — сколько раз служба завершалась неожиданно (по журналу событий Windows; сюда попадает и снятие процесса в диспетчере задач); «сервер из другого каталога: …» — служба запускает не ту программу сервера, что лежит рядом с менеджером (например, старую версию).

Строки списка — двустрочные, длинные значения переносятся по строкам, а ширина колонок автоматически подгоняется под ширину окна: вся таблица видна без горизонтальной прокрутки.

Цвет текста строки — быстрый индикатор неполадок:

Двойной щелчок по строке открывает окно активности сервера (п. 5.6).

5.4. Управление службами

Кнопки верхней строки действуют на выбранную в списке базу:

КнопкаДействие
Запустить серверЗапуск службы (ожидание до 30 секунд).
Остановить серверШтатная остановка: сервер сохраняет данные и завершается (ожидание до 90 секунд). Это единственный правильный способ остановки — данные при ней не теряются.
Перезапустить серверОстановка и последующий запуск. Применяется после замены программы, установки лицензии и в других случаях, когда сервер должен перечитать своё окружение.
Обновить списокВнеочередное обновление показаний (обычно не требуется — список обновляется сам).

Кнопки нижней строки:

КнопкаДействие
Установить сервер БДРегистрация службы Windows для выбранной базы: запуск вручную, без перезапуска при сбое (п. 3.4).
Запуск службы…Два флажка, по умолчанию выключены: «Запускать сервер при загрузке Windows» и «Перезапускать сервер при сбое» (не более двух попыток). Флажки показывают и меняют настройку самой службы Windows; переустановка службы (смена гибернации, «Изменить базу…») выбор сохраняет.
Удалить сервер БДОстановка и удаление службы. Сама база и запись в списке остаются.
Открыть каталог базыОткрывает каталог данных в Проводнике.
Архивирование…Настройка автоматического архивирования выбранной базы и запуск архива вручную (п. 7.4).
Гибернация базы…Включение режима сна без запросов и настройка таймаута (п. 5.7). Кнопка окрашена синим, пока выбранная база спит.
Доступ серверов к данным…Папки с базами и выгрузками, доступные серверам, и учётные записи служб (п. 9.3).
Лицензия…Состояние лицензии и код компьютера (п. 4.3).
Установить лицензию…Копирование файла лицензии к программе (п. 4.3).
Выход из менеджераПолное завершение менеджера (с подтверждением). На работающие серверы не влияет.
Управляйте службами ФБП только из менеджера серверов. Остановка службы стандартными средствами Windows (оснастка «Службы», команда sc stop) из обычной сессии может завершиться ошибкой «отказано в доступе», а принудительное завершение процесса сервера (диспетчер задач) лишит его возможности сохранить данные (см. п. 8.1). Кроме того, Windows считает снятие процесса сбоем: при включённом перезапуске она поднимет сервер снова, при выключенном менеджер покажет «УПАЛ».

Если одно и то же имя службы назначено нескольким базам, менеджер блокирует управление такими строками и сообщает причину: такие строки запускали бы и останавливали один и тот же сервер. Уберите лишние записи из списка или задайте им разные суффиксы.

5.5. Ошибки операций

Если операция (запуск, установка службы и т. п.) завершилась ошибкой, менеджер показывает окно с подробным текстом, который можно выделить и скопировать целиком — этот текст следует прикладывать при обращении к поставщику (п. 8.6).

5.6. Окно активности сервера

Открывается двойным щелчком по строке базы; обновляется два раза в секунду. Предназначено для ответа на вопрос «что сервер делает прямо сейчас»:

5.7. Гибернация базы (сон без запросов)

Гибернация — режим экономии оперативной памяти для баз, которые используются непостоянно (архивные базы прошлых лет, резервные серверы и т. п.). Работающий сервер держит базу в памяти (п. 2.1), и при долгом отсутствии запросов эта память занята впустую. При включённой гибернации сервер, не получая запросов заданное время, останавливается сам: служба завершается штатно (с сохранением данных), память полностью освобождается, а база остаётся «спящей» до первого обращения.

Настройка — кнопка «Гибернация базы…» (в главном окне и в окне активности): флажок «Разрешить гибернацию…» и время «Останавливать через N мин без запросов» (от 1 минуты до суток). Настройка отражается в колонке «Гибернация» главного окна («Сон через N мин»). Таймаут записывается в параметры службы, поэтому при изменении настройки и уже установленной службе менеджер предложит переустановить службу (сервер будет остановлен и переустановлен); если отказаться, новая настройка подействует после переустановки службы вручную.

Как база просыпается. Менеджер следит за каталогом обмена спящей базы (опрос каждые 3 секунды): как только клиент присылает запрос, менеджер запускает службу, а будящий запрос сохраняется и выполняется после подъёма сервера — клиент лишь ждёт ответ дольше обычного. Будится только штатно уснувшая база (сервер сам ушёл в сон по таймауту): упавшую, остановленную администратором или ни разу не запускавшуюся базу менеджер не запускает — запрос сохраняется, менеджер показывает уведомление с причиной, после ручного запуска запрос будет выполнен. Разбудить базу можно и вручную — кнопкой «Запустить сервер». Поскольку сторож работает внутри менеджера, для автоматического пробуждения менеджер должен быть запущен (достаточно свёрнутого в область уведомлений).

Как выглядит сон. Спящая база окрашивается синим: строка в списке баз, кнопка «Гибернация базы…» (в обоих окнах) и лента года в окне активности. Состояние сервера — «спит (ожидание старта)», память — «0» (процесса сервера не существует — в диспетчере задач его нет, это нормально).

«Спящей» считается только база, уснувшая по таймауту. База, остановленная кнопкой «Остановить сервер», считается остановленной насовсем: по запросу клиента менеджер её не запустит (запрос сохранится до ручного запуска). Так администратор может спокойно остановить базу для обслуживания, не выключая гибернацию.

Ускоренное пробуждение — образ базы. При любой штатной остановке сервер записывает полный образ базы в файл _BASEIMG_.FBP в каталоге базы. Следующий запуск (в том числе пробуждение) восстанавливает базу из образа за секунды вместо десятков секунд полной загрузки. Образ действителен только для той же версии программы, неизменных файлов базы и того же дня (база, уснувшая вечером и разбуженная утром, стартует обычным, полным запуском — так же, как работающий сервер пересчитывает базу в полночь, п. 7.6): после обновления программы или изменения файлов первый запуск будет обычным (полным), а образ перезапишется при следующей остановке. Файл образа может быть большим — сотни мегабайт, по размеру базы в памяти; это нормально, вручную его удалять не нужно — непригодный образ сервер отбрасывает сам.

5.8. Журнал запросов

Окно «Журнал запросов» (кнопка «ЖурЗапросов» в окне активности) показывает сегодняшний журнал сервера FbpServer-ГГГГ-ММ-ДД.log из каталога базы: каждую обработанную команду — кто, что и за сколько миллисекунд. Показывается хвост журнала (до 300 последних строк), содержимое обновляется каждые 2 секунды. Вверху — строка поиска: по мере ввода найденное подсвечивается, клавиша Enter или кнопка «Найти» переходит к следующему совпадению по кругу; если ничего не найдено, поле подкрашивается розовым.

5.9. Сворачивание в область уведомлений и цвет значка

Менеджер рассчитан на постоянную работу фоном: закрытие окна («крестик») не завершает программу, а сворачивает её в область уведомлений (рядом с часами). Значок окрашивается в цвет суммарного состояния всех серверов:

Цвет значкаЗначение
ЗелёныйВсе установленные серверы работают нормально.
ЖёлтыйИдёт запуск, остановка или пересчёт баланса — временное рабочее состояние.
КрасныйЕсть проблема: сервер упал (служба остановлена аварийно), завис, устарел сигнал жизни или дублируется имя службы. Требуется вмешательство (раздел 8).
СерыйНи один сервер сейчас не работает (все остановлены штатно, спят или службы не установлены).

Двойной щелчок по значку возвращает окно. Меню значка (правый щелчок) содержит сводку «работает / запуск-пересчёт / проблем / спит / остановлено» и пункт «Выход», полностью завершающий менеджер (то же делает кнопка «Выход из менеджера» в главном окне). Завершение менеджера не останавливает серверы — но помните: автоматическое пробуждение спящих баз (п. 5.7) без работающего менеджера не выполняется.

6. Наблюдение за работой и диагностика к оглавлению

6.1. Файл состояния _STATUS_.FBP (сигнал жизни)

Работающий сервер постоянно (обычно раз в 10 секунд, во время пересчёта — два раза в секунду) обновляет в каталоге базы файл _STATUS_.FBP. Это текстовый файл в кодировке UTF-8, строки вида «ключ=значение». Именно из него менеджер берёт все показания, и его же может читать любая внешняя система мониторинга. Основные ключи:

КлючЗначение
stateСостояние: loading (загрузка базы), serving (работает), stopping (останавливается), down (остановлен), standby (уходит в сон — гибернация, п. 5.7).
server_timeМомент записи файла (по часам сервера). Если он старше ~30 секунд — сигнал жизни устарел, сервер, скорее всего, не работает.
start_time, uptime_secМомент запуска и длительность работы.
requests_totalСколько запросов обработано с запуска.
memory_mbПотребление памяти, МБ.
rebuilding, rebuild_month, rebuild_pct, rebuild_phase Признак и ход пересчёта баланса: текущий месяц и процент; фаза prepare — подготовка (загрузка данных).
last_rebuild_time, last_rebuild_start_month, last_rebuild_ms Когда завершился последний пересчёт, с какого месяца шёл и сколько занял.
balance_dirtyЕсть изменения, ожидающие пересчёта.
license, demo_left_secРежим лицензии (full/demo) и остаток демонстрационного времени, секунд.
savingИдёт запись плана счетов на диск.
loop_tickСчётчик итераций рабочего цикла; у живого сервера непрерывно растёт. По нему отличают зависание от простоя (п. 6.3).
pending_requestsЧисло необработанных файлов запросов, ожидающих в каталоге обмена.
ops, facts_flags, labelЧисло операций по месяцам, отметки о накопленных данных для отчётов, метка сервера — используются окном активности менеджера.
Свежесть файла сама по себе не доказывает, что сервер обрабатывает запросы: файл пишет фоновый таймер. Поэтому менеджер смотрит не только на свежесть, но и на счётчик loop_tick (п. 6.3).

6.2. Журналы сервера

В каталоге базы сервер ведёт журнал FbpServer-ГГГГ-ММ-ДД.log — по файлу на каждый день; старые файлы не удаляются. В журнал попадают:

Журнал удобно смотреть из менеджера (окно «Журнал запросов», п. 5.8) или открывать любым текстовым редактором — это обычный текст в кодировке UTF-8.

6.3. Как менеджер обнаруживает неполадки

СитуацияКак распознаётсяЧто показывает менеджер
Падение сервера (процесс завершился аварийно) Служба остановлена, а последний сигнал жизни говорит не «остановлен», т. е. сервер не успел остановиться штатно Красный значок в области уведомлений, состояние «УПАЛ — разберитесь в причине» и однократное уведомление. Windows перезапускает службу, только если для базы включён перезапуск при сбое (п. 3.4); в колонке «Запуск службы» — число сбоев за сутки
Устаревший сигнал жизни Служба работает, но _STATUS_.FBP не обновлялся дольше ~30 секунд Красная строка «работает, сигнал жизни устарел»
Зависание рабочего цикла Сигнал жизни свеж, состояние «работает», пересчёта нет, но счётчик цикла (loop_tick) не меняется дольше 20 секунд при наличии необработанных запросов (pending_requests > 0) Красная строка «работает, цикл завис (запросы ждут)»
Дублирование имени службы Одно имя службы назначено нескольким базам в списке «ИМЯ ДУБЛИРУЕТСЯ!» в колонке службы, красная строка, блокировка управления
Штатная остановка Служба остановлена, сигнал жизни — «остановлен» Серая строка; значок не краснеет — вмешательство не требуется

Порог зависания (20 секунд) выбран с запасом выше обычной длительности пересчёта (4–9 секунд), а во время пересчёта и загрузки проверка зависания отключена — ложные срабатывания на штатной работе исключены.

6.4. Файл блокировки _SRVNEW_.LCK

При запуске сервер создаёт в каталоге базы файл _SRVNEW_.LCK и записывает в него номер своего процесса. Пока файл занят, второй экземпляр сервера на ту же базу не запустится (сообщение «База … уже обслуживается другим экземпляром сервера», код завершения 3). Это защита от порчи базы двумя одновременно работающими серверами.

Если сервер завершился аварийно (например, при отключении электропитания), файл блокировки может остаться на диске. При следующем запуске сервер проверяет, жив ли записанный в нём процесс: устаревшая блокировка снимается автоматически. Сообщение о двойном запуске на работающем компьютере означает, что сервер на этой базе действительно уже запущен — ищите второй экземпляр (службу или консольное окно), а не удаляйте файл вручную.

7. Штатные операции обслуживания к оглавлению

7.1. Остановка и запуск сервера

Остановка — только штатная, кнопкой «Остановить сервер» в менеджере: сервер сохраняет план счетов на диск и завершается. Запуск — кнопкой «Запустить сервер». Возможна и остановка из клиентской программы (команда завершения работы сервера, доступная пользователю с соответствующими правами) — она равнозначна штатной.

Остановка кнопкой — остановка насовсем, даже при включённой гибернации (п. 5.7): по запросу клиента менеджер такую базу не запустит. В сон база уходит только сама, по таймауту гибернации.

Не завершайте процесс сервера принудительно (диспетчер задач, taskkill). Windows считает это сбоем (п. 3.4). При аварийном завершении теряются изменения плана счетов, сделанные за последнюю минуту (сервер сохраняет их автоматически, но не мгновенно) — восстанавливать их придётся из резервной копии (п. 8.1).

7.2. Обновление программы (замена исполняемых файлов)

Порядок обновления на новую версию:

  1. В менеджере остановите все серверы (работающая служба блокирует файлы программы — заменить их «на живую» не получится).
  2. Замените файлы Fbp.Server.exe и Fbp.Server.Manager.exe в каталоге программы новыми. Остальные файлы каталога (лицензия, список баз) не трогайте.
  3. Запустите серверы. Службы переустанавливать не нужно — они указывают на тот же путь программы.

7.3. Резервное копирование базы

Резервная копия базы — это копия всего каталога базы. Гарантированно целостная копия получается при остановленном сервере: остановите сервер, скопируйте каталог, запустите сервер. Каталог обмена в резервной копии не нужен — сервер создаст его при запуске, а находящиеся в нём файлы запросов и ответов ценности для восстановления не имеют.

Копирование при работающем сервере («на живую») тоже допустимо: журналы операций (*.F3P) записываются на диск сразу, а план счетов (ACNT.A3P) сервер сохраняет автоматически примерно через минуту после последнего изменения — «живая» копия отстанет от текущего состояния не более чем на эту минуту. Для регулярного копирования удобнее встроенное архивирование менеджера (п. 7.4): оно не требует остановки сервера и само дожидается свежего сохранения плана счетов.

Файл ACNT.BAK в каталоге базы — предыдущая версия плана счетов, сохраняемая сервером при каждой записи. Это не замена резервному копированию, но первая точка отката при повреждении основного файла (п. 8.1).

7.4. Автоматическое архивирование базы

Менеджер умеет сам архивировать базы по расписанию — сервер при этом не останавливается. Настройка — кнопка «Архивирование…» для выбранной базы:

Каждый архив — отдельный ZIP-файл с именем вида ИмяБазы-20260926-030000.zip (у инкрементных — с окончанием -inc). Архивы никогда не удаляются автоматически: очистка каталога архивов — вручную администратором (архивы могут дополнительно копироваться в другие места другими программами).

Архивирование выполняет сам менеджер — в том числе будучи свёрнутым в область уведомлений. Если менеджер в назначенное время не работал, архив создаётся при ближайшем его запуске.

Архивная пауза. Чтобы в архив не попала наполовину записанная операция, работающий сервер на время копирования встаёт на короткую паузу: дописывает текущий запрос, сохраняет план счетов, дожидается конца пересчёта баланса и перестаёт брать запросы. Менеджер копирует файлы базы во временный каталог рядом с архивами, снимает паузу — и только потом, уже при работающем сервере, упаковывает копию в ZIP. Пауза длится столько, сколько идёт копирование: секунды (около 10 секунд для полного архива базы в 1 ГБ, меньше — для инкрементного). Запросы клиентов, пришедшие во время паузы, не теряются: они ждут в каталоге обмена и выполняются сразу после неё; клиент лишь получает ответ чуть позже обычного. В окне менеджера состояние сервера в это время — «пауза для архива (запросы ждут)».

Для временной копии в каталоге архивов нужно свободное место размером с архивируемые файлы (на время архивирования). Файл, занятый в момент копирования, пережидается и копируется повторно.

Кнопка «Архивировать сейчас» в окне настроек создаёт архив немедленно, вне расписания. Колонка «Архив» в списке баз показывает настройку и время последнего архива; при сбое архивирования по расписанию менеджер показывает уведомление от значка в области уведомлений.

Если баз несколько и наборы файлов у них одинаковые, списки не нужно вводить заново для каждой базы: настройте их один раз, а в остальных базах нажмите «Скопировать списки из другой базы…» и выберите готовую. Копируются оба списка — и «что записывать в архив», и исключения. Если списки базы уже заполнены, программа спросит: заменить их скопированными или добавить недостающие строки к имеющимся. Скопированные списки дальше живут своей жизнью — изменение одной базы не влияет на другие.

Восстановление из архива: остановите сервер, распакуйте ZIP в каталог базы (пути внутри архива — относительные), запустите сервер. Если пользуетесь инкрементными архивами, сначала распакуйте последний полный архив, затем инкрементные — по порядку их создания.

7.5. Перенос базы на другой компьютер

  1. Остановите сервер на старом компьютере.
  2. Установите программы сервера и менеджера на новом компьютере (раздел 3).
  3. Скопируйте каталог базы целиком на новый компьютер. Каталог обмена копировать не обязательно — сервер создаст его при запуске; если копируете, удалите из него все файлы запросов и ответов.
  4. В менеджере на новом компьютере добавьте базу, укажите каталоги, установите службу.
  5. Настройте общий доступ к каталогу обмена для клиентов и перенастройте клиентские программы на новый путь.
  6. Запросите у поставщика лицензию на новый компьютер (п. 4.4) и установите её.
  7. Запустите сервер и проверьте работу клиентов. Только после этого снимайте старый сервер с эксплуатации.

7.6. «Текущий» месяц сервера и файл M_PLUS

Сервер считает «текущими» календарные день и месяц. Работающий круглые сутки сервер сам замечает смену суток: в полночь он обновляет дату и перезагружает базу знаний — так же, как по команде W OFF (сохраняет план счетов, перечитывает права и деревья, пересчитывает баланс). В журнале сервера появляется запись «Смена суток: ДД.ММ.ГГГГ -> ДД.ММ.ГГГГ», при смене месяца — с пометкой «новый месяц». Пока идёт пересчёт (на больших базах — до минуты), запросы клиентов ждут; счётчики запросов в окне менеджера обнуляются. Если в полночь сервер находится в состоянии W ON или клиент держит монополию (M ON), смена откладывается до их окончания (в журнале — запись «отложена»). Перезапускать сервер ежесуточно не нужно.

Вводить операции в будущем месяце сервер не даёт: клиент получает ответ «E-70: нельзя вводить операции в будущий месяц». Когда нужно заранее работать в следующем месяце (например, в конце сентября уже оформлять октябрь), в каталоге базы создаётся текстовый файл M_PLUS с единственным числом — на сколько месяцев вперёд сдвинуть «текущий» месяц. В обычной эксплуатации этот файл не нужен — не создавайте его без необходимости.

Как действует M_PLUS:

Убирать или уменьшать M_PLUS можно только тогда, когда календарь догнал месяцы, в которых уже введены операции. Пример: при M_PLUS = 1 в октябре успели ввести операции ноября, а затем файл удалили. С обычной датой ноябрь становится «будущим», а сервер не может строить баланс, если в базе есть файл будущего месяца (это правило программы, данные при этом не портятся). Что происходит:

7.7. Обновление отчётных форм (*.rpt)

Отчётные формы лежат в каталоге базы как файлы *.rpt и обновляются простым копированием новых версий в этот каталог. Сервер замечает новые и изменённые формы сам (по дате и размеру файла) — перезапуск не требуется. Исключение — изменения в базовых библиотеках форм: они подхватываются перезапуском сервера. Правила написания форм — отдельная тема (руководство по языку форм), администратору достаточно уметь доставлять готовые файлы в каталог базы.

8. Неполадки и восстановление после сбоев к оглавлению

8.1. Отключение электропитания, аварийное завершение, сбой сервера

Система проектировалась с расчётом на внезапные сбои. Что происходит с данными:

Действия администратора после сбоя питания: просто запустите сервер (если для базы включён запуск при загрузке Windows — он запустится сам). После падения самого сервера (а не питания) сначала прочитайте журнал базы и выясните причину, и только потом запускайте. Сервер сам проверит целостность журналов, при необходимости откатит незавершённые служебные операции, загрузит базу и пересчитает баланс. Контроль: состояние «работает» в менеджере, отсутствие ошибок в сегодняшнем журнале.

8.2. «Застрявшие» файлы в каталоге обмена

Что видноЧто это значитЧто делать
Файлы .IN накапливаются, сервер работает Клиенты присылают запросы быстрее, чем сервер успевает (или идёт пересчёт) Ничего — сервер разберёт очередь сам. Следите за pending_requests в файле состояния
Файлы .IN лежат при остановленном сервере Запросы подложены, пока сервер был выключен Ничего — после запуска сервер обработает их в первую очередь
Файлы .BAD Карантин: сервер не смог обработать запрос технически (не удалось создать файл ответа — например, сбой диска или антивирусная блокировка). Запрос не потерян, но и не выполнен; событие записано в журнал Устраните причину (диск, права, антивирус), разберите содержимое .BAD (это текстовый файл запроса) и при необходимости выполните его повторно с клиентского рабочего места, затем удалите файл
В журнале «…будет обработан повторно» Редкий сбой при удалении отработанного запроса: тот же запрос выполнится ещё раз. Для изменяющих операций это может дать дубль операции Найдите в журнале запись о повторе, проверьте журнал операций на дубль и удалите лишнюю операцию штатными средствами клиента
Файлы .OUT копятся, клиенты не забирают ответы Клиентские программы закрыты, а их ответы остались Безвредно; можно удалить старые .OUT вручную

8.3. Сервер работает 30 минут и останавливается

Это ознакомительный режим: файл лицензии отсутствует. Установите лицензию (п. 4.3). Промежуточная остановка штатная, данные не страдают.

8.4. Сервер отказывается запускаться (отказ лицензии)

В журнале — «Сервер не лицензирован для этого компьютера (причина). Код компьютера: …», код завершения 4. Причины: лицензия выписана на другой компьютер (в том числе после переустановки Windows или замены оборудования) либо файл повреждён. Порядок действий — в п. 4.4.

8.5. Сервер остановился сам / не запускается

Последовательность разбора:

  1. Откройте сегодняшний журнал FbpServer-ГГГГ-ММ-ДД.log в каталоге базы и прочитайте последние строки — там записана причина.
  2. Проверьте типовые причины по таблице кодов завершения (приложение 10.3): демонстрационный таймер, отказ лицензии, двойной запуск, ошибка каталогов.
  3. Если причина неясна — сохраните журнал и обратитесь к поставщику (п. 8.6).

8.6. Сводная таблица «симптом → причина → действие»

СимптомВероятная причинаДействие
Красный значок менеджера, строка «работает, сигнал жизни устарел» Процесс сервера завис или еле работает; перегрузка диска/процессора Проверьте загрузку компьютера; если не проходит — остановите сервер из менеджера (если не останавливается — перезапустите службу) и запустите снова; сохраните журнал
Строка «работает, цикл завис (запросы ждут)» Рабочий цикл не продвигается при наличии запросов Перезапустите сервер кнопкой «Перезапустить сервер»; передайте журнал поставщику — зависание цикла не считается нормой
Служба остановлена, хотя её никто не останавливал Аварийное завершение (перезапуск при сбое по умолчанию выключен) либо штатная остановка (демо-таймер, команда из клиента) Смотрите журнал: конец сеанса всегда объяснён. Разберитесь в причине, затем запустите сервер; при повторении — поставщик
Запуск службы: «Служба не ответила на запрос своевременно» (ошибка 1053) Сервер отказался работать ещё до связи с Windows: база уже обслуживается другим экземпляром (код 3) или отклонена лицензия (код 4) Проверьте колонку «Служба Windows» («НА ЭТУ БАЗУ ЕЩЁ: …») и диспетчер задач — нет ли второй службы или консольного сервера на ту же базу; проверьте лицензию (п. 4.3)
«demo, осталось N мин» в колонке лицензии Нет файла лицензии Установить лицензию (п. 4.3)
Сервер не стартует, код 4 Лицензия чужая или повреждена Перевыпуск лицензии (п. 4.4)
Сервер не стартует, код 3 Базу уже обслуживает другой экземпляр Найдите и остановите лишний экземпляр (вторая служба, консольное окно)
Сервер не запускается: «Недопустимая ситуация: есть файл будущего месяца»; или в журнале работающего сервера — «Смена суток (…) не выполнена» Удалён или уменьшен файл M_PLUS, когда операции «вперёд» уже введены; либо часы компьютера переведены назад Верните прежнее число в M_PLUS (п. 7.6), проверьте дату компьютера; до этого работающий сервер не перезапускайте
Сервер не запускается или сразу останавливается; в журнале базы — «отказано в доступе» (или журнала нет совсем) У ограниченной учётной записи службы нет прав на папку базы, каталог обмена или папку программы Откройте «Доступ серверов к данным…»: у базы не должно быть «ВНЕ СПИСКА»; добавьте папку и нажмите «Применить» (п. 9.3)
После перезагрузки Windows сервер не запускается; каталог обмена — на виртуальном диске Диск создан заново, без папки обмена и прав; сервер стартовал раньше менеджера Запустите сервер из менеджера: он восстановит права и папку обмена перед запуском (п. 9.3); запись об этом — в журнале менеджера
Форма не может выгрузить файл в папку («отказано в доступе») Папка выгрузки не внесена в список папок, доступных серверам Добавьте её в окне «Доступ серверов к данным…» и нажмите «Применить»
Клиенты не получают ответы, сервер «работает» Обрыв доступа клиентов к каталогу обмена; антивирус задерживает файлы Проверьте сетевой доступ к папке и права (раздел 9); исключите каталог обмена из активной проверки антивируса
Файл ACNT.EMG в каталоге базы Было аварийное завершение с несохранёнными изменениями плана счетов Обратитесь к поставщику, приложите ACNT.EMG и журнал
Менеджер: «Не удалось прочитать реестр баз…» Повреждён файл списка баз FbpManager.bases.json Откройте файл в редакторе и исправьте ошибку (это текстовый JSON; рядом лежит резервная копия .BAK) либо подтвердите сброс при сохранении

8.7. Обращение к поставщику

Чтобы обращение было результативным, приложите:

9. Безопасность и права доступа к оглавлению

9.1. Два уровня прав

В системе два независимых уровня разграничения доступа, и важно их не путать:

9.2. Рекомендуемые права на каталоги

КаталогСервер (служба)АдминистраторПользователи (клиенты)
Каталог базыИзменение (выдаёт менеджер, п. 9.3)Полный доступ Доступа быть не должно — иначе данные можно изменить или повредить в обход сервера
Каталог обменаИзменение (выдаёт менеджер, п. 9.3)Полный доступ Создание и запись файлов запросов, чтение и удаление своих ответов. В целях порядка каждому клиенту рекомендуется свой подкаталог внутри каталога обмена — сервер обслуживает подкаталоги наравне с корнем
Каталог программы (exe, lic, json)Чтение (выдаёт менеджер)Полный доступ Не нужен

9.3. Учётная запись службы и доступ серверов к данным

Зачем. Отчётные формы умеют записывать, переименовывать и удалять файлы по любому пути. Под системной учётной записью Windows (так службы ФБП работали раньше) у сервера, а значит и у любой формы, полные права на компьютер: ошибка или злой умысел в форме может повредить что угодно. Поэтому службы ФБП работают под ограниченными учётными записями — у каждой службы своя запись NT SERVICE\<имя службы>. Пароля у неё нет, Windows создаёт её сама; по умолчанию прав у неё почти нет.

Как выдаются права. Менеджер создаёт на компьютере группу «Серверы ФБП» и включает в неё записи всех служб ФБП. Права выдаются группе — поэтому каждый сервер видит все разрешённые папки, и формы, выгружающие данные из других баз, работают как прежде. Всё делается из окна «Доступ серверов к данным…» (кнопка в главном окне):

Права меняются только на папках из списка: доступ сотрудников, архивов и других программ не затрагивается. Неизбежное свойство межбазовой работы: форма одной базы может изменить файлы другой базы из списка — страховка от этого — архивы (п. 7.4).

Каталоги обмена на другом диске, в том числе виртуальном. Каталог обмена часто держат на отдельном диске — нередко на виртуальном диске в памяти, чтобы обмен шёл быстрее. Серверу нужен доступ и к нему, поэтому папка обмена тоже должна быть в списке: «Предложить по списку баз» подбирает для неё отдельную строку (в списке она помечена «каталог обмена»). Особенности виртуального диска в памяти:

Сетевые папки. Права на папках другого компьютера менеджер выдать не может. Служба (под любой учётной записью — и ограниченной, и системной) обращается к сети от имени самого компьютера: в домене выдайте права на том сервере учётной записи компьютера (ИМЯКОМПЬЮТЕРА$), в рабочей группе такой доступ невозможен — держите базы и каталоги обмена на компьютере сервера. Буквы сетевых дисков (Z: и т.п.) службам не видны — указывайте путь вида \\компьютер\папка.

Если сервер под ограниченной записью не работает, а причину сразу устранить нельзя, кнопка «Вернуть системную запись…» в том же окне возвращает всем службам ФБП прежнюю системную запись (действует после перезапуска серверов). Сообщите о случае поставщику. Переустановка службы (смена гибернации, «Изменить базу…») выбранную запись сохраняет.

Службы, установленные файлом Install-FbpServer.BAT или предыдущими версиями менеджера, работают под системной записью; их переводит на ограниченные записи кнопка «Применить».

9.4. Антивирус

Каталог обмена — точка постоянного создания и переименования мелких файлов; активная проверка антивируса может заметно замедлять обмен и даже вызывать сбои (запросы уходят в карантин .BAD). Рекомендуется добавить каталог обмена в исключения активной защиты. Каталог базы сканируйте по расписанию вне рабочих часов.

10. Приложения к оглавлению

10.1. Состав каталога базы

Файл / шаблонСодержимоеМожно ли трогать
ACNT.A3PПлан счетов (счета и субсчета) Нет. Обслуживается только сервером
ACNT.BAKПредыдущая версия плана счетов (автоматическая резервная копия) Нет; используется для отката при повреждении основного файла
ACNT.EMGАварийное сохранение плана счетов при падении сервера Не удалять до разбора с поставщиком (п. 8.1)
CAS.RULДерево видов операцийНет
YYYYMM.F3PЖурнал операций одного месяца (например, 202609.F3P — сентябрь 2026)Нет
YYYYMM.F3P.BAKВременная резервная копия журнала месяца при служебной реорганизации; сервер убирает её сам при следующем запуске Нет
EXTRD.DATДисковые дополнительные параметры объектов учётаНет
*.rpt, *.libОтчётные формы и библиотеки форм (текст, кодировка CP866) Обновлять — да (копированием, п. 7.7); редактировать — только специалисту по формам
*.txaШаблоны первичных документовКак формы
_RIGHTS_.FBPСписок пользователей и их прав (до 1000 пользователей) Нет — управляется через клиентскую программу
FIN.LBLМетка (название) сервера, которое видят пользователи; первая строка, CP866 Можно изменить текстом в кодировке CP866 при остановленном сервере
M_PLUSСдвиг «текущего» месяца (п. 7.6) Только осознанно; действует после перезапуска
_STATUS_.FBPСигнал жизни сервера (п. 6.1) Только чтение
_BASEIMG_.FBPПолный образ базы для ускоренного запуска (гибернация, п. 5.7); записывается при каждой штатной остановке сервера, может занимать сотни мегабайт Нет; непригодный образ сервер отбрасывает сам
_SRVNEW_.LCKБлокировка от двойного запуска (п. 6.4) Нет; сервер управляет ей сам
FbpServer-ГГГГ-ММ-ДД.logЖурнал сервера за день (UTF-8); старые файлы не удаляются Чтение и периодическая архивация/чистка старых файлов — на усмотрение администратора
*.TMP (рядом с файлами данных)Незавершённая запись после внезапного сбоя; сервер убирает такие файлы при следующем сохранении/запуске Нет
Все двоичные файлы данных и большинство текстовых спецификаций — в кодировке CP866 (DOS). При просмотре «кракозябр» в обычном редакторе дело не в порче файла, а в кодировке: пользуйтесь просмотром с поддержкой CP866. Исключения — журнал сервера и файл состояния: они в UTF-8.

10.2. Состав каталога обмена

РасширениеКто создаётНазначение
.REQКлиентЗапрос в процессе записи (ещё не готов; сервер его не видит)
.INКлиентГотовый запрос; сервер забирает и удаляет его по выполнении
.ANSСерверОтвет в процессе записи (клиент его не видит)
.OUTСерверГотовый ответ; клиент читает и удаляет его
.BADСерверКарантин: запрос, который не удалось обработать технически (п. 8.2)

Имя файла (до точки) — случайный набор букв и цифр, выбираемый клиентом («канал» обмена). Подкаталоги внутри каталога обмена обслуживаются наравне с корнем — их используют клиенты для разделения своих файлов. Подкаталоги standby\<имя службы> создаёт менеджер: в них он на время запуска спящей базы укрывает пришедшие запросы (п. 5.7) — после подъёма сервера файлы возвращаются на место, вручную их трогать не нужно.

10.3. Коды завершения сервера

КодЗначениеЗамечание
0Штатное завершение: остановка из менеджера/SCM, Ctrl+C в консоли, команда завершения из клиента, истёк демонстрационный таймер Автоперезапуск службы не срабатывает
1Ошибка запуска: неверные параметры, не найден каталог базы, не удалось создать каталог обмена Причина — в сообщении на консоли/в журнале
2Аварийное завершение рабочего цикла (внутренняя ошибка) При несохранённых изменениях счетов создаётся ACNT.EMG; служба перезапускается автоматически, только если включён перезапуск при сбое (п. 3.4); передайте журнал поставщику
3Двойной запуск: базу уже обслуживает другой экземпляр сервера Найдите работающий экземпляр (п. 6.4). Службой Windows такой отказ выглядит как «служба не ответила своевременно» (1053)
4Отказ лицензии: файл есть, но не действителен для этого компьютера Перевыпуск лицензии (п. 4.4)

10.4. Параметры командной строки сервера

Fbp.Server.exe <каталог базы> <каталог обмена> [--log <каталог|файл>] …
ПараметрНазначение
<каталог базы>, <каталог обмена> Обязательные. При установке службы подставляются из данных базы в менеджере.
--log <путь>Другое расположение журнала (по умолчанию — каталог базы, файлы FbpServer-*.log).
--idle-exit-min NШтатная остановка после N минут без запросов — гибернация (п. 5.7). Менеджер прописывает этот параметр в службу автоматически по настройке «Гибернация базы…»; вручную не задавайте.
--once, --date, --factmonths, --hdbios, --servername, --no-base-image Диагностические и проверочные режимы; в обычной эксплуатации не используются. Не добавляйте их в параметры службы без указания поставщика.

При работе службой параметры видны и меняются в свойствах службы (путь запуска), но правильнее менять каталоги через менеджер: «Изменить базу…» → переустановка службы.

10.5. Глоссарий

ТерминЗначение
БалансИтоговые остатки и обороты по всем счетам, которые сервер держит в памяти в готовом виде и пересчитывает после каждого изменения данных.
ДирективаОдна команда в файле запроса (например, «зарегистрировать операцию», «выполнить форму»). Администратору синтаксис не нужен.
ГибернацияРежим сна без запросов: сервер останавливается при простое и поднимается автоматически по первому запросу клиента (п. 5.7).
КарантинПеремещение технически необрабатываемого запроса в файл .BAD с записью в журнал (п. 8.2).
Каталог обменаОбщая сетевая папка, через которую клиенты и сервер передают друг другу файлы запросов и ответов (п. 1.3).
Менеджер серверовОконная программа администратора Fbp.Server.Manager.exe (раздел 5).
Ознакомительный режимРабота сервера без файла лицензии: 30 минут, затем штатная остановка (п. 4.2).
План счетовСписок всех счетов и субсчетов базы — файл ACNT.A3P.
Сигнал жизниФайл _STATUS_.FBP, регулярно обновляемый работающим сервером (п. 6.1).
Служба Windows / SCMМеханизм фонового автозапуска программ в Windows; SCM (диспетчер управления службами) следит за службой и перезапускает её после сбоя.
ФормаОтчёт или диалог, файл *.rpt в каталоге базы, выполняемый сервером по запросу клиента.