транзакция 1SDNLOCK и вылет из 1С #206820


#0 by EuVod
на W2k terminal в dbf базе работают ~20-40 человек (когда как). Создают/Проводят доки и т.п. Часто при попытке интерактивного создания элемента справочника ругается на ошибку блокировки узканной таблицы и вылетает из 1С. Почему она не может просто дать отлуп (как например при ошибке захвата таблицы 1SJOURN)? и как с этим бороться. Время ожидания освобождения таблиц выставлено в 0, ибо иначе при активной выписке начинает "накапливаться очередь ожидающих" и база вообще стопориться.Посоветуйте возможно ли что-нибудь предпринять, (оставаясь на DBF7.7)
#1 by Бит
Поиском по форуму пройдитесь
#2 by EuVod
может с тура туплю - но ничего не нашел...(ключевые слова LOCK, 1SDNLOCK, транзакция+вылет, блокировка)
#3 by Бит
например "блокировка транзакции"
#4 by EuVod
1. Ошибка транзакции .....2. Ожидание блокировки Журнала Транзакций ?3. выбрать конфигурацию сервера для 8.04. Вопрос 1 прямые запросы к периодическим реквизитам5. Зацените внешнюю компоненту (решение проблемы блокировок)6. Как вам работается в 8.0?вот и все что вылезло, и ничего полезного по сути. Почему возникают блокировки и т.п. я и так понимаю, но почему при попытке захвата залоченной таблицы 1SDNLOCK происходит вылет (это ведь не штатное поведение платформы?) и как этого избежать (если возможно) не ясно. В конце концов и при ошибке захвата 1SJOURN все отрабатывается нормально…
#5 by Lexusss
ВК, релиз, точные слова сообщения, вобщемРаздел 1 п 2,5,6
#6 by Эстет хренов
а причем тут таблицы справочника? если у тебя постоянно возникают ошибки блокировки таблиц SC*** то у тебя либо сверх-кривые справочники или, что более-вероятно, ветхое железо.и вообще см. , опиши внятно проблему.
#7 by EuVod
сорри если не вполне осветил. (со стороны виднее:)ВК не используются, релиз 23.пользователи жалуются на ошибки при работе со справочниками (и реже при записи нового документа). итак ситуация:пользователь заводит новый элемент справочника (интерактивно) (или записывает новый документ, в котором только что набил ТЧ из 200 строк).возникает окно с описанием ошибки: "ошибка блокировки, таблица 1SDNLOCK возможно используется друним пользователем".При нажатии на кн. ОК происходит вылет из 1С. (ни здрасьте ни до свидания). Юзер в восторге.Вопросы – почему происходит вылет, вместо корректного отката несостоявшейся записи элемента/документа? Возможно ли как-то этого избежать, или единственный способ – заведомая корректность индексов? (а если из-за этой траблы пользователь вылетает каждые 5 мин, запаришься гиговую базу индексить, да и остается вопрос почему был вылет в первый раз).Зачем вообще нужно захватывать таблицу DNLOCK при записи элемента справочника?Спасибо.
#8 by Эстет хренов
#==TABLE no 5 : Номеров документов# Name |Descr |Type[A/S/U]|DBTableName|ReUsableT=1SDNLOCK|Номеров документов |A |1SDNLOCK |1#-----Fields-------# Name |Descr |Type|Length|PrecisionF=DNPREFIX |Prefix object |C |28 |0F=DOCNO |Object No |C |24 |0#----Indexes------# Name |Descr |Unique|Indexed fields |DBNameI=DOCNO |Prefix+No |0 |DNPREFIX,DOCNOПервое поле - ид объекта, справочника или документавторое - номер последнего элементаПри начале создания объекта (справочника или документа )(интерактивном или программном) 1с прописывает в таблицу запись о задействованном номере. При записи созданного объекта сведения из таблицы 1sdnlock удаляются.Еще раз, какие характеристики сервера? что говорит perfmon?
#9 by EuVod
сервер - 2-х головый Xeon с HT (т.е. какбы 4 проца), 2Гига памяти, 10 рейд (SCSI).про то что коды не записанных элементов прописываются в DNLOCK я как-то не подумал:).что именно из показателей perfmon имеет значение?Может ли такая ситуация в принципе быть следствием некорректного кода? Например при закрытии проведенной (впервые) накладной программно создается и проводится на основании ее счет фактура. Может ли сложится ситуация когда при возникновении транзакции запись этой счет фактуры не возможна, соответствующая запись в DNLOCK «повисает»? код такой:УдачноСозданСчФ = 0;КонецЦикла;Просто еще одно странное явление – при выходе пользователя из программы при том, что все окна закрыты, система спрашивает «закрыть документ?». И по ощущениям такая штуковина появилась после начала применения такого автоввода счетов фактур.
#10 by EuVod
так пожалуй легче будет читаться:
#11 by Эстет хренов
я лично, стараюсь без особой нужды не пользоваться транзакцией в многопользовательских системах, она блокирует всю таблицу 1sdnlock запрещая создание ЛЮБЫХ объектов в базе.Попробуй переписать таким образом:
#12 by EuVod
11 - гм. интересно. спасибо - попробую.но все же как у других - 1С всегда вылетает при неудачной попытке захватить 1SDNLOCK или скажем на 25 релизе этого не происходит?
#13 by Lexusss
НЕ ИСПОЛЬЗУЙ блок НачатьТранзакцию/ЗафиксироватьТранзакцию в рамках Попытка/КонецПопытки
#14 by EuVod
правда не вов сех случаях можно обойтись без транзакции - иногда при неудаче надо столько откатыватсья хитрых действий, что кроме как поручить это дело механизму транзакция даже и не знаю..
#15 by EuVod
- Это не корректная конструкция? при исключении, транзакция не завершается корректно - фиксацией или откатом? буду переделывать...
#16 by СочинскийДед
http://www.forum.mista.ru/topic.php?id=110289&forum=1cУ самого как-то раз такое было при работе загрузки из банк-клиента.Больше не повторялось.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям