21.04.2005, 09:21 | #1 |
Участник
|
Проверка целостности
Спецы подскажите!
Такая ситуация: Была осуществлена сборка базы с новыми модификациями, вроде все данные на месте никаких ошибок при компиляции нет, решили для достоверности запустить: Основное\Проверка целостности копмании. Размер базы 1,5 Гб. Проверка шла 3 суток и не завершилась, я её прервал и решил её делать помодульно. Зависание проверки происходит на модуле Управление Запасами, пhичем что бы я не проверял: журналы, проводки, настройки... проверка не завершается по 3 суток. Вопрос: Можно ли прервать проверку насильно ,без потери данных? Почему проверка не завершается при таком малом объёме базы(процесс не висячий, производительность АОС и SQL не падает, даже пользователи в ней работают без особых неудобств)? Где посмотреть логи-чтоль или хоть какой-нибудь намек на поиск причин такого поведения? Всем заранее спасибо за ответы!!! coja@yandex.ru |
|
21.04.2005, 11:14 | #2 |
Administrator
|
Re: Проверка целостности
Цитата:
Изначально опубликовано coja
Можно ли прервать проверку насильно ,без потери данных? Цитата:
Изначально опубликовано coja
Почему проверка не завершается при таком малом объёме базы(процесс не висячий, производительность АОС и SQL не падает, даже пользователи в ней работают без особых неудобств)? Где посмотреть логи-чтоль или хоть какой-нибудь намек на поиск причин такого поведения?
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
21.04.2005, 12:09 | #3 |
Участник
|
Мы тоже столкнулись с подобной проблемой при проверке и корректировки запасов в наличии.
Конкретно в этом механизме обнаружилась интересная бага, которая долго работает вроде над построением прогресс-бара. При большом количестве номенклатуры время проверки-корректировки близилось к бесконечности. Мы это дело поправили. Что точно там было и где - я уже не вспомню, т.к. не разработчик, и давно это было . |
|
21.04.2005, 13:21 | #4 |
Участник
|
Попробовал по совету сделать:
Нажал Ctrl+Break, появилось окно, типа прервать операцию или нет, жму Shift+Нет и блин,ничё не происходит, то есть проверка продолжается дальше. |
|
21.04.2005, 14:42 | #5 |
Участник
|
Цитата:
жму Shift+Нет и блин,ничё не происходит, то есть проверка продолжается дальше.
Хотя я не уверен - могу ошибаться. Попробуйте разобраться с программистом. |
|
21.04.2005, 15:13 | #6 |
Участник
|
Всем спасибо, мы прервали проверку и она дала лог.
поставили точку останова и заново запустили заново и произошел останов с сообщениями Warning и показало в каких классах, отдал программерам. |
|
06.09.2006, 13:14 | #7 |
Участник
|
Цитата:
Сообщение от ToRo
Мы тоже столкнулись с подобной проблемой при проверке и корректировки запасов в наличии. Конкретно в этом механизме обнаружилась интересная бага, которая долго работает вроде над построением прогресс-бара.
При большом количестве номенклатуры время проверки-корректировки близилось к бесконечности. D. Higi Среда, 21 дек 2005 00:02:13 -0800 См. существующий запрос в техподдержку #8379426 ДЕЙСТВИЕ: Запущенная проверка целостности длится слишком долго (до нескольких дней). РЕЗУЛЬТАТ: Система будет заблокирована на это время. ПРИЧИНА: Проблема кроется в методе SysConsistencyCheck.kernelCheckRecords(), где после выполнения pack/unpack над объектом Query теряется отношение (relation) [между таблицами]. После этого все записи InventTable будут объединены (joined) со всеми записями InventTxt. При динамическом создании запроса методы SysQuery::countLoops() и SysQuery::countTotal() расчитывают неверное количество записей. Это происходит из-за потери отношений (relations) между таблицами в методе SysQuery::countPrim(). Такого не происходит в случае статических запросов. Запуск проверки целостности на запасах номенклатуры в наличии может занять слишком длительное время или даже привести к критической ошибке в Microsoft Axapta из-за того, что totalCount в градуснике (Progress) диалогового окна неправильно вычисляется в методе SysQuery::countTotal(). РЕШЕНИЕ: В Classes\SysQuery была добавлена установка свойства QueryBuildDataSource.Relations в true вместо следующей последовательности вызовов: DictRelation.loadTableRelation(tableId), QueryBuildDataSource.addRelation(DictRelation); Результат действия этих двух вызовов - создание отношения (relation) с указанной таблицей. Такое же поведение реализовано и на уровне ядра. Код до изменений (\Classes\SysQuery): X++: public static Query addTableRelation(Query query, tableId tableId) { Query retQuery = new Query(query.pack()); QueryBuildDataSource qbds1; QueryBuildDataSource qbds2; DictRelation dr; qbds1 = retQuery.dataSourceNo(1); qbds2 = qbds1.addDataSource(tableId); dr = new DictRelation(tableId); dr.loadTableRelation(qbds1.table()); qbds2.addRelation(dr); return retQuery; } X++: public static Query addTableRelation(Query query, tableId tableId) { Query retQuery = new Query(query.pack()); QueryBuildDataSource qbds1; QueryBuildDataSource qbds2; qbds1 = retQuery.dataSourceNo(1); qbds2 = qbds1.addDataSource(tableId); qbds2.relations(true); return retQuery; } Последний раз редактировалось gl00mie; 06.09.2006 в 15:06. |
|