Вырубился FB SS 1.5.2 при обновлении большого колва инф.

Access Violation, некорректное выполнение запросов или вызовов API, ошибки утилит командной строки, в общем все, что вам мешает работать

Модераторы: kdv, dimitr

Ответить
DSKalugin
Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

Вырубился FB SS 1.5.2 при обновлении большого колва инф.

Сообщение DSKalugin » 09 фев 2005, 19:02

На сервере Вин2003 лежит 2е базы. С одной (складской БД) идет активная работа 8ми пользователей, а другая разрабатывается мною в данный момент
Только я работаю с разрабатываемой БД
Добавляю новые поля к одной из главных таблиц, используя IBExpert

Код: Выделить всё

ALTER TABLE SKLAD_NUMBERS
add PRESENCE SMALLINT default 0;
add MIN_ZAP SMALLINT default 0;
add ZAKAZANO SMALLINT default 0;
add OTLOJENO SMALLINT default 0;
add AVG_ZAK_PRICE TPRICE default 0;
add MIN_INDIV_NACENKA TPRICE default 0; 
add  MAX_INDIV_NACENKA  TPRICE default 0;
/* TPRICE = DOUBLE PRECISION  */
Все нормально.
Просматриваю содержимое таблицы, вижу что во всех новых полях значения NULL и пишу обновляющий запрос

Код: Выделить всё

update TABLE SKLAD_NUMBERS set
PRESENCE=0,
MIN_ZAP=0,
ZAKAZANO=0,
OTLOJENO=0,
AVG_ZAK_PRICE=0,
MIN_INDIV_NACENKA=0,
MAX_INDIV_NACENKA=0;
В этой таблице 2,5 млн строк. IBExpert подвисает, я понимаю, что это на долго и ухожу перекусить.
Через 3 мин ко мне прибегают с воплями "склад не работает" и уже успели передернуть свич.
Прихожу, FB уже работает, смотрю в логи винды:
------------------------------
log: Event Viewer -> Application

4:34:45 PM Source FirebirdGuardianDefaultIn
The description for Event ID ( 281 ) in Source ( FirebirdGuardianDefaultInstance )
cannot be found. The local computer may not have the necessary registry
information or message DLL files to display messages from a remote computer.
You may be able to use the /AUXSOURCE= flag to retrieve this description;
see Help and Support for details. The following information is part of the event:
Abnormal Termination: C:\Program Files\Firebird\Firebird_1_5\bin\fbserver.exe:
terminated abnormally (4294967295) and supply theD.

4:34:46 PM Source FirebirdGuardianDefaultIn
The description for Event ID ( 251 ) in Source ( FirebirdGuardianDefaultInstance )
cannot be found. The local computer may not have the necessary registry information
or message DLL files to display messages from a remote computer.
You may be able to use the /AUXSOURCE= flag to retrieve this description;
see Help and Support for details. The following information is part of the event:
Server Started: Guardian starting: C:\Program Files\Firebird\Firebird_1_5\bin\fbserver.exefile.
#
# There are three types of c(.


log: Event Viewer. -> System

4:34:46 PM Source Service Control Manager
The Firebird Server - DefaultInstance service terminated unexpectedly.
It has done this 1 time(s).

4:34:46 PM Source Service Control Manager
The Firebird Server - DefaultInstance service entered the running state.

4:34:46 PM Source Service Control Manager
The Firebird Server - DefaultInstance service was successfully sent a start control.

4:37:33 PM Source Tcpip
The system detected that network adapter \DEVICE\TCPIP_{EDF3E15E-D67B-4C5A-B442-6D1C7C9BEBD2}
was connected to the network, and has initiated normal operation over the network adapter.

это перегрузили свич

------------------------------------------
firebird.log

P4 (Server) Wed Feb 09 16:34:44 2005
The user defined function: UDF_CLEARSKLADCOD
referencing entrypoint: clearskladcod
in module: my_udf
caused the fatal exception: An exception occurred that does
not have a description. Exception number EEDFADE.
This exception will cause the Firebird server
to terminate abnormally.

P4 (Server) Wed Feb 09 16:34:44 2005
An exception occurred that does
not have a description. Exception number EEDFADE.
This exception will cause the Firebird server
to terminate abnormally.

P4 (Server) Wed Feb 09 16:34:44 2005
An exception occurred that does
not have a description. Exception number EEDFADE.
This exception will cause the Firebird server
to terminate abnormally.

P4 (Client) Wed Feb 09 16:34:45 2005
C:\Program Files\Firebird\Firebird_1_5\bin\fbserver.exe: terminated abnormally (4294967295)


P4 (Client) Wed Feb 09 16:34:46 2005
Guardian starting: C:\Program Files\Firebird\Firebird_1_5\bin\fbserver.exe
-----------------------------

Теперь самому стало ясно. Глюкнула моя UDF
и тригер не точно написал

Код: Выделить всё

CREATE TRIGGER SKLAD_NUMBERS_BU FOR SKLAD_NUMBERS
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
  NEW.clear_cod = udf_clearskladcod(SKLAD_NUMBERS.dirty_cod);

а надо бы сначала проверку на изменения поля сделать, чтобы не всегда вызывалась
 if (new.dirty_cod<>old.dirty_cod) then ...
end
UDFку буду потом копать, а пока исключу ее из работы

Вопрос пока писал, сам по логам нашол ответ.
Тогда другой вопрос:
А если бы я использовал архитектуру Классик, сам FB бы не умер?

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Re: Вырубился FB SS 1.5.2 при обновлении большого колва инф.

Сообщение Merlin » 09 фев 2005, 19:30

DSKalugin писал(а): А если бы я использовал архитектуру Классик, сам FB бы не умер?
Умер бы только тот процесс (коннект, пользователь) в результате деятельности которого взглюкнула вызванная UDF. Остальные ничего не заметили бы.

DSKalugin
Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

Сообщение DSKalugin » 09 фев 2005, 19:39

Это серьезный повод переходить на архитектуру Классик
Достаточно ли для этого заменить параметр запуска сервиса

C:\Program Files\Firebird_1_5_2\bin\fbserver.exe -s (на -с)?

П.С интуиция подсказывает

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 09 фев 2005, 20:23

DSKalugin писал(а):Это серьезный повод переходить на архитектуру Классик
Достаточно ли для этого заменить параметр запуска сервиса

C:\Program Files\Firebird_1_5_2\bin\fbserver.exe -s (на -с)?

П.С интуиция подсказывает
Я про запуск под Виндой ничего не не знаю, ибо последний раз запускал тама IB4 в 95-м году :) На Линуксе инстанс сервера классики под соединение поднимается xinetd по требованию клиента.

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

Сообщение kdv » 09 фев 2005, 20:34

под виндами классик это fb_inet_server.exe. и для него нет гардиана (не нужен). первый стартовавший процесс управляет запусками других процессов и перенаправляет коннекты к ним.

DSKalugin
Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

Сообщение DSKalugin » 10 фев 2005, 10:35

Спасибо, Merlin и kdv. Ваши рекомендации особенно ценные.
Принимаю решение переходить на Классик. Надежность Классика в данном случае важней незначительного преимущества СС в скорости(производительности).

В перспективе перенос на линукс.

Ответить