17.04.2008, 13:56 | #1 |
Участник
|
Data upgrade AX 3.0 SP6 -> AX 4.0 SP2: Ошибка запуска AOS поcле копирования данных
Задача - переход с AX 30 SP6 на AX 4.0 SP2 (SQL 2005 в обоих случаях).
Выполнил копирование данных при помощи AxDbUpgrade.exe. Запускаю AOS. На старте АОСа вылетает ряд ошибок. 1.Object Server 01: Dialog issued for client-less session 1: Error executing code: ClassFactory object not initialized. Stack trace (S)\Classes\ClassFactory\globalCache (S)\Classes\AppPlatform\construct - line 5 (S)\Classes\AppPlatform\isRunning - line 3 (S)\Classes\AppPlatformEvent\Application_dbSynchronizePre - line 11 (S)\Classes\Application\dbSynchronize - line 10 (S)\Classes\Application\syncApplTables - line 5 (S)\Classes\Application\new - line 6 Приложение было откомпилировано без ошибок на другой базе. Причина ошибки непонятна. 2. Object Server 01: Dialog issued for client-less session 1: User '-AOS-' is not authorized to insert a record in table 'SYSOCCCONFIGURATION'. Request denied. В SQL создан пользователь NT AUTHORITY\NETWORK SERVICE c ролями db_datareader db_datawriter db_ddladmin public. AOS запускается под тем же пользователем. Вполне стандартная схема. Что можете подсказать? |
|
17.04.2008, 14:21 | #2 |
Участник
|
Скорее всего есть модификации в классе ClassFactory в "ваших" слоях. Надо их убрать и попробывать еще раз.
|
|
17.04.2008, 16:09 | #3 |
Участник
|
Спасибо за совет.
1. В классе ClassFactory модификаций не было, но были в Application\dbSynchronize. Убрал - первая ошибка исчезла. 2. Руками вставил запись в SYSOCCCONFIGURATION по примеру рабочей базы. Запустить АОС получилось. Upgrade checklist открылся. Однако такая ручная махинация немного настораживает. |
|
17.04.2008, 19:21 | #4 |
Участник
|
Дело не в ручных махинациях, а, вероятно, в том, что дописанный код из системных классов надо было убрать загодя
Общая схема порядка обновления с АХ 3.0 на АХ 4.0 |
|
17.04.2008, 20:05 | #5 |
Участник
|
Однако не совсем понятно, почему этот же application нормально стартовал на базе 4.0 с демо датой.
|
|
20.04.2008, 02:26 | #6 |
Administrator
|
Цитата:
Вторая ошибка говорит исключительно о правах на базу (т.е. о БД), а они (БД) разные. Как говорится - чудес не бывает.
__________________
Возможно сделать все. Вопрос времени |
|
21.04.2008, 01:35 | #7 |
Участник
|
Спасибо за ответ.
Возможно к ночи туго соображаю, но не понял причины ошибок. Цитата:
Первая ошибка говорит о том, что либо не проводилась синхронизация, либо она была уже сделана на демо-данных
Возможен другой вариант выполнения? 2) Изначально на этом же сервере была установлена АХ 4.0 с демо датой (база demo40). После нескольких неудачных попыток запустить АОС на базе axdb40, попробовал запуститься на demo40. Получилось. Как синхронизация демо-данных базы demo40 влияет на старт на базе axdb40? Цитата:
Вторая ошибка говорит исключительно о правах на базу (т.е. о БД), а они (БД) разные.
Упустил какие-то настройки? Согласен абсолютно - чудес не бывает. Но что было упущено, либо сделано неправильно пока не понимаю. |
|
21.04.2008, 15:03 | #8 |
Administrator
|
1. При старте АОСа - Аксапта выполняет синхронизацию ряда таблиц без участия пользователя. Некоторые из них перечислены в методе Application.syncApplTables(). Поэтому она без участия пользователя использует dbSynchronize() (и прочие системные классы) - и тут нужно убирать свой код (если он ей мешает).
В уже отсинхронизированном приложении уже все готово - и синхронизация только "сверяет" структуру - поэтому даже если что-то не отработало - это не критично - главное - что структура нужная. 2. Ошибка говорит, что АОС не имеет прав на вставку записи. Значит что-то где-то не прописано. Ну из-за чего-то ругань ведь идет. Не из-за прав на запуск SP, а из-за вставки записи. Тут уже ничего не подскажешь - нужно рыть и в права в базе и смотреть пользователя, под которым запущен АОС и смотреть пользователя, под которым запущена БД и, может даже посмотреть указанную табличку - может к ней как-то криво права применились...
__________________
Возможно сделать все. Вопрос времени |
|
Теги |
ax3.0, ax4.0, upgrade |
|
|