|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
Может кто сталкивался.. внутри транзакции идет формирование документа с кол-вом строк порядка 600 (генерируем строку, привязываем к документу, сохраняем), через некоторое время на очередной строке выполнение прерывается ..ошибка при сохранении. На объеме записей порядка 200 - все ок, транзакция полностью завершается, документ формируется. На больших объемах - падает. Убираю транзакцию - все 600 строк генерируются, документ формируется без ошибок.. сижу чешу репу..что не так? (могу выложить пример кода) ----------------------------------------------- А мы тут плюшками балуемся... Аленочка тм ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2012, 08:34 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
Аленочка, для начала можете приложить код и текст ошибки ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2012, 09:29 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
помнится было что то такое, но смысл проблемы вроде сводился к тому что, транзакция была слишком большой, и вся информация по транзакции не умещалась в некий буфер, чтобы потом ее в случае чего откатить. боролись только уменьшением операций внутри одной транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2012, 10:17 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
Аленочка , Попробуйте: увеличить таймаут блокировок: Lock Timeout ; увеличить предел блокировок: Lock Threshold ; увеличить память для блокировок: locksiz . ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2012, 11:10 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
DAiMorтранзакция была слишком большой, и вся информация по транзакции не умещалась в некий буфер, чтобы потом ее в случае чего откатить. очень на это похоже DAiMorборолись только уменьшением операций внутри одной транзакции. какие именно операции вы имеете ввиду? сохранения? у меня в этом смысле код примитивный: генерим документ, в цикле создаем строки с привязкой к документу Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2012, 01:55 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
servit Попробуйте: увеличить таймаут блокировок: Lock Timeout ; увеличить предел блокировок: Lock Threshold ; увеличить память для блокировок: locksiz . попробую, только непонятно до каких размеров увеличивать значения. сейчас видимо выставлено все по умолчанию: Lock Timeout = 10 Lock Threshold = 1000 locksiz = 1179648 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2012, 02:14 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
действительно могло упереться в максимальное количество блокировок, но должно быть сообщение в cconsole.log ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2012, 08:47 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
Аленочка, GenericHeapSize (gmheap) тоже можно попробовать увеличить. locksiz Size (in bytes) of memory allocated for locks. The system rounds up the value to the next multiple of 64 kilobytes. The default is 1179648 bytes. (On the HP platform, the default is four times the usual default – 1179648*4 (4718592 bytes).) The range is 65536 bytes up to the gmheap size. If you need more room for the lock table, increase the GenericMemoryHeap size as well . If you edit this setting, you must restart Caché to apply the change. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2012, 10:40 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
Много лет назад проблема ограниченной памяти под блокировки уже обсуждалась с сотрудниками IS. Сначала c их стороны был контраргумент: плохо проектируете БД:) Вероятно, и Вам они сейчас сказали бы то же самое. То есть, в данном примере - блокируйте документ, а не записи, например (ведь записей может быть и 6000, и Ваши манипуляции с настройками ничего не дадут). Но, когда были приведены практические примеры, они пообещали увеличить максимальный размер оперативной памяти под блокировки. Это один из типичных примеров борьбы за производительность:) Размещать блокировки в глобали они категорически отказались, даже в режиме настройки. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2012, 15:48 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
Хрен бы с ним, документы и проектирование базы. Но апдейт больших таблиц без %nolock вообще не проходит. Тут уже вопрос к проектированию каше. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2012, 21:18 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
Блок А.Н.Хрен бы с ним, документы и проектирование базы. Но апдейт больших таблиц без %nolock вообще не проходит. Тут уже вопрос к проектированию каше. Если Вы под Cache понимаете, в данном случае, систему, управляющую "таблицами", то разработчику этой системы, конечно, уже труднее сказать "не правильно проектируете". Но он скажет, вероятно, "не правильно используете: блокируйте всю таблицу, а не каждую запись":) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2012, 23:05 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
update через sql автоматически блокирует каждую запись, если это принудительно не отключить. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2012, 05:28 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
Если расшифровать текст ошибки, то вот что пишет: --------------------------- Сообщение с веб-страницы --------------------------- Ошибка!(CreateJobCostingWBG): ОШИБКА #5803: Не удалось получить эксклюзивную блокировку --------------------------- ОК --------------------------- ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2012, 08:33 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
У нас по этой ошибке предпринимали: GenericHeapSize (gmheap) * 3 LockTableSize (locksiz) * 3 Попробуйте ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2012, 09:00 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
Блок А.Н.update через sql автоматически блокирует каждую запись, если это принудительно не отключить. Все это мало кого интересует. Автору темы важно, чтобы в данном конкретном случае как-то проскочило:) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2012, 11:27 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
Да и необязательно речь идет об sql update. Можно получить ту же ошибку, например, просто сохраняя объекты в транзакции ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2012, 12:31 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
БредятинаВсе это мало кого интересует. Автору темы важно, чтобы в данном конкретном случае как-то проскочило:) Ну собственно, ответ ясен - менять логику программы. Создание документа должно быть основано не на транзакции, а на статусах. Т.е. присваиваем документу "черновой" статус, лочим документ и вперед, без всяких транзакций. Если вдруг документ остался в неправильном статусе - значит с ним ошибка и надо откатывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2012, 16:40 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
Блок А.Н.БредятинаВсе это мало кого интересует. Автору темы важно, чтобы в данном конкретном случае как-то проскочило:) Ну собственно, ответ ясен - менять логику программы. Создание документа должно быть основано не на транзакции, а на статусах. Т.е. присваиваем документу "черновой" статус, лочим документ и вперед, без всяких транзакций. Если вдруг документ остался в неправильном статусе - значит с ним ошибка и надо откатывать. Почему создание. И редактирование тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2012, 19:14 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
Блок А.Н.БредятинаВсе это мало кого интересует. Автору темы важно, чтобы в данном конкретном случае как-то проскочило:) Ну собственно, ответ ясен - менять логику программы. Создание документа должно быть основано не на транзакции, а на статусах. Т.е. присваиваем документу "черновой" статус, лочим документ и вперед, без всяких транзакций. Если вдруг документ остался в неправильном статусе - значит с ним ошибка и надо откатывать. Потом понадобится удалить документ, и, возможно, выпадет та же ошибка Например, если Аленочка использует RelationShip типа Parent-Children ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2012, 05:55 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
Блок А.Н.update через sql автоматически блокирует каждую запись, если это принудительно не отключить. Каше блокирует одиночные записи до определенного значения (threshold), после которого блокирует весь глобал. Управляется через Код: sql 1.
По умолчанию если через sql или объектный доступ обновляется более 1000 записей, то блокируется весь глобал. Единственное эта система плохо работает с наследованием, специалисты IS предложили в том случае отказаться от использования блокировок и вручную блокировать самим записи. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 07:00 |
|
Timeout транзакции ?
|
|||
---|---|---|---|
#18+
D_De1mosБлок А.Н.update через sql автоматически блокирует каждую запись, если это принудительно не отключить. Каше блокирует одиночные записи до определенного значения (threshold), после которого блокирует весь глобал. Управляется через Код: sql 1.
По умолчанию если через sql или объектный доступ обновляется более 1000 записей, то блокируется весь глобал. Единственное эта система плохо работает с наследованием, специалисты IS предложили в том случае отказаться от использования блокировок и вручную блокировать самим записи. Небольшая путаница:) Между MUMPS (таблица блокировок относится именно к MUMPS) и одной из систем обработки и хранения данных (Cache), написанной на MUMPS. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 10:02 |
|
|
start [/forum/topic.php?fid=39&msg=38040827&tid=1557310]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
134ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 263ms |
total: | 510ms |
0 / 0 |