06.11.2024, 14:14 | #1 |
Участник
|
Обрезание поля таблицы (DAX2012)
Добрый день!
Уже какое то время периодически происходит странная вещь (по крайней мере для меня). При рестарте сервера, в таблице происходит обрезание поля Email в таблице SysUserInfo. Может быть кто-нибудь сталкивался с подобным или в курсе в чем причина? Со скуля получили следующий список сообщений. 1) ALTER TABLE "DBO".SYSUSERINFO ADD CONSTRAINT I_956USERIDX PRIMARY KEY CLUSTERED (PARTITION,ID) 2) DROP TABLE "DBO".SYSUSERINFO 3) EXECUTE SP_RENAME X956X, SYSUSERINFO 4) CREATE TABLE "DBO".X956X (ID NVARCHAR(8) NOT NULL DEFAULT '' ,DOCUHANDLINGACTIVE INT NOT NULL DEFAULT 0 ,DOCUTOOLBARBUTTONACTIVE INT NOT NULL DEFAULT 0 ,HELPMARKEMPTYLINKS INT NOT NULL DEFAULT 0 ,HELPTHEME NVARCHAR(10) NOT NULL DEFAULT '' ,EMAIL NVARCHAR(10) NOT NULL DEFAULT '' ,COMPILERTARGET INT NOT NULL DEFAULT 0 ,LANGUAGE NVARCHAR(10) NOT NULL DEFAULT '' ,SQMUSERGUID UNIQUEIDENTIFIER NOT NULL DEFAULT '{00000000-0000-0000-0000-000000000000}' ,SQMENABLED INT NOT NULL DEFAULT 0 ,DEFAULTCOUNTRYREGION NVARCHAR(10) NOT NULL DEFAULT '' ,EVENTPOLLFREQUENCY INT NOT NULL DEFAULT 0 ,EVENTPOPUPLINKDESTINATION INT NOT NULL DEFAULT 0 ,EVENTPOPUPDISPLAYWHEN INT NOT NULL DEFAULT 0 ,EVENTEMAILALERTSWHEN INT NOT NULL DEFAULT 0 ,EVENTPOPUPS INT NOT NULL DEFAULT 0 ,EVENTWORKFLOWTASKSINEMAIL INT NOT NULL DEFAULT 0 ,WORKFLOWLINEITEMNOTIFICATIONFORMAT INT NOT NULL DEFAULT 0 ,EVENTWORKFLOWTASKSINCLIENT INT NOT NULL DEFAULT 0 ,EVENTWORKFLOWSHOWPOPUP INT NOT NULL DEFAULT 0 ,DEVELOPERALIAS NVARCHAR(10) NOT NULL DEFAULT '' ,CHECKEXCHRATES INT NOT NULL DEFAULT 0 ,CLIENTMESSAGEOFF INT NOT NULL DEFAULT 0 ,ACTIVATERUNAS INT NOT NULL DEFAULT 0 ,RECVERSION INT NOT NULL DEFAULT 1 ,PARTITION BIGINT NOT NULL DEFAULT 5637144576 ,RECID BIGINT NOT NULL CHECK (RECID <> 0) ) |
|
06.11.2024, 18:52 | #2 |
Участник
|
У вас при рестарте аоса он пытается синхронизировать табличку SysUserInfo так как она прописана в списке синхронизируемых на старте таблиц :
\Classes\Application\getApplTables И при этом почему-то считает что длина поля в AOT не такая как в БД, поэтому и пересоздает табличку. А почему свистопляска с длиной поля, надо разбираться. Что за аос-то ? 1. Рабочий ? 2. Тест ? 3. Дев ? 4. Обычный рестарт ? или 5. после переноса рабочей базы в тестовое окружение.? попробуйте убрать табличку из перечня автоматически снхронизируемых. а еще на всякий случай грохните содержимое SysSqmSettings и рестартуйте аосы (может у вас кеши из разных окружений перемешиваются. чтобы этого не было guid-ы в этой табличке должны быть разные у всех инсталляций аксапты) |
|
07.11.2024, 10:13 | #3 |
Участник
|
Это происходит на разных АОСах: и тест, и прод. Обычный рестарт.
Из последнего что делалось перед рестартом, была увеличена размерность ЕДТ из договоров и произведена синхронизация данной таблицы. Но я очень сомневаюсь что это может быть взаимосвязано. Судя по тому что 80 символов превращаются в 10, складывается ощущение, что Система не видит связанный с полем ЕДТ и ставит ему базовые 10 символов. Я правильно понимаю, что при сравнении используется таблица SqlDictionary, или она в данной синхронизации не участвует? Просто если размер меняется изначально в этой таблице, можно было бы отловить что меняет запись. |
|
07.11.2024, 11:40 | #4 |
Участник
|
Цитата:
Сделайте полную синхронизацию везде и везде почистите SysSqmSettings А еще лучше отключить синхронизацию табличек на старте аоса. От него только тормоза. |
|
|
|