Добрый день! После обновления BPMOnline до версии 7.4.0.2924 при публикации объекта "Активности" появляется ошибка:

Ошибка сохранения: Ошибка операции. Для индекса "ID0d3c4WXcWBjpNl3fs9eZtd0" длина элемента индекса, равная 998 байт, превышает максимальную длину, равную 900 байт.
Внимание! Максимальная длина ключа - 900 байт. Индекс "ID0d3c4WXcWBjpNl3fs9eZtd0" имеет максимальную длину 1000 байт. Для некоторых комбинаций больших значений операции вставки или обновления не смогут быть выполнены.
Выполнение данной инструкции было прервано.

Есть ли возможность увеличить max допустимую длину ключа?

Нравится

21 комментарий

Спасибо за Ваше обращение. Мы зарегистрировали его в Службе технической поддержки и назначили специалиста, который сможет Вас компетентно проконсультировать по данному вопросу.

Здравствуйте, Игорь.
Попробуйте удалить данный индекс, он будет пересоздан при публикации объекта.

 
DROP INDEX ID0d3c4WXcWBjpNl3fs9eZtd0 ON Activity 

Если данная рекомендация не решит проблему, просьба более подробно описать изменения сделанные в объекте "Активность", в версии 7.4.0.2924 воспроизвести данную ошибку не удалось.

Дело в том, что это индекса и так не существует.

Ещё при выполнении обновления в лог WorkspaceConsole выпала такая ошибка:

Ошибка Activity: При выполнении действия обновления структуры схемы произошла ошибка "Ошибка операции. Для индекса "IkhyThNAkKdvUI2OBpbFwvp6Q" длина элемента индекса, равная 998 байт, превышает максимальную длину, равную 900 байт.
Внимание! Максимальная длина ключа - 900 байт. Индекс "IkhyThNAkKdvUI2OBpbFwvp6Q" имеет максимальную длину 1000 байт. Для некоторых комбинаций больших значений операции вставки или обновления не смогут быть выполнены.
Выполнение данной инструкции было прервано.", текст Sql сценария: "CREATE INDEX [IkhyThNAkKdvUI2OBpbFwvp6Q] ON [dbo].[Activity]([Title] ASC)"
--- Exception info ---
	Error: При выполнении действия обновления структуры схемы произошла ошибка "Ошибка операции. Для индекса "IkhyThNAkKdvUI2OBpbFwvp6Q" длина элемента индекса, равная 998 байт, превышает максимальную длину, равную 900 байт.
Внимание! Максимальная длина ключа - 900 байт. Индекс "IkhyThNAkKdvUI2OBpbFwvp6Q" имеет максимальную длину 1000 байт. Для некоторых комбинаций больших значений операции вставки или обновления не смогут быть выполнены.
Выполнение данной инструкции было прервано.", текст Sql сценария: "CREATE INDEX [IkhyThNAkKdvUI2OBpbFwvp6Q] ON [dbo].[Activity]([Title] ASC)"
	InnerException: Ошибка операции. Для индекса "IkhyThNAkKdvUI2OBpbFwvp6Q" длина элемента индекса, равная 998 байт, превышает максимальную длину, равную 900 байт.
Внимание! Максимальная длина ключа - 900 байт. Индекс "IkhyThNAkKdvUI2OBpbFwvp6Q" имеет максимальную длину 1000 байт. Для некоторых комбинаций больших значений операции вставки или обновления не смогут быть выполнены.
Выполнение данной инструкции было прервано.
------

Индекс ссылается на то же поле "Title".

Ещё вопрос: Каким образом отключить индексирование поля Title?

Настройки поля Title не менялись. В объекте "Activity" созданы три поля с префиксом "Usr". Но ошибка указывает именно на индекс поля Title , которого в БД не существует.

Выполнил следующий Sql-скрипт на своей базе и на чистой БД версии 7.4.0.2924

select max_length from sys.columns
where 
object_id = OBJECT_ID(N'Activity')
AND
name = 'Title'

результат один и тот же

max_length
1000

Может в этом дело?

Игорь, Вы пишите что запрос выполняли на чистой базе, можете воспроизвести ошибку на чистой БД?
Просьба предоставить или кейс воспроизведения ошибки, или схему объекта Активность на которой воспроизводится ошибка.

Пока могу предоставить для анализа md-файл объекта "Activity" из базы, на которую устанавливались обновления и есть эта ошибка. activity.rar

При обновлении чистой BPMOnline 7.4.0.2458_Omnichannel до версии 7.4.0.2924 ошибка не воспроизводится.
В проблемной БД есть активности, где значения поля "Заголовок"(Title) длиной 500 символам. При работе с этими активностями также возникает эта ошибка.

Игорь, проимпортировав Ваш объект на демо стенд 7.4.0.2924-Omnichannel-Softkey-RUS проблему воспроизвести не удалось, объект опубликовался успешно. Просьба уточнить Вы не изменяли тип данных столбцов объекта на тип данных большей длины. Это могло привести к данной ошибке согласно информации http://technet.microsoft.com/ru-ru/library/ms163207(v=sql.105).aspx

Нет. Длина столбца "Title" так и осталась 500 символов. Что самое интересное -это то, что:
1. Указанного индекса нет в БД.
2. Эта ошибка вылезла при обновлении BPMOnline до версии 7.4.0.2924. Вот лог:log_20141203_13094874.txt

Вот такая ошибка при публикации объекта "Активности":

Здравствуйте, Игорь.
Попробуйте удалить данный индекс, он будет пересоздан при публикации объекта.

Спасибо. помогло.

Добрый день,
Возникла аналогичная ошибка, индекса в базе нет, удалить через DROP INDEX не получается.
Объект сохраняется в метаданных, но при публикации выдает ошибку
1

Здравствуйте, Олег!

Попробуйте вывести список всех индексов в базе, чтобы удостовериться, что такого индекса действительно нету:

SELECT 
     TableName = t.name,
     IndexName = ind.name,
     IndexId = ind.index_id,
     ColumnId = ic.index_column_id,
     ColumnName = col.name,
     ind.*,
     ic.*,
     col.* 
FROM 
     sys.indexes ind 
INNER JOIN 
     sys.index_columns ic ON  ind.object_id = ic.object_id and ind.index_id = ic.index_id 
INNER JOIN 
     sys.columns col ON ic.object_id = col.object_id and ic.column_id = col.column_id 
INNER JOIN 
     sys.tables t ON ind.object_id = t.object_id 
WHERE 
     ind.is_primary_key = 0 
     AND ind.is_unique = 0 
     AND ind.is_unique_constraint = 0 
     AND t.is_ms_shipped = 0 
ORDER BY 
     t.name, ind.name, ind.index_id, ic.index_column_id 

Если нету, попробуйте сгенерировать метаданные для объекта и сгенерировать исходный код, после чего проверить повторно.

Добрый день, Андрей,
Проверил индекса действительно нет, сгенерировал метаданные для объекта и исходный код, но эффект тот же, индекс так и не появился, объект невозможно опубликовать, но он сохраняется, все бы ничего, но при попытке обращаться к новым полям в БП выдает ошибку "Элемент коллекции не существует"

Попробуйте создать индекс для данной таблицы с таким именем, на которое "ругается" при компиляции.

Была похожая ситуация, только с Constraint. Это помогло.

Создал индекс, теперь при публикации возникает следующая ошибка: "Ошибка
Ошибка сохранения: Ошибка операции: индекс или статистика с именем "IGNfQFgKE05l2MANQO3hW70nQsso" уже существует в таблица "dbo.Activity"."

Здравствуйте, Олег.

Напишите, пожалуйста, на support, - со ссылкой на копию базы, - попробуем разобраться.

Показать все комментарии