04.08.2011, 09:44 | #1 |
Участник
|
Проблема после установки AX2009 RU7
При запуске клиента:
Невозможно выбрать запись в Данные о компании (CompanyInfo). Название компании: , . База данных SQL обнаружила ошибку. Object Server 02: The database reported (session 3 (Admin)): [Microsoft][SQL Native Client][SQL Server]Invalid column name 'ORGANIZATIONLEGALFORM_RU'.. The SQL statement was: "SELECT TOP 1 A.NAME,A.ADDRESS,A.PHONE,A.TELEFAX,A.BANK,A.GIRO,A.REGNUM,A.DEL_SYSSIGNADMIN,A.COREGNUM,A.VATNUM,A.CURRENCYCODE,A.IMPORTVATNUM,A.ZIPCODE,A.STATE,A.COUNTY,A.COUNTRYREGIONID,A.TELEX,A.URL,A.EMAIL,A.CELLULARPHONE,A.PHONELOCAL,A.UPSNUM,A.NAMECONTROL,A.DEL_SYSSIGNSENDEMAIL,A.EUROCURRENCYCODE,A.KEY_,A.SECONDARYCURRENCYCODE,A.DVRID,A.LANGUAGEID,A.INTRASTATCODE,A.BRANCHID,A.VATNUMBRANCHID,A.IMPORTVATNUMBRANCHID,A.ACTIVITYCODE,A.STREET,A.CITY,A.CONVERSIONDATE,A.PAGER,A.SMS,A.ADDRFORMAT,A.DEL_REFZIPCODE,A.PACKMATERIALFEELICENSENUM,A.DEL_COMPANYSIACODE,A.DEL_PAYMITEMCODEID,A.BANKCENTRALBANKPURPOSECODE,A.BANKCENTRALBANKPURPOSETEXT,A.SHIPPINGCALENDARID,A.PLANNINGCOMPANY,A.TAXREPRESENTATIVE,A.DEL_VATNUM_TH,A.FALLBACKINVENTLOCATIONID,A.BANKACCTUSEDFOR1099,A.SOFTWAREIDENTIFICATIONCODE_CA,A.TEMPLATEFOLDER_W,A.FEATURES_W,A.USESEVERALADDRESSFORMATTYP8058,A.INN_RU,A.CODEOKDP_RU,A.CODEOKPO_RU,A.RESIDENT_W,A.IMNSCODE_RU,A.IMNSNAME_RU,A.KPPU_RU,A.PFREGNUM_RU,A.ESTATE_RU,A.BUILDING_RU,A.SETTLEMENTID_RU,A.STREETID_RU,A.FLAT_RU,A.TOWNID_RU,A.RALIENCORPCOUNTRY,A.RALIENCORPNAME,A.DEL_RGNICODE,A.OKATO_RU,A.RENTRYDATE,A.RFULLNAME,A.OGRN_RU,A.DEL_VATREGNUM_PL,A.FSS_RU,A.ORGANIZATIONLEGALFORM_RU,A.SUBORDINATECODE_RU,A.FSSACCOUNT,A.MODIFIEDDATETIME,A.DEL_MODIFIEDTIME,A.MODIFIEDBY,A.RECVERSION,A.RECID,A.DEL_LOGO FROM COMPANYINFO A WHERE ((DATAAREAID=?) AND (KEY_=?)) ORDER BY A.DATAAREAID,A.KEY_" Msg 207, Level 16, State 1, Line 1 Invalid column name 'ORGANIZATIONLEGALFORM_RU'. Msg 207, Level 16, State 1, Line 1 Invalid column name 'SUBORDINATECODE_RU'. Msg 207, Level 16, State 1, Line 1 Invalid column name 'FSSACCOUNT'. Проблемные поля относятся к SL2. Установлена з.п. от RU6. Повторение чеклиста обновления или синхронизация таблицы CompanyInfo или рестарт АОСа помогает на день. После этого - повторение. Клиент и приложение ...4570 Куда дальше копать? |
|
04.08.2011, 09:58 | #2 |
Участник
|
Судя по ошибке, у вас просто нет соотв. полей в БД. А в SqlDictionary они есть? Если есть, то лучше соотв. записи удалить, чтобы ядро могло синхронизировать AOT и схему данных в базе. А вообще, установка rollup'а с "неродным" SL2-слоем - штука небезопасная и требующая подъема части модификаций в rollup'е на CUS/USR-слой: как минимум часть стандартного приложения перестанет компилироваться из-за "пропавших" определений макросов в ClassDeclaration, "пропавших" значений енумов и т.п., также на SL2 могут "пропасть" некоторые изменения в коде, сделанные в rollup'е.
|
|
|
За это сообщение автора поблагодарили: Cheslav (1). |
04.08.2011, 10:06 | #3 |
Участник
|
|
|
04.08.2011, 10:16 | #4 |
Участник
|
Интересно, что такое происходит с приложением ночью...
|
|
04.08.2011, 12:12 | #5 |
Участник
|
Бывает еще такая засада: если таблица - в списке автоматически синхронизируемых при входе в Аксапту (см. \Classes\Application\syncApplTables), и в нее добавляются поля, то при синхронизации в текущей сессии поля появятся в базе, а если примерно в то же время запустится новая сессия, в которой новые поля в приложении еще "не видны", то эта сессия при синхронизации таблицы грохнет поля в базе. После этого сессия, которая уже "видит" новые поля в приложении, попытается выбрать их из базы, но вывалится ошибка, что новых полей в базе нет. Поэтому, если добавляются поля в таблицы, синхронизируемые при запуске каждой сессии, то это лучше делать, когда к базе больше не подключены другие клиентские сессии (и другие АОСы, если их несколько), и после изменения приложения поудалять кэши (auc-файлы) на всех клиентских машинах.
|
|
05.08.2011, 09:22 | #6 |
Участник
|
Вчера удалил все *.auc, перезапустил АОС. Сегодня снова ошибка.
Через репозитарий SqlDictionary не открывается. Та же ошибка про CompanyInfo. При просмотре SqlDictionary со стороны SQL - полей нет... |
|
05.08.2011, 11:20 | #7 |
Участник
|
|
|
05.08.2011, 12:35 | #8 |
Участник
|
Поубивал все индексы на приложении del *.*i
В понедельник посмотрим Раньше удалял только *.aoi |
|
05.08.2011, 14:28 | #9 |
Ищущий знания...
|
в папке, где лежат файлы приложения, есть батник delndex. Он удаляет все необходимые индексные файлы.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем Последний раз редактировалось lev; 05.08.2011 в 14:37. |
|
08.08.2011, 10:59 | #10 |
Участник
|
Удаление всех индексов не помогло... Куда еще копнуть?
|
|
08.08.2011, 12:04 | #11 |
Участник
|
Для начала нужно поймать "злодея", удаляющего поля:
1. Отследить отсутствие несанкционированных манипуляций с SysConfig 2. Попробовать логировать вызов Application / dbSynchronize 3. Сделать периодическое логирование сессий АХ в связке со SPID, плюс настроить Profiler на операции изменения структуры БД PS. А что ночью делает Admin в базе ? Еще можно посмотреть Журналирование изменений структуры БД и данных Последний раз редактировалось Alexius; 08.08.2011 в 12:16. |
|
11.08.2011, 10:14 | #12 |
Участник
|
Профайлер показал, что АОС в 9:40 сделал следующее:
X++: ALTER TABLE COMPANYINFO DROP COLUMN ORGANIZATIONLEGALFORM_RU, SUBORDINATECODE_RU, FSSACCOUNT |
|
11.08.2011, 11:09 | #13 |
Участник
|
А если по журналу работы пользователей посмотреть, кто в это же время работал в базе или, лучше, только-только логинился?..
|
|
11.08.2011, 11:37 | #14 |
Участник
|
Пользователей в этот момент гарантированно не было.
Есть другое наблюдение - АОС запустил синхронизацию примерно через 24 ч после того, как я запускал ее вручную, восстанавливая пропавшие поля... |
|
11.08.2011, 11:43 | #15 |
Участник
|
Ну как так не было пользователей? АОС вроде сам по себе на уже готовой базе синхронизации не запускает. Т.е. вот прям по журналу работы пользователей никто примерно в это время не логинился, никакие пакетные задания не запускались, через business connector никто не ломился?.. Чудес ведь не бывает
|
|
11.08.2011, 12:19 | #16 |
Участник
|
... вот и я раньше так думал
Видимо теперь АОС очень умный стал. |
|
11.08.2011, 12:58 | #17 |
Участник
|
Есть ли пакетные задания ?
Незавершенные чек-листы ? Еще можно временно лишить АОС прав на изменение структуры БД и посмотреть ошибки. |
|
|
За это сообщение автора поблагодарили: Cheslav (1). |
11.08.2011, 16:44 | #18 |
Участник
|
нет
нет Подложил в приложение заново файл axsl2.aod (при равенстве размеров содержимое различалось). Завтра посмотрю. |
|
12.08.2011, 11:07 | #19 |
Участник
|
Злодей найден!
Это второй экземпляр АОС на другом хосте, развернутый в свое время для тестирования, затем переведенный в режим disabled (или manual - точно не помню), и неожиданно оказавшийся automatic после обновления клиента на этом хосте до ru7. Думаю эта версия на 99%, в понедельник проверю. |
|
15.08.2011, 09:29 | #20 |
Участник
|
точно он
|
|
|
|