Firebird: отложенная запись изменений на диск

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
Saltaev
Сообщения: 6
Зарегистрирован: 25 апр 2006, 13:24

Firebird: отложенная запись изменений на диск

Сообщение Saltaev » 27 июн 2006, 22:52

Сервер Firebird обслуживает кассовый терминал. Алгоритм печати чеков таков, что каждая следующая позиция чека печатается только после подтверждения транзакции в которой фиксируется факт печати предыдущей позиции. При обрыве подачи электропитания произошло следующее: чек отпечатался полностью и даже был закрыт и отрезан, т. е. как минимум подтверждены 3 транзакции, следующие друг за другом, однако в БД нет сведений о том что позиции чека были отпечатаны. Вероятность ошибки ПО весьма маловероятна - проверялось и не подводило.
Понятно, что Firebird "скидывает" информацию на диск о подтвержденных транзакциях с некоторой задержкой и судя по всему эта задержка может составлять несколько секунд.
Как эту задержку отменить или минимизировать?

Информация о версиях:
  • gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)
    Firebird TCP/IP server version LI-V1.5.2.4731 Firebird 1.5
    Kernel 2.6.9-1.667 on an i686
27.06.2006

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 27 июн 2006, 23:25

gcc version
при чем тут gcc? как бы, собирать FB для промышленного применения можно только если ты в себе и компиляторе уверен на 100%. В остальных случаях надо брать готовый дистрибутив.

Насчет "отложенной записи" - тебе надо проверить базу на предмет Forced Write Off (можно gstat -h, можно IBAnalyst-ом). Если оно так, переключить в ON командой gfix db.gdb -write sync, и проверить еще раз.

Saltaev
Сообщения: 6
Зарегистрирован: 25 апр 2006, 13:24

Сообщение Saltaev » 02 июл 2006, 12:14

kdv писал(а):при чем тут gcc?
Не, gcc используется для написания клиентской программы, в частности C++ драйвера Firebird. Сам Firebird указанной версии используется "как есть".

Ответить