|
|
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
Сегодня столкнулся с такой вот проблемой: При добавлении записи вылетела ошибка, что нельзя дублировать значение Primary key. Зашел я в базу, а там: значение primary key у последней вставленной записи и значение генератора различаются почти на 20, т.е. значение генератора на 20 меньше чем значение primary key у последней вставленной записи. И такая же фигня еще в 2-х таблицах. значение primary key генерится с помощью FIBPlus Сервер - FireBird 1.5.0.4306 ОС - Windows 98 Вопрос: кто-нибудь знает отчего такое может случиться и как вообще могли добавляться записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 10:55:32 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
Скорее всего был откат генератора, либо значения PK были присвоены искуственно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 11:05:03 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
2 Posco "искусственно " - в смысле не в программе а ручками например в IBExpert ? если так, то в принципе не может такого быть, юзеры так не умеют :) а в каких это случаях может быть откат генератора? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 11:10:21 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
а в каких это случаях может быть откат генератора? SET GENERATOR <Ваш генератор> TO <Новое значение>, И такая же фигня еще в 2-х таблицах ...и так еще для двух генераторов :) ...юзеры не умеют. Возможно было перемещение данных из другой системы, или что-то подобное. Чудес не бывает, а если и бывают, то тут наверное у разработчиков FireBird 1.5.0.4306 нужно спрашивать в чём дело ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 11:46:00 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
Posco а в каких это случаях может быть откат генератора? SET GENERATOR <Ваш генератор> TO <Новое значение>, И такая же фигня еще в 2-х таблицах ...и так еще для двух генераторов :) ...юзеры не умеют. Возможно было перемещение данных из другой системы, или что-то подобное. Чудес не бывает, а если и бывают, то тут наверное у разработчиков FireBird 1.5.0.4306 нужно спрашивать в чём дело ;) Генераторы в новое значение не устанавливались, и вообще логикой приложения измение значения генераторов не предусмотрено Данные ниоткуда не перемещались, а заводились с нуля, с момента эксплуатации приложения. Короче - чудеса, да и только. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 11:49:29 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
А где наращивается значение генератора ? И кто его инициирует ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 11:58:57 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
JohnmenА где наращивается значение генератора ? И кто его инициирует ? Для автоинкремента значения генератора использутся компонент pFIBDataSet. Он сам получает значение от генератора и естественно при этом оно увеличивается. Приложение где-то с месяц уже работает, и вот на тебе. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 12:12:22 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
>Senator Тогда предположение только одно: Где-то, кто-то/что-то пишет в таблицу не наращивая значения. Напр.другой компонент pFIBDataSet, в др.программе; "руками" добавили записей в тбл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 12:16:29 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
Johnmen>Senator Тогда предположение только одно: Где-то, кто-то/что-то пишет в таблицу не наращивая значения. Напр.другой компонент pFIBDataSet, в др.программе; "руками" добавили записей в тбл. руками точно никто писать не может - просто нет там соответсвующих инструментов, а остальное - будем проверять, но все-таки - месяц все работало прекрасно, и вдруг такое и еще: каждый день делались бэкапы, и если восстановить предпоследний бэкап, то в базе все нормально, а вот в последнем фигня такая получается :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 12:31:55 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
Кстати, я не совсем прав. Там же ещё PK на поле. Тогда однозначно - кто-то/что-то подправил значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 12:39:33 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
JohnmenКстати, я не совсем прав. Там же ещё PK на поле. Тогда однозначно - кто-то/что-то подправил значение. ну а если никто руками не мог подправить (я в этом на 100% уверен), то что же тогда еще может быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 12:47:08 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
Senator JohnmenКстати, я не совсем прав. Там же ещё PK на поле. Тогда однозначно - кто-то/что-то подправил значение. ну а если никто руками не мог подправить (я в этом на 100% уверен), то что же тогда еще может быть? Сбой по питанию, зависание сервера и т.д. Генераторы в этом смысле самые уязвимые, т.к. сброс их значений на диск идет не вместе с данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 14:22:04 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
>Senator Ещё маловероятное предположение - нарушения на странице генераторов. Возможные причины - постом выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 15:59:30 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
Такая фигня у меня случилась после того как вырубили электричество. Видимо и у тебя был какой-то сбой с питанием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 17:55:13 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
А всё потому, что надо было Forced Writes = True выставить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 18:12:19 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
JohnmenА всё потому, что надо было Forced Writes = True выставить :) В том то и проблема, что генераторы как бы под это не подпадают, данные то записались, а генераторы нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 18:19:31 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
>s999 Что значит "не подпадают" ? А если не пишем данные, а только знач.генераторов, тогда что ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 18:38:46 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
JohnmenЧто значит "не подпадают" ? А если не пишем данные, а только знач.генераторов, тогда что ? Не знаю, может в FB это поправили, но проблема была. Значения генераторов "не форсятся" на диск, а "сидят" в памяти, а на диск попадают по "своим правилам". Таким образом, возможна ситуация когда вставленные записи уже на диске, а "дернутые генераторы" туда попасть еще не успели. А пишем данные или только генераторы дергаем, здесь это непринципиально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 18:54:42 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
А что тогда транзакция? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 07:00:04 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
2 ENN: при чем здесь транзакция? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 07:02:47 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
Удивительно что никто так ничего и не сказал путного :-) На 97% заложусь было так: 1. Клиент пишет новые данные с дерганьем генератора 2. Данные сбрасываются в базу 3. Вырубается свет Самое интересное что страница генераторов по FW=On в 4306 сбрасывается по каким-то другим правилам (честно не помню точно по каким, хотя LOA полгода назад в конференции расписывал это дело). Короче фокус именно в том что страница генераторов пишется именно ПОЗЖЕ страницы данных (!!!). Вот тебе и глюк с генераторами. Тогда же во время обсуждения данной проблемы было выработано решение что сделать с генераторами и данной проблемой. Не знаю как в Yaffil, я за ним просто не слежу но думаю что там это тоже поправлено, а в FireBird 1.5.1 4481 эта проблема точно поправлена. Так что как говорится "просто переставь сервак". :-) P.S. Блин, и поменяй W98 на W2K!! Не думаю что это машина ниже Селерона и у нее мозгов меньше 128. Хотя могу и ошибаться однако. А то она тебе столько накрутит с базой что потом устанешь боротся просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 07:43:26 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
Извиняюсь по поводу фразы про путность. Спросонья некоторые сообщения пропустил :-) Сказили путного много, и даже про то что я описал сказал s999. И все-таки дабы избежать проблем - переставь версию FB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 07:47:50 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
JohnmenА всё потому, что надо было Forced Writes = True выставить :) Однако, Forced Writes = True Наверное s999 и andyshark правы, а сервак я уже переставил :) Спасибо всем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 08:43:58 |
|
||
|
глюк с генератором
|
|||
|---|---|---|---|
|
#18+
При FW=ON кеш сбрасывается на диск по коммиту транзакции. Т.к. генераторы лежат вне контроля транзакций, то их страницы могут быть записаны на диск несколько позже страниц данных (на это влияют особенности использования данного генератора из нескольких конкурентных транзакций). Соотв-но, при аномальном завершении процесса сервера часть информации по генераторам может быть потеряна. Начиная с FB 1.5.1 эта проблема устранена (то же самое относится к последним сборкам Yaffil) - теперь страницы генераторов всегда сбрасываются на диск не позднее данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 10:38:32 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32624360&tid=1578175]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
177ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 204ms |
| total: | 503ms |

| 0 / 0 |
