powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / глюк с генератором
25 сообщений из 32, страница 1 из 2
глюк с генератором
    #32622622
Senator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сегодня столкнулся с такой вот проблемой:
При добавлении записи вылетела ошибка, что нельзя дублировать значение Primary key. Зашел я в базу, а там: значение primary key у последней вставленной записи и значение генератора различаются почти на 20, т.е.
значение генератора на 20 меньше чем значение primary key у последней вставленной записи. И такая же фигня еще в 2-х таблицах.

значение primary key генерится с помощью FIBPlus
Сервер - FireBird 1.5.0.4306
ОС - Windows 98

Вопрос: кто-нибудь знает отчего такое может случиться и как вообще могли добавляться записи?
...
Рейтинг: 0 / 0
глюк с генератором
    #32622662
Posco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего был откат генератора, либо значения PK были присвоены искуственно.
...
Рейтинг: 0 / 0
глюк с генератором
    #32622688
Senator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Posco

"искусственно " - в смысле не в программе а ручками например в IBExpert ?
если так, то в принципе не может такого быть, юзеры так не умеют :)

а в каких это случаях может быть откат генератора?
...
Рейтинг: 0 / 0
глюк с генератором
    #32622807
Posco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в каких это случаях может быть откат генератора?
SET GENERATOR <Ваш генератор> TO <Новое значение>,
И такая же фигня еще в 2-х таблицах
...и так еще для двух генераторов :)

...юзеры не умеют.
Возможно было перемещение данных из другой системы, или что-то подобное.

Чудес не бывает, а если и бывают, то тут наверное у разработчиков FireBird 1.5.0.4306 нужно спрашивать в чём дело ;)
...
Рейтинг: 0 / 0
глюк с генератором
    #32622819
Senator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Posco а в каких это случаях может быть откат генератора?
SET GENERATOR <Ваш генератор> TO <Новое значение>,
И такая же фигня еще в 2-х таблицах
...и так еще для двух генераторов :)

...юзеры не умеют.
Возможно было перемещение данных из другой системы, или что-то подобное.

Чудес не бывает, а если и бывают, то тут наверное у разработчиков FireBird 1.5.0.4306 нужно спрашивать в чём дело ;)

Генераторы в новое значение не устанавливались, и вообще логикой приложения измение значения генераторов не предусмотрено

Данные ниоткуда не перемещались, а заводились с нуля, с момента эксплуатации приложения.

Короче - чудеса, да и только.
...
Рейтинг: 0 / 0
глюк с генератором
    #32622847
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где наращивается значение генератора ? И кто его инициирует ?
...
Рейтинг: 0 / 0
глюк с генератором
    #32622899
Senator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnmenА где наращивается значение генератора ? И кто его инициирует ?

Для автоинкремента значения генератора использутся компонент pFIBDataSet. Он сам получает значение от генератора и естественно при этом оно увеличивается. Приложение где-то с месяц уже работает, и вот на тебе. :(
...
Рейтинг: 0 / 0
глюк с генератором
    #32622914
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Senator

Тогда предположение только одно:
Где-то, кто-то/что-то пишет в таблицу не наращивая значения. Напр.другой компонент pFIBDataSet, в др.программе; "руками" добавили записей в тбл.
...
Рейтинг: 0 / 0
глюк с генератором
    #32622971
Senator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johnmen>Senator

Тогда предположение только одно:
Где-то, кто-то/что-то пишет в таблицу не наращивая значения. Напр.другой компонент pFIBDataSet, в др.программе; "руками" добавили записей в тбл.

руками точно никто писать не может - просто нет там соответсвующих инструментов, а остальное - будем проверять, но все-таки - месяц все работало прекрасно, и вдруг такое

и еще: каждый день делались бэкапы, и если восстановить предпоследний бэкап, то в базе все нормально, а вот в последнем фигня такая получается :(
...
Рейтинг: 0 / 0
глюк с генератором
    #32623008
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, я не совсем прав.
Там же ещё PK на поле. Тогда однозначно - кто-то/что-то подправил значение.
...
Рейтинг: 0 / 0
глюк с генератором
    #32623031
Senator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnmenКстати, я не совсем прав.
Там же ещё PK на поле. Тогда однозначно - кто-то/что-то подправил значение.

ну а если никто руками не мог подправить (я в этом на 100% уверен), то что же тогда еще может быть?
...
Рейтинг: 0 / 0
глюк с генератором
    #32623355
s999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senator JohnmenКстати, я не совсем прав.
Там же ещё PK на поле. Тогда однозначно - кто-то/что-то подправил значение.

ну а если никто руками не мог подправить (я в этом на 100% уверен), то что же тогда еще может быть?

Сбой по питанию, зависание сервера и т.д. Генераторы в этом смысле самые уязвимые, т.к. сброс их значений на диск идет не вместе с данными.
...
Рейтинг: 0 / 0
глюк с генератором
    #32623685
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Senator

Ещё маловероятное предположение - нарушения на странице генераторов.
Возможные причины - постом выше.
...
Рейтинг: 0 / 0
глюк с генератором
    #32624042
vovan1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такая фигня у меня случилась после того как вырубили электричество. Видимо и у тебя был какой-то сбой с питанием.
...
Рейтинг: 0 / 0
глюк с генератором
    #32624089
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А всё потому, что надо было Forced Writes = True выставить
:)
...
Рейтинг: 0 / 0
глюк с генератором
    #32624100
s999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnmenА всё потому, что надо было Forced Writes = True выставить
:)

В том то и проблема, что генераторы как бы под это не подпадают, данные то записались, а генераторы нет.
...
Рейтинг: 0 / 0
глюк с генератором
    #32624125
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>s999

Что значит "не подпадают" ?
А если не пишем данные, а только знач.генераторов, тогда что ?
...
Рейтинг: 0 / 0
глюк с генератором
    #32624142
s999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnmenЧто значит "не подпадают" ?
А если не пишем данные, а только знач.генераторов, тогда что ?

Не знаю, может в FB это поправили, но проблема была. Значения генераторов "не форсятся" на диск, а "сидят" в памяти, а на диск попадают по "своим правилам". Таким образом, возможна ситуация когда вставленные записи уже на диске, а "дернутые генераторы" туда попасть еще не успели. А пишем данные или только генераторы дергаем, здесь это непринципиально.
...
Рейтинг: 0 / 0
глюк с генератором
    #32624359
ENN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что тогда транзакция?
...
Рейтинг: 0 / 0
глюк с генератором
    #32624360
srf2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ENN:

при чем здесь транзакция?
...
Рейтинг: 0 / 0
глюк с генератором
    #32624377
andyshark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Удивительно что никто так ничего и не сказал путного :-)

На 97% заложусь было так:
1. Клиент пишет новые данные с дерганьем генератора
2. Данные сбрасываются в базу
3. Вырубается свет

Самое интересное что страница генераторов по FW=On в 4306 сбрасывается по каким-то другим правилам (честно не помню точно по каким, хотя LOA полгода назад в конференции расписывал это дело). Короче фокус именно в том что страница генераторов пишется именно ПОЗЖЕ страницы данных (!!!). Вот тебе и глюк с генераторами. Тогда же во время обсуждения данной проблемы было выработано решение что сделать с генераторами и данной проблемой. Не знаю как в Yaffil, я за ним просто не слежу но думаю что там это тоже поправлено, а в FireBird 1.5.1 4481 эта проблема точно поправлена. Так что как говорится "просто переставь сервак". :-)

P.S. Блин, и поменяй W98 на W2K!! Не думаю что это машина ниже Селерона и у нее мозгов меньше 128. Хотя могу и ошибаться однако. А то она тебе столько накрутит с базой что потом устанешь боротся просто.
...
Рейтинг: 0 / 0
глюк с генератором
    #32624379
andyshark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь по поводу фразы про путность. Спросонья некоторые сообщения пропустил :-) Сказили путного много, и даже про то что я описал сказал s999. И все-таки дабы избежать проблем - переставь версию FB.
...
Рейтинг: 0 / 0
глюк с генератором
    #32624445
Senator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnmenА всё потому, что надо было Forced Writes = True выставить
:)

Однако, Forced Writes = True

Наверное s999 и andyshark правы, а сервак я уже переставил :)

Спасибо всем
...
Рейтинг: 0 / 0
глюк с генератором
    #32624598
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При FW=ON кеш сбрасывается на диск по коммиту транзакции. Т.к. генераторы лежат вне контроля транзакций, то их страницы могут быть записаны на диск несколько позже страниц данных (на это влияют особенности использования данного генератора из нескольких конкурентных транзакций). Соотв-но, при аномальном завершении процесса сервера часть информации по генераторам может быть потеряна. Начиная с FB 1.5.1 эта проблема устранена (то же самое относится к последним сборкам Yaffil) - теперь страницы генераторов всегда сбрасываются на диск не позднее данных.
...
Рейтинг: 0 / 0
глюк с генератором
    #32624647
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>dimitr
>теперь страницы генераторов всегда сбрасываются на диск не позднее данных.

Т.е. раньше ?
:)
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / глюк с генератором
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]