|
Загадка Serial
|
|||
---|---|---|---|
#18+
Сижу, чешу репу в непонятках. IBM Informix Dynamic Server Version 11.70.FC7 Имеется таблица с первичным ключом типа SERIAL Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Имеется процедура для обслуживания таблицы : Код: sql 1. 2. 3. 4. 5. 6. 7.
То есть portal_user_access_id в INSERT не указан и, стало быть, должен заполняться автоматически. И имеется java приложение, которое в логах записало call add_portal_user(22590083,...) WARN com.intercall.applications.owner.IOL.AceOwnerIOLDAO - persistIOLProfile() RETURN CODE= -268 MESSAGE=informix.pk_portal_us er_access [ownerNumber=xxxxxxx userTypeId 4 userName = 11111111 password = 222222 salt =xxxxxx externalOwnerId = 3333 2240 externalSystemId= 5] Код 268 - это 268 Unique constraint <constraint-name> violated. During execution of this statement, a duplicate value was introduced into a column or columns that a unique constraint protects. Вот этого я понять не могу. Ну ладно, допустим, кто-то загрузил в таблицу строку с PK = 100, например. Вперед по номеру. И мы, идя от 1, на очередном INSERTе на нее напарываемся. Но фишка с SERIAL в том, что после такой загрузки следующим значением автоматически становится 101, и мы не можем получить дупликат... Грешу на баг в обработке SERIAL в транзакциях, если такой имеется... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 08:08 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
ВыбегаллоСижу, чешу репу в непонятках. ... Грешу на баг в обработке SERIAL в транзакциях, если такой имеется... Репликация присутствует ? (HDR или ER) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 09:02 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
В SERIAL есть баг на фрагментированных таблицах после добавления очередного фрагмента. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 12:04 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
victor16ВыбегаллоСижу, чешу репу в непонятках. ... Грешу на баг в обработке SERIAL в транзакциях, если такой имеется... Репликация присутствует ? (HDR или ER) Присутствует HDR. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 17:48 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
IkirВ SERIAL есть баг на фрагментированных таблицах после добавления очередного фрагмента. таблица нефрагментированная : create table "informix".portal_user_access ... ) in brand_t extent size 7024 next size 32 lock mode row; ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 17:49 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
ВыбегаллоПрисутствует HDR. read/write или read/only ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 17:50 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
victor16ВыбегаллоПрисутствует HDR. read/write или read/only ? read only ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 18:07 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
Ошибка одноразовая или встречается постоянно? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 18:18 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
victor16Ошибка одноразовая или встречается постоянно? Одноразовая. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 18:55 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
Выбегалло, HADR не падал ? Есть ли возможность опустить хадр повторить операцию и поднять его по новой через восстановление. Ну и дурацкий вопрос - есть еще уникальные ограничения на таблицу? Ну или триггеры с вызовом хранимых процедур? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 19:05 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
cprВыбегалло, HADR не падал ? Есть ли возможность опустить хадр повторить операцию и поднять его по новой через восстановление. Ну и дурацкий вопрос - есть еще уникальные ограничения на таблицу? Ну или триггеры с вызовом хранимых процедур? Это продакшн, так что никто не даст экспериментировать. HDR не падал. Уникальный индекс только один. Триггеры есть, но в процедурах, навешенных на эти триггеры, нет INSERT в эту таблицу, и нет INSERT в другие таблицы с триггерами. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 19:15 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
А если не секрет, сколько записей в таблице? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 20:11 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
victor16А если не секрет, сколько записей в таблице? 1286999. О переполнении речь не идет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 20:27 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
Мдя, вроде все что знал про SERIAL, все спросил. Действительно похоже на баг. А дополнительные поля в таблице типа ER Shadow, Vercols присутствуют? В свое время у меня с ними было много мороки, вплоть до падения сервера. В качестве workaround могу посоветовать ON EXCEPTION. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 20:40 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
И еще пару слов. Решил освежить свои знания по SERIAL и к своему удивлению обнаружил: Inserting Values into Serial Columns v.11.70FC7 To insert a consecutive serial value Specify a zero (0) for the serial column in the INSERT statement. In this case, the database server assigns the next highest value. И ни слова о другом старом общеизвестном способе, когда в списке INSERT сериальное поле просто пропускается. Другими словами, сейчас для вставки следующего сериального значения нужно обязательно указать его в списке и передать значение 0. По крайней мере, так написано в документации по Вашей версии. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 22:04 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
victor16, А если поставить по умолчанию значение 0? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2013, 16:26 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
cprvictor16, А если поставить по умолчанию значение 0? Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2013, 17:18 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
Выбегаллоvictor16Ошибка одноразовая или встречается постоянно? Одноразовая. Опять произошла. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2013, 00:37 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
ВыбегаллоОпять произошла. Советую, таки, изменить код процедуры, типа: Код: sql 1. 2. 3. 4. 5. 6. 7.
Хуже точно не будет. Возможно, механизм инициализации переменных по-умолчанию имеет баг. Я вспоминаю, пару лет назад у меня встречалась такая же ситуация, правда, я не стал ее фиксить, поскольку программа была разработана таким образом, что в случае возникновения определенных ошибок, SQL-оператор тупо повторяется еще раз, если же ошибка возникает повторно, только в этом случае возникает exception (-746). В данном случае, повторное выполнение, как правило, должно быть успешным. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2013, 09:36 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
ВыбегаллоГрешу на баг в обработке SERIAL в транзакциях, если такой имеется... Не решился вопрос ? У меня похоже такая же беда, после отключения ER периодически возникает ошибка -268 на вставку 0 в SERIAL :( ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2014, 11:43 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
victor16периодически возникает ошибка -268 на вставку 0 в SERIAL Чаще всего встречается на вставку в таблицы, имеющие pending in-place alters. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2014, 13:26 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
victor16периодически возникает ошибка -268 на вставку 0 в SERIAL У меня вылечилось просто: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2014, 21:11 |
|
Загадка Serial
|
|||
---|---|---|---|
#18+
victor16victor16периодически возникает ошибка -268 на вставку 0 в SERIAL У меня вылечилось просто: Код: sql 1.
А что делает этот запрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2018, 12:33 |
|
|
start [/forum/topic.php?fid=44&msg=38420700&tid=1606738]: |
0ms |
get settings: |
23ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
590ms |
get tp. blocked users: |
1ms |
others: | 2387ms |
total: | 3080ms |
0 / 0 |