AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.04.2011, 19:38   #1  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
DAX2009. Запороть приложение (слой)
В ходе переноса приложения с слоя на слой был изменен один из системных ConfigurationKey (BankExchRate_W). И все было нормально, пока не перезагрузился комп.
АОС больше не стартует вот с таким сообщением:
Цитата:
The description for Event ID ( 189 ) in Source ( Dynamics Server 10 ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. You may be able to use the /AUXSOURCE= flag to retrieve this description; see Help and Support for details. The following information is part of the event: Object Server 10: ; BankExchRate_W.
Попытка перекрыть тот же ключ на верхних слоях с обратной модификацией ничего не дала.
Удаление слоёв GLS, GLP тоже ничего не дало.

Как теперь из слоя убрать упоминание этого ключа?
Старый 19.04.2011, 19:43   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Wamr Посмотреть сообщение
Как теперь из слоя убрать упоминание этого ключа?
Восстановить из бэкапа.

Бага-га-га! (Злая шутка)
__________________
полезное на axForum, github, vk, coub.
Старый 19.04.2011, 19:45   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Если не ошибаюсь были какие то ключи командной строки для ax32.exe позволявшие запустить аксапту на кривом приложении, игнорируя ошибки, так сказать защищенный режим. Попробуйте поискать. Если получится запуститься то можно просто сделать поиск по аоту и вычистить нафиг все упоминания о ключе.
Старый 19.04.2011, 19:50   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Logger Посмотреть сообщение
Если не ошибаюсь были какие то ключи командной строки для ax32.exe позволявшие запустить аксапту на кривом приложении, игнорируя ошибки, так сказать защищенный режим.
вроде был ключик -repair
Ре-синхронизация системных таблиц на основании AOT
__________________
полезное на axForum, github, vk, coub.
Старый 19.04.2011, 20:45   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Я, помню, на трешке как-то запорол приложение, -repair не помогал. Все законилось тем, что смотрел на ошибки в логах и последовательно добавлял недостающие или сносил лишние поля в Management Studio
Старый 19.04.2011, 21:01   #6  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от mazzy Посмотреть сообщение
Это немного не то. Речь идет насколько я понимаю о повреждении приложения, а не базы. Хотя вдруг поможет.

Был какой-то ключ для трешки надеюсь в 2009-й его сохранили), который позволял стартовать в кривыми системными объектами (info, application и т.п.) Ну а если удалось стартовать то можно вычистить Utilelements и.т.п.
Старый 19.04.2011, 22:21   #7  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,490 / 1060 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Попробуй поиграться с табличкой SysConfig, сведения о ключах там.
Старый 19.04.2011, 22:30   #8  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
AOS падает на построении индексов (или сразу после), но точно ДО коннекта к базе.
---------
возможно, это фича защиты от взлома. Но кому теперь докажешь, что менял не по злому умыслу.

Последний раз редактировалось Wamr; 19.04.2011 в 22:33.
Старый 19.04.2011, 22:35   #9  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,892 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Еще можно попробовать стартовать AOS с параметрами lazyclassloading и lazytableloading.Они, вроде бы, позволяют стартовать AOS с сильно побитым слоем (сам не пробовал, читал во внутреннем DL, когда в Микрософте работал).
Правда есть нехорошее чуство, что их в версии 2009 убрали.
За это сообщение автора поблагодарили: Logger (3).
Старый 19.04.2011, 22:59   #10  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Не, вроде не убрали. Я в блоге EMEADAXSupport читал про эти ключи при загрузки xpo-шников. Вот, нашел запись:

http://blogs.msdn.com/b/emeadaxsuppo...-possible.aspx
__________________
С уважением,
Олег.
За это сообщение автора поблагодарили: Logger (3).
Старый 20.04.2011, 01:55   #11  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Можно еще попробовать "битое" приложение положить в old, а вместо него поднять последнюю резервную копию и сравнением выцепить недостающие изменения - я так понимаю, "спасти" требуется именно их. Может, на old-приложении "защита от взлома" в АОСе не сработает.

PS. А еще можно - на совсем крайний случай - запустить АОС под отладчиком, поставить точку останова на функции записи сообщения в eventlog, по стеку вызовов найти место, где он решает, что не будет запускаться, и попробовать его "обмануть".

Последний раз редактировалось gl00mie; 20.04.2011 в 02:02.
За это сообщение автора поблагодарили: titov (1).
Старый 20.04.2011, 09:20   #12  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от fed Посмотреть сообщение
Еще можно попробовать стартовать AOS с параметрами lazyclassloading и lazytableloading.Они, вроде бы, позволяют стартовать AOS с сильно побитым слоем (сам не пробовал, читал во внутреннем DL, когда в Микрософте работал).
Правда есть нехорошее чувство, что их в версии 2009 убрали.
Интересно, а есть где-нить полное описание этих ключей командной строки.
Например есть ли аналогичные -lazyXXXloading для других веток АОТ, например, для форм и отчетов?
И что конкретно делает этот ключ?
Он откладывает загрузку в память клиента узлов АОТ при старте и делает это по мере необходимости позднее ? Есть где-нибудь более подробное описание ?
Старый 20.04.2011, 09:54   #13  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,892 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от Logger Посмотреть сообщение
Интересно, а есть где-нить полное описание этих ключей командной строки.
Например есть ли аналогичные -lazyXXXloading для других веток АОТ, например, для форм и отчетов?
И что конкретно делает этот ключ?
Он откладывает загрузку в память клиента узлов АОТ при старте и делает это по мере необходимости позднее ? Есть где-нибудь более подробное описание ?
Не знаю, у меня нету описания, к сожалению. Но если посмотреть через Hex-Viewer на ax32serv.exe, то других lazy* ключей там нету...
Старый 20.04.2011, 10:11   #14  
titov is offline
titov
Участник
 
73 / 87 (3) ++++
Регистрация: 23.12.2005
Адрес: Казань
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Может, на old-приложении "защита от взлома" в АОСе не сработает
gl00mie прав на все 100% - в old защита от взлома отключена (проверено ах2009 ru5). Более того, если потом из old перенести в рабочую папку *.aod, axapd.aoi, то AOS стартует... до следующей реиндексации приложения.
За это сообщение автора поблагодарили: gl00mie (1).
Старый 20.04.2011, 10:11   #15  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Post
Цитата:
Сообщение от Wamr Посмотреть сообщение
AOS падает на построении индексов (или сразу после), но точно ДО коннекта к базе.
---------
возможно, это фича защиты от взлома. Но кому теперь докажешь, что менял не по злому умыслу.
Если про ключи -lazyclassloading -lazytableloading , то в статье How to: Create an Automated Build Process
есть скрипты интересные (возможно помогут восстановить):
Цитата:
@rem 11.0 Synchronize the Application Database
Код:
"%ClientInstallPath%\Bin\Ax32.exe -StartupCmd=Synchronize -lazyclassloading -lazytableloading -minimize"
@rem 13.0 Compile the Application
Код:
"%ClientInstallPath%\Bin\Ax32.exe -StartupCmd=CompileAll -lazyclassloading -lazytableloading -minimize"
 
@rem Copy the Compile log to the drop share.
copy /y "%ClientInstallPath%\Log\AxCompileAll.html" %DailyDropFolder%\Logs\AxCompileAll%Layer%.html
 
@rem Stop the AOS to be able to copy the layer.
net stop %AOSServiceName%
 
@rem Copy the layer to the drop share.
copy /y "%ApplicationInstallPath%\Appl\Standard\ax%Layer%.aod" %DailyDropFolder%
 
@rem Update the progress file.
del /q %DailyDropFolder%\BuildInProgress.txt
echo Completed>%DailyDropFolder%\BuildCompleted.txt
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.
За это сообщение автора поблагодарили: Logger (3).
Старый 20.04.2011, 10:42   #16  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Спасибо за ссылку.
Но все-таки там не описано зачем они нужны и как работают.
Просто приведен пример скриптов.
Кстати, ключ -minimize походу не работает. Окошко все равно открывается и получает фокус.
Старый 20.04.2011, 12:19   #17  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Всем спасибо за варианты, много интересного рассказали.

Напомню, что проблема на стадии запуска ax32serv, так что ключи и скрипты для ax32 никак не помогут.
Цитата:
Object Server 10: Configuration error. Illegal option specified: -lazyclassloading
Вариант titov, наверное может помочь, но я уже решил по другому.
Скопировал слой в приложение ax4... АОС запустился, клиент ax4 долго ругался, но до AOT допустил, где я радостно и грохнул перекрытые (2) конфигурационных ключика.

Измененный слой вернул (не забыв остановить АОС4) в "родное" приложение, где он теперь успешно работает.
Старый 20.06.2011, 17:22   #18  
Masel is offline
Masel
Участник
 
39 / 537 (18) +++++++
Регистрация: 19.09.2007
Может быть кому-то поможет. Есть еще один способ исправления ситуации "запоротого" слоя, когда не стартует АОС. Если вы поломали не самый верхний слой (usp) или у вас вообще нету этого слоя, то можно взять чистое приложение с этим usp слоем, подправить место поломки (например конфигурационный ключ) и закинуть полученный верхний слой в ваше проблемное приложение. Приложение стартанет, проблемный слой поправите, с верхнего слоя изменения удалите.

Например у нас разработка ведется на cus. Случайно запороли класс Application, АОС не стартует. Берем чистое приложение (или бэкап нашего), загружаемся на usp, сохранем на слое правильную версию Application, АОС стартует. Исправляем на cus ошибку, usp удаляем вообще.
Старый 20.06.2011, 17:31   #19  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Masel, для конфигурационных ключей это не работает.
Старый 20.06.2011, 17:39   #20  
Masel is offline
Masel
Участник
 
39 / 537 (18) +++++++
Регистрация: 19.09.2007
Да, может быть конкретно для ключей не сработает. Для этого случая не пробовал.
Когда с ключами была проблема, то вариант titov подошел.
Теги
aod, crash, startup command, баг, полезное, структура aod

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
DAX2009 не дружит с VS2010 oleg_e DAX: Администрирование 2 17.06.2010 10:34
Несколько АОСов и одно приложение Михаил Петрович DAX: Администрирование 4 09.04.2009 13:06
Пропал VAR слой PODOL DAX: Администрирование 6 13.02.2009 16:13
Вопросы по OLAP в DAX2009 oleg_e DAX: Функционал 9 10.12.2008 02:02
"Падающий" вниз слой ? renat DAX: Программирование 3 01.03.2004 08:10

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:20.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.