none
SCSM Ошибка "Недопустимая длина массива знаков Base-64." при добавлении отчёта в избранные RRS feed

  • Вопрос

  • Коллеги, доброе утро.

    Столкнулся со странной ошибкой при попытке добавить отчёт SCSM в избранные отчёты. Настроил параметры отчёта, нажал добавить в "избранные", назвал отчёт следующим образом "Все инциденты находящиеся в работе с понедельника текущей недели по сегодняшний день" и нажал "ОК". Отчёт добавился в избранные, но при переходе на вкладку столкнулся с ниже приведённой ошибкой.

    Дата: 08.12.2011 10:06:11
    Приложение: System Center Service Manager
    Версия приложения: 7.0.6555.0
    Серьезность: Ошибка
    Сообщение: Недопустимая длина массива знаков Base-64.

    System.FormatException: Недопустимая длина массива знаков Base-64.
       в System.Convert.FromBase64String(String s)
       в Microsoft.EnterpriseManagement.UI.SdkDataAccess.DataAdapters.SrsDataAdapterBase.TryGetInstanceId(IDictionary`2 parameters, String& instanceId)
       в Microsoft.EnterpriseManagement.UI.SdkDataAccess.DataAdapters.EnterpriseFavoriteReportAdapter.GetDataFromSRS(ServiceManagerReportingGroup reportingGroup, AdapterQueryParameters queryParameters)
       в Microsoft.EnterpriseManagement.UI.SdkDataAccess.DataAdapters.SrsDataAdapter`1.DoAction(DataQueryBase query, IList`1 dataSources, IDictionary`2 parameters, IList`1 inputs, String outputCollectionName)
       в Microsoft.EnterpriseManagement.UI.SdkDataAccess.SdkNodeProvider.GetDataFromAdapter(Uri adapterAddress, IList`1 dataSources, IDictionary`2 parameters, IList`1 inputs)
       в Microsoft.EnterpriseManagement.UI.SdkDataAccess.SdkNodeProvider.GetNode(Uri providerRoot, NavigationModelNodeBase parentNode, String nodeName)
       в Microsoft.EnterpriseManagement.ConsoleFramework.NavigationNodeProvider.GetNode(Uri providerRoot, Uri nodeLocation)
       в Microsoft.EnterpriseManagement.ConsoleFramework.NavigationModelAdaptor.GetNode(DataQueryBase query, IDictionary`2 parameters)
       в Microsoft.EnterpriseManagement.ConsoleFramework.NavigationNodeProvider.GetNode(Uri providerRoot, Uri nodeLocation)
       в Microsoft.EnterpriseManagement.ConsoleFramework.NavigationModelAdaptor.GetNode(DataQueryBase query, IDictionary`2 parameters)
       в Microsoft.EnterpriseManagement.ConsoleFramework.NavigationNodeProvider.GetNode(Uri providerRoot, Uri nodeLocation)
       в Microsoft.EnterpriseManagement.ConsoleFramework.NavigationModelAdaptor.GetNode(DataQueryBase query, IDictionary`2 parameters)
       в Microsoft.EnterpriseManagement.ConsoleFramework.NavigationNodeProvider.GetNode(Uri providerRoot, Uri nodeLocation)
       в Microsoft.EnterpriseManagement.ConsoleFramework.NavigationModelAdaptor.GetNode(DataQueryBase query, IDictionary`2 parameters)
       в Microsoft.EnterpriseManagement.ConsoleFramework.NavigationModelAdaptor.DoAction(DataQueryBase query, IList`1 dataSources, IDictionary`2 parameters, IList`1 inputs, String outputCollectionName)
       в Microsoft.EnterpriseManagement.UI.DataModel.QueryQueue.StartExecuteQuery(Object sender, ConsoleJobEventArgs e)
       в Microsoft.EnterpriseManagement.ServiceManager.UI.Console.ConsoleJobExceptionHandler.ExecuteJob(IComponent component, EventHandler`1 job, Object sender, ConsoleJobEventArgs args)

    --------------------------------------------------------------------------------

    Анамнез:

    • Избранные отчёты с англ. наименованиями успешно создаются, добавляются во вкладку избранные и успешно работают;
    • Проблема с отчётами только с русскоязычным наименованием;
    • Проверил Collation SQL Server и БД Cyrillic_General_100_CI_AS, а Collation SSRS Latin_General_CI_AS_KS_WS (SSRS устанавливался в режиме Native в конфигурации по-молчанию);

    Есть мнение, что проблема в этом. При попытке сменить тип Collation SSRS  идёт отказ.

    Вопросы:

    • В Collation ли дело?
    • Как изменить тип Collation на уже установленном SSRS или его лучше переустановить (есть мнение, что понадобиться переустановка и DW)?
    • Как при переустановке только SSRS поведёт себя SM? (полагаю, что отчёты в DW отвалятся напрочь - могу и ошибаться);
    • Как удалить этот отчёт, вызывающий ошибки?
    • Есть ограничение на длинну наименования отчёта в SCSM или SSRS;
    • Как быть если пользователь хочет видеть длинные наименования отчетов;

     

     










    • Изменено Vitalishe 8 декабря 2011 г. 9:07
    8 декабря 2011 г. 6:13

Ответы

  • коллеги, в общем дело решеное.

    ПРИЧИНА:

    Не поддерживаются наименования отчётов на русском языке длиннее 20 символов (по крайне мере доказал на своем опыте 32, 28, 23 не вошло - ошибку см. выше.);

    Что делать:

    На сервере, где установлен DW заходим в консоль управления SQL сервер, находим в базе DWStagingAndConfig таблицу dbo.FavoriteReport. В ней выполняем запрос:

    SELECT * 
    FROM DWStagingAndConfig.dbo.FavoriteReport
    WHERE DWStagingAndConfig.dbo.FavoriteReport.FavoriteReportName='Имя_отчёта_вызывающего_ошибку'
    

    Находим в результатах поле FavoriteReportId и выполняем следующий запрос:

    DELETE FROM DWStagingAndConfig.dbo.FavoriteReport
    WHERE DWStagingAndConfig.dbo.FavoriteReport.FavoriteReportId=' FavoriteReportId_отчёта_вызывающего_ошибку';
    
    


    Обновляем закладку избранные отчёты (F5): отчёт вызывающий ошибку исчез.

     Ну и создавать короткие русскоязычные имена  для отчётов. Кстати, подобных проблема с англ. языком я так и не заметил.

     




    • Помечено в качестве ответа Vitalishe 8 декабря 2011 г. 9:57
    • Изменено Vitalishe 8 декабря 2011 г. 12:14
    8 декабря 2011 г. 9:56

Все ответы

  • судя по всему длиннее 64 символов, создал отчёт с именем "Тест" - всё норм; 
    8 декабря 2011 г. 9:07
  • коллеги, в общем дело решеное.

    ПРИЧИНА:

    Не поддерживаются наименования отчётов на русском языке длиннее 20 символов (по крайне мере доказал на своем опыте 32, 28, 23 не вошло - ошибку см. выше.);

    Что делать:

    На сервере, где установлен DW заходим в консоль управления SQL сервер, находим в базе DWStagingAndConfig таблицу dbo.FavoriteReport. В ней выполняем запрос:

    SELECT * 
    FROM DWStagingAndConfig.dbo.FavoriteReport
    WHERE DWStagingAndConfig.dbo.FavoriteReport.FavoriteReportName='Имя_отчёта_вызывающего_ошибку'
    

    Находим в результатах поле FavoriteReportId и выполняем следующий запрос:

    DELETE FROM DWStagingAndConfig.dbo.FavoriteReport
    WHERE DWStagingAndConfig.dbo.FavoriteReport.FavoriteReportId=' FavoriteReportId_отчёта_вызывающего_ошибку';
    
    


    Обновляем закладку избранные отчёты (F5): отчёт вызывающий ошибку исчез.

     Ну и создавать короткие русскоязычные имена  для отчётов. Кстати, подобных проблема с англ. языком я так и не заметил.

     




    • Помечено в качестве ответа Vitalishe 8 декабря 2011 г. 9:57
    • Изменено Vitalishe 8 декабря 2011 г. 12:14
    8 декабря 2011 г. 9:56
  • А все таки интересно, как это можно обойти. есть у кого идеи?


    • Изменено Vitalishe 8 декабря 2011 г. 14:58
    8 декабря 2011 г. 14:57