#0
by EuVod
на W2k terminal в dbf базе работают ~20-40 человек (когда как). Создают/Проводят доки и т.п. Часто при попытке интерактивного создания элемента справочника ругается на ошибку блокировки узканной таблицы и вылетает из 1С. Почему она не может просто дать отлуп (как например при ошибке захвата таблицы 1SJOURN)? и как с этим бороться. Время ожидания освобождения таблиц выставлено в 0, ибо иначе при активной выписке начинает "накапливаться очередь ожидающих" и база вообще стопориться.Посоветуйте возможно ли что-нибудь предпринять, (оставаясь на DBF7.7)
#2
by EuVod
может с тура туплю - но ничего не нашел...(ключевые слова LOCK, 1SDNLOCK, транзакция+вылет, блокировка)
#4
by EuVod
1. Ошибка транзакции .....2. Ожидание блокировки Журнала Транзакций ?3. выбрать конфигурацию сервера для 8.04. Вопрос 1 прямые запросы к периодическим реквизитам5. Зацените внешнюю компоненту (решение проблемы блокировок)6. Как вам работается в 8.0?вот и все что вылезло, и ничего полезного по сути. Почему возникают блокировки и т.п. я и так понимаю, но почему при попытке захвата залоченной таблицы 1SDNLOCK происходит вылет (это ведь не штатное поведение платформы?) и как этого избежать (если возможно) не ясно. В конце концов и при ошибке захвата 1SJOURN все отрабатывается нормально…
#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;КонецЦикла;Просто еще одно странное явление – при выходе пользователя из программы при том, что все окна закрыты, система спрашивает «закрыть документ?». И по ощущениям такая штуковина появилась после начала применения такого автоввода счетов фактур.
#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У самого как-то раз такое было при работе загрузки из банк-клиента.Больше не повторялось.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Внутреннее совместительство
- ДЛина кода справочника
- Отбор по реквизиту и "группы сверху"
- Соединить два табличных документа
- Недавно я создал сайт, оцените пожалуйста:)
- Сравнение дат в ASP
- Драйвера для ФР Прим 08ТК
- Запрос по журналу документов..
- как на форме установить фокус на элемент ?
- из 1С в Lotus Notes
- выгрузить инфу из отчета
- Выбор группы справочника в реквизит документа
- Скопировать таблицу из формы документа во внешнюю обработку
- v7: Календари в ЗиК 7.7
- Как присвоить дату реквизиту обработки 1С из vbs
- Надо сохранить в Excel число в текстовом формате, как?
- Как поставить пароль на обработку?
- Бюджетные обязательства
- Как в SQL хранятся перечисления?
- в терминале пропадает список баз