|
|
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
Коллеги! Никому не попадалясь такая ошибка? Один пользователь вставляет строку в таблицу, а у другого, при вставке в эту же таблицу, такая фигня выскакивает. Ошибка появляется не регулярно. [Sybase][ODBC Driver]Serialization failure: user 'Kilinskaya' has the row in 'TLK_O_demands' locked No changes made to database. INSERT INTO "DBA"."TLK_O_demands" ( "client_id", "direction_id", "status", "note" ) VALUES ( ?, ?, ?, ? ) ASA 5.5, PB 6.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2007, 14:05 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
DRod....'TLK_O_demands' locked No changes made to database. .... У тебя же написано - таблица залокирова. Почему - надо смотреть. Возможно в момент вставки строки триггером запускается какой-либо процесс ( или проверки, или записи, или ... ), который и локирует таблицу. Надо разбираться, а решение проблемы - скорее всего запись в таблицу имеет смысл сделать через процедуру, которая будет ждать, когда таблица освободится и локирование будет снято ( при условии, что локирование необходимо и прекращается после завершения процесса вставки строки ). Good Luck ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2007, 15:30 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
или просто не сделали коммит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2007, 16:14 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
Dmitry.или просто не сделали коммит Точно, хотя смущает : DRod... Ошибка появляется не регулярно.... Good Luck ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2007, 16:27 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
ChV Dmitry.или просто не сделали коммит Точно, хотя смущает : DRod... Ошибка появляется не регулярно.... Ну допустим есть два окна. В одном при сохранении есть коммит, в другом нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2007, 17:20 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky ChV Dmitry.или просто не сделали коммит Точно, хотя смущает : DRod... Ошибка появляется не регулярно.... Ну допустим есть два окна. В одном при сохранении есть коммит, в другом нет. Да ради бога. Пусть будет. Это же всё наши предположения, а что у него там, только он и сможет разобраться. Вообще понятно, что, если ошибка фиксируется, то это легкий случай и копать не трудно. Хуже, если ошибка проявляется только "в динамике", в реальной работе, при большой загрузке. Good Luck ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2007, 18:43 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
У sqlca или через что там идёт транзакция SQLCA.autocommit=true ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 15:04 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
Соединение в приложении: SQLCA.autocommit=false; option blocking=off; option isolation_level = 0; В DW под событие dberror стоит ROLLBACK; и сообщение "Повторите попытку...". Под кнопкой "Сохранить": ll_ret = dw.Update() if ll_ret <> 1 then MessageBox("Ошибка","Нельзя записать ЗАГОЛОВОК документа!) return end if COMMIT; Разные пользователи работают с этим DW. При одномоментном Update() пользователей: - либо всё нормально, - либо один из пользователей "намертво" блокирует таблицу и все остальные "сосут лапу", т.к. наступает событие dberror (см текст ошибки). Блокировка таблицы продолжается пока заблокировавший пользователь не выйдет из приложения, т.е. разорвёт соедиенение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 17:04 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
DRod wrote: > ll_ret = dw.Update() > if ll_ret <> 1 then > MessageBox("Ошибка","Нельзя записать ЗАГОЛОВОК документа!) Голосую: убить. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 17:14 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
Dim2000 DRod wrote: > ll_ret = dw.Update() > if ll_ret <> 1 then > MessageBox("Ошибка","Нельзя записать ЗАГОЛОВОК документа!) Голосую: убить. Posted via ActualForum NNTP Server 1.4 To Dim2000. Кого убить? Всем. Не можети ли такая ошибка возникать из-за нестабильности сети? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 17:21 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
Я думаю,что это блокировка в таблице кластерного индекса. Инсерт,по жизни,комманда лёгкая,если этот кластер не надо пересчитывать,он же должен быть отсортирован,а под ним ещё одна вспомогательная таблица-тоже сортируется.А селект,значит,тоже идёт по этому индексу,вот они там и стыкуются вмертвую. Я б посоветвал бы кластарный поменять на некластарный-так,для эксперемента,с понтом,чо будет.У некластерного индекса свои минусы есть,но он хоть дед блоки не генирирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 17:29 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
KOLCHOZ_POSTEVENTЯ думаю,что это блокировка в таблице кластерного индекса. Инсерт,по жизни,комманда лёгкая,если этот кластер не надо пересчитывать,он же должен быть отсортирован,а под ним ещё одна вспомогательная таблица-тоже сортируется.А селект,значит,тоже идёт по этому индексу,вот они там и стыкуются вмертвую. Я б посоветвал бы кластарный поменять на некластарный-так,для эксперемента,с понтом,чо будет.У некластерного индекса свои минусы есть,но он хоть дед блоки не генирирует. To KOLCHOZ_POSTEVENT. Спасибо. Попробую "поиграть" с индексами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 17:39 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
DRod wrote: > To Dim2000. Кого убить? Того, кто это написал. > Всем. Не можети ли такая ошибка возникать из-за нестабильности сети? Нет. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 18:03 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
DRod wrote: > To KOLCHOZ_POSTEVENT. Спасибо. Попробую "поиграть" с индексами. Ты бы хоть мозги для начала включил. Какие ещё в пятёрке кластерные индексы??? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 18:05 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
а как насчет уровня изолированости транзакций ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 18:48 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
Dim2000 DRod wrote: > To KOLCHOZ_POSTEVENT. Спасибо. Попробую "поиграть" с индексами. Ты бы хоть мозги для начала включил. Какие ещё в пятёрке кластерные индексы??? To Dim2000. А зачем тогда ты мне про них пишешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 19:33 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
+/-а как насчет уровня изолированости транзакций ? To +/-. Уровень изоляции - 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 19:34 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
DRod wrote: > To Dim2000. А зачем тогда ты мне про них пишешь? Я пишу??? Вообще-то про них писал KOLCHOZ_POSTEVENT, я же уверен в том, что это проблема кривонаписанного клиента, и сервер вообще трогать не надо. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 20:00 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
Релиационная база без кластерных индексов?Такое бывает? Допустим. А Primary Key там тоже нет?Так это тоже самое.Или почти тоже самое,за редким исключением. Можно,конечно,поискать проблемму на кляенте,но сообщение,вообще-то, от сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 09:18 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
To DRod <Censored> Тебе же указали, что перед месагой надо ролбэк вставить. <Censored> Модератор: Давайте, всетаки, будем сдерживать эмоции, ладно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 09:30 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
KOLCHOZ_POSTEVENT wrote: > Релиационная база без кластерных индексов?Такое бывает? Бывает. По факту - кластерные индексы появились в 8.0.2, у автора топика - пятёрка. > А Primary Key там тоже нет? Надеюсь, что у автора есть. Хотя таблицы без ПК не запрещены. > Так это тоже самое.Или почти тоже самое,за редким исключением. Обоснуй. Ответ "от обоснуя и слышу" не канает . Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 10:23 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
Не знаю,смогу ли. Тот учебник,по которому я держу свои базы,он про ASE. Наверное,для этой версии,что у автора, он не актуален. Переписываю от руки. Unique and Primary Key constraints both create a unique index,unique(констрейнт имеется в виду)alows null values,while primary key does not.Unless overriden with noncluctered or clustered,unique creates a non clustered index,and primary key a clustered index(except when a clustered index already exists). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 11:03 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
Давайте переведём для широкого пользователя. Unique констрайнт и Primary Key констрайнт оба создают уникальный индекс,Unique констрайнт позваляет вводить null,Primary Key нет.Если не отвергть (значения,по умолчанию в команде Alter Table)nonclusatred clustered ,то Uniqiue создаёт некластерный индекс,а primary кластерный(исключая случаи,когда кластерный уже существует). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 11:10 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
KOLCHOZ_POSTEVENT wrote: > Тот учебник,по которому я держу свои базы,он про ASE. Дальше можно читать только для общего развития, ибо обсуждается совсем другой продукт ;). Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 11:28 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
Я To DRod Тебе же указали, что перед месагой надо ролбэк вставить. To Я: Читай внимательнее. Я писал: "В DW под событие dberror стоит ROLLBACK; и сообщение "Повторите попытку..."." Т.е. если происходит ошибка - делается откат. Если нет ошибки - подтверждение транзакции. Первичный ключ на таблицу есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 12:02 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
Если его можно заменить каким-то индексом,который не подразумевает того,что он отсортирован-я бы посоветовал попробывать.Убрать совсем-разве что,если таблица небольшая-только для эксперемента,да и то не очень корректного-инсерты пойдут на ура,селекты будут застревать,но не смертельно,если таблица до 1000,так скажем.Мёртвых блокировок не то что бы не будет-скажем так,не должно быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 13:11 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
ищи кто кого блокирует на уровне базы. какая база-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 23:27 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
Если нет обработок по триггеру, через процедуру вставлять строки не хочется, а проблема не решается, то может все таки попробовать сделать то, что советовали в самом начале ? SQLCA.autocommit=True , ну и немного изменить обработку : DRodСоединение в приложении: SQLCA.autocommit=false; .... В DW под событие dberror стоит ROLLBACK; и сообщение "Повторите попытку...". Под кнопкой "Сохранить": ll_ret = dw.Update() if ll_ret <> 1 then MessageBox("Ошибка","Нельзя записать ЗАГОЛОВОК документа!) return end if COMMIT; .... Блокировка таблицы продолжается пока заблокировавший пользователь не выйдет из приложения, т.е. разорвёт соедиенение. Конечно не мое собачье дело, но если произошло событие "DBERROR", то есть необходимость в ROLLBACK ? Или необходимо обеспечивать запись только блока строк ? Во вторых, даже если autocommit=false, почему бы после этих операций не "разорвать соедиенение" самому, без выхода из приложения ? Да и воспользоваться, не SQLCA, а своей транзакцией, которую потом можно и уничтожить ( для гарантии :-) ) ? Transaction tran tran = CREATE Transaction ... tran.autocommit=false ... COMMIT USING tran; DISCONNECT USING tran; DESTROY tran И в третьих - у нас похожая проблема добавления связанных записей в нескольких таблиц, при которой происходить куча проверок, добавление вычисляемых значений, работа триггеров, при одновременной работе большого количества пользователей - успешно решается при использовании процедуры ( Microsoft SQL ). CREATE PROCEDURE .... ..... select @lock=1 while (@lock=1) select @lock=lock from aaaaaaa BEGIN TRANSACTION update aaaaaaa set lock=1 ..... if @@error<>0 begin Rollback transaction return end ....... update aaaaaaa set lock=0 ...... COMMIT TRANSACTION ...... GO Good Luck ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 10:28 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
Dmitry.ищи кто кого блокирует на уровне базы. какая база-то? См [4933666] вверху страницы: - В сообщении об ошибке указано имя пользователя, - Adaptive Server Anywhere 5.5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 13:36 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
DRod wrote: > - Adaptive Server Anywhere 5.5. Сразу видно глубину знаний (точнее, отсутствие таковой). Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 14:07 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
To Chv 1) SQLCA.autocommit=False. Это мне досталось о предыдущих поколений программистов, разрабатывавших данную корпоративную систему. "...Иных уж нет, а те - далече...". Боюсь поменять на autocommit=True. "...есть необходимость в ROLLBACK?...". А как же завершить транзакцию? Можно откат поставить после dw.Update(), но я ставлю в событие "DBERROR". 2) Пробовал уничтожать транзакционный объект. Не помогло. 3) Добавление записи не на уровне приложения (DataWindow), а на уровне базы данных (процедура), мне кажется самый перспективный путь решения моей проблемы. Буду пробовать... Спасибо за конструктивные предложения! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 14:33 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
DRod wrote: > 1) SQLCA.autocommit=False. Это мне досталось о предыдущих поколений > программистов, разрабатывавших данную корпоративную систему. "...Иных > уж нет, а те - далече...". Боюсь поменять на autocommit=True. И не нужно. Транзакции - вещь довольно полезная в хозяйстве ;). > Можно откат поставить после dw.Update(), но я ставлю в событие "DBERROR". Нужно поставить после Update(). Или вообще переписать эту халтуру на Embedded SQL. > 3) Добавление записи не на уровне приложения (DataWindow), а на уровне > базы данных (процедура), мне кажется самый перспективный путь решения > моей проблемы. Стрельба из пушки по воробьям. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 14:53 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
ChVесли произошло событие "DBERROR", то есть необходимость в ROLLBACK ? Или необходимо обеспечивать запись только блока строк ? Rollback всегда нужно делать после неуспешного dw.Update() (и не в dberror, а после Update() ) Это связано с тем, что в этом случае статусы измененных строк в DW не сбрасываются и если не сделать rollback, то при последующих Update() произойдет повторное проведение операций DML, что в случае Insert вызовет ошибку из-за дубля Primary key, а в случае Delete/Update - Row changed between retrieve and update (в DW с настройками update по умолчанию). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 15:07 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
то есть, кто то нажмет два раза сохранить и получит ту ошибку о которой идет речь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 15:16 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
1. "[Sybase][ODBC Driver]Serialization failure: user 'Kilinskaya' has the row in 'TLK_O_demands' locked" не помню такой ошибки. по моему это не родной АСА драйвер... что пользуем? 2. запустите утилиту dbwatch чтобы посмотреть коннекты и у кого сколько незакомиченых транзакций. альтернативная утилита для АСА 5.0 есть здесь 3. помнится в аса при определенном уровне чтения (isolation level) после ретрайва данных лочились записи. так что на "retrieve end" приходилось вешать роллбек или коммит. какой isolation level ? 4. если в DW стоит "Retrieve As Needed" то этот DW на ретрайве может блокировать строки т.к. держит открвтвм курсор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 16:37 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
To Dmitry 1) SQLDBCODE[-210]. ASA 5.5. 2) Спасибо за DbWatch+. 3) isolation level = 0. 4) "Retrieve As Needed" не указаною ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 19:05 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
Какой-то абсурд. Мы делаем коммиты там и роллбеки всякие а блокировки стоят намертво пока из приложения не выйдем? Так не бывает. Есть тут спецы по ASA которые в курсе как там с вложенными транзакциями. Такое можно было бы устроить с MSSQL если начать транзакцию, потом начать вложенную. но даже в этом случае при первом же ROLLBACK блокировки снимаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 19:32 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
DRod , начните с того, что научитесь стабильно повторять ошибку. В 90% случаев после этого будет ясно, что надо исправить. А пока ошибка нестабильна - это все гадание на кофейной гуще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 20:08 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
Не особо спец в ASA, но можно было бы проверить, что из блокировок используется на таблицу APL или Datarow ----------------------------------------------------------------------------- Главная деталь любой машины - голова ее владельца ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 09:53 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky ChVесли произошло событие "DBERROR", то есть необходимость в ROLLBACK ? Или необходимо обеспечивать запись только блока строк ? Rollback всегда нужно делать после неуспешного dw.Update() (и не в dberror, а после Update() ) Это связано с тем, что в этом случае статусы измененных строк в DW не сбрасываются и если не сделать rollback, то при последующих Update() произойдет повторное проведение операций DML, что в случае Insert вызовет ошибку из-за дубля Primary key, а в случае Delete/Update - Row changed between retrieve and update (в DW с настройками update по умолчанию). Неуспешные dw.Update() я отрабатываю, но спасибо, буду иметь ввиду. "Век живи - век учись, а ..." Good Luck ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 10:11 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
spas2001 wrote: > проверить, что из блокировок используется на таблицу APL или Datarow Блин. У человека SA 5.5, при чём тут все эти ASEшные заморочки??? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 10:17 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
ЗоринАндрей wrote: > Какой-то абсурд. Мы делаем коммиты там и роллбеки всякие а блокировки > стоят намертво пока из приложения не выйдем? Так не бывает. Мой опыт показывает, что блокировки там, где их не ждали, возникают по одной из 2 причин: 1) не сделан COMMIT/ROLLBACK после INSERT/UPDATE/DELETE; 2) временно поднят и не опущен уровень изоляции. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 10:44 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky DRod , начните с того, что научитесь стабильно повторять ошибку. Эх! Если бы я мог повторять ошибку, я бы конечно её нашёл и исправил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 15:07 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
DRodЭх! Если бы я мог повторять ошибку, я бы конечно её нашёл и исправил. Поставьте юзерам где наблюдаются ошибки и блокировки отладочную версию программы, где протоколируйте каждое действие юзера (пункты меню, действия с документами - открытие, создание, сохранения, выход без сохранения, и т.д. вплоть до изменения каждого поля), каждый messagebox. Потом по логу пытайтесь повторить и детализируйте лог если не удается повторить ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 16:40 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
Можно пойти и немного другим путем: найти все места в программе с операторами commit/rollback и протоколировать их вызов и какая ф-я вызывала. Потом после возникновения ошибки анализировать этот лог сравнивая его с логом полученным без ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 16:46 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
To Anatoly Moskovsky Спасибо. Буду записывать в лог контрольные точки с именами пользователей и компьютеров после: - begin transaction, - rollback, - commit. Затем буду анализирвать лог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 18:43 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
DRodБуду записывать в лог контрольные точки с именами пользователей и компьютеров после: - begin transaction, - rollback, - commit. Затем буду анализирвать лог. Есть еще места где commit/rollback происходят неявно - disconnect/re-connect/ и потенциально Execute Immediate (с DDL). У меня был случай, когда кодер вместо того, чтобы использовать специально выделенный метод of_getconnect, в котором сеансы повторно использовались, по незнанию использовал просто connect using. И другой код, в котором по ошибке не было commit, по случайности работал верно из-за неявного коммита при disconnect. Когда же код привели в соответсвие со стандартом, в том коде, где не было коммита вылезло непонятное поведение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2007, 00:03 |
|
||
|
Ошибка сериализации
|
|||
|---|---|---|---|
|
#18+
А ларчик вот так открывался: SQLCA.DBParm = "ConnectString='...' " + ",CursorLock='OptValue',CursorScroll='Dynamic' " В хелпе PB6.5 параметр соединения CursorScroll (ODBC) DBParm: Dynamic scrolling in SQL Anywhere 5.x and Watcom SQL 4.0b If you are accessing a SQL Anywhere Version 5.x or Watcom SQL Version 4.0b database and want to execute an embedded SQL FETCH FIRST, FETCH PRIOR, or FETCH LAST statement when you retrieve a row from a cursor, you must set CursorScroll to 'Dynamic'. Otherwise, the default for these DBMSs is to do forward scrolling (FETCH NEXT) only. Спасибо моему другу "Великому GAA"! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2008, 13:33 |
|
||
|
|

start [/forum/topic.php?all=1&fid=15&tid=1336821]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 407ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...