PowerPivot запланированное обновление данных не удается с ошибкой "Операция отсвечена"

Эта статья была написана Риком Andring,инженером по эскалации поддержки.

Симптомы

Предположим, что вы PowerPivot книгу с одним или более источниками данных и загрузите книгу в Microsoft SharePoint Server 2016. При запланив обновление книги, обновление не удается при следующей ошибке:

Операция была отсвеяна.

Если вы расширите историю обновления, вы заметите, что неудалось обновление источника данных в течение ровно 100 секунд.

страница обновления данных

Вы можете заметить, что некоторые из источников данных успешно или обновление обновляется с перерывами, если все источники данных обновляются менее чем за 100 секунд.

В журналах Единой службы ведения журнала SharePoint (ULS) вы видите фактическую ошибку, но кажется, что она не связана ни с чем значимым в качестве причины.

DateTime w3wp.exe (0x00000) 0x59D4 PowerPivot Service Data Refresh 99 High EXCEPTION: System.Net.WebException: The operation has timed out at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)

Скорее всего, в журналах событий приложений будет видно сопоставляются события (EventID: 5214).

Если у вас есть несколько книг, которые тянут из одного источника, и одна книга замедляет работу источника данных, это приведет к тому, что другие запросы будут ждать или замедляться (после 100-х), вы можете увидеть несколько книг сбой.

Причина

Эта проблема возникает из-за того, что SharePoint 2016 ограничивает PowerPivot одного источника данных сроком обновления 100 секунд.

Примечание

Это также может быть вызвано медленным или недооформленным источником данных, если вы считаете, что ваши данные должны быть освежающими в течение 100 секунд. Если вы тянете небольшой объем данных из сложного источника данных, который занимает много времени для запроса, можно рассмотреть альтернативные обходные пути, так как увеличение растянутого времени может оказаться не лучшим вариантом.

Временные решения

  1. Оптимизируйте запросы, чтобы работать быстрее.

  2. Запрос меньше данных.

  3. Добавьте оборудование в источник данных, чтобы быстрее обрабатывать запросы.

  4. Используйте PowerShell для увеличения параметров времени по умолчанию.

    • Запустите следующие команды в запросе PowerShell администратора SharePoint 2016, изменяя раздел "new_time_out_value" до нужного значения времени.

      $farm = Get-SPFarm
      
      #The time out value "new_time_out_value" is in milliseconds, so be very careful to not set it too low!!!
      
      $farm.Properties.Add("WopiProxyRequestTimeout", new_time_out_value);
      
      $farm.Update();
      
      #to double-check the setting (make sure it is of type Int32, otherwise you will need to remove the property an add it again
      
      $farm.Properties["WopiProxyRequestTimeout"].GetType()
      
    • Запустите следующую команду, чтобы установить другое значение в будущем или если у вас возникли проблемы с параметром.

      $farm = Get-SPFarm
      
      $farm.properties.Remove("WopiProxyRequestTimeout")
      
      $farm.Properties.Add("WopiProxyRequestTimeout", new_time_out_value);
      
      $farm.update()
      

Примечание

Увеличение значения этого времени на свой собственный риск! Мы понимаем, что новый выход по умолчанию очень низкий. Но вы также должны быть осведомлены о количестве данных, которые вы потянув против времени, которое необходимо принять, чтобы вытащить эти данные. Слишком высокая настройка этого времени и разрешение пользователям извлекать большие объемы данных могут вызвать проблемы с производительностью для PowerPivot, SharePoint и Office Online Server. Вы также будете ограничены периодами времени по умолчанию для SharePoint, SQL и внешних источников данных. Это значение не всегда может быть ответом. Существует больше вариантов обхода и оптимизации в зависимости от типа данных, которые вы тянете.