2012-05-15 1 views
5

Я нахожусь на Tridion 2009 SP1. В какой-то момент возможность просмотра очереди публикации для всех пользователей (т. Е. Не фильтров) просто перестала работать. В CM GUI получает ошибки тайм-аут:Невозможно получить список элементов очереди публикации. Время ожидания истекло

(80040E31) Timeout expired 
Unable to get list of publishing queue items. 

SQLUtilities.OpenRecordsetByStoredProcedure 
SystemDAL.GetListData 
SystemBLST.lObjListPublishTransactions 
SystemBLST.IBLSystemST_GetListData 
ManagementInfo.GetListPublishQueue 
Request.GetList 

Так что я попытался с помощью Публикацию Queue Manager PowerTool для очистки очереди, но это только бросает ошибку 500, что согласуется с наличием слишком много элементов в очередь.

Затем я попытался продувкой очереди с помощью TRIDION Purge Tool, но хрустит в течение нескольких секунд и возвращает ту же ошибку:

14-May-2012 21:10:12 Log cleared. 
14-May-2012 21:10:12 Purge action started at 14-May-2012 21:10:12 
14-May-2012 21:10:12 Keeping the last 5 versions. 
14-May-2012 21:10:12 Recursive mode: False 
14-May-2012 21:11:12 FAILED: <?xml version="1.0"?> 
<tcm:Error xmlns:tcm="http://www.tridion.com/ContentManager/5.0" ErrorCode="80040E31" Category="7" Source="Kernel" Severity="1"> 
    <tcm:Line ErrorCode="80040E31" Cause="false" MessageID="4613"><![CDATA[Unable to get list of publishing queue items.]]> 
     <tcm:Token>RESID_4485</tcm:Token> 
     <tcm:Token>RESID_15821</tcm:Token> 
    </tcm:Line> 
    <tcm:Line ErrorCode="80040E31" Cause="true"> 
     <![CDATA[Timeout expired]]> 
    </tcm:Line> 
    <tcm:Details> 
     <tcm:CallStack> 
      <tcm:Location>SQLUtilities.OpenRecordsetByStoredProcedure</tcm:Location> 
      <tcm:Location>SystemDAL.GetListData</tcm:Location>    
      <tcm:Location>SystemBLST.lObjListPublishTransactions</tcm:Location> 
      <tcm:Location>SystemBLST.IBLSystemST_GetListData</tcm:Location> 
      <tcm:Location>ManagementInfo.GetListPublishQueue</tcm:Location> 
     </tcm:CallStack> 
    </tcm:Details> 
</tcm:Error> 

события регистрирует все показывает ту же самую ошибку. О, да, я пытался перезапустить службы COM +, Publisher и Transport.

Похоже, что очередь публикации находится в недоступном состоянии. Не могли бы вы предложить, какова может быть причина или мой следующий шаг?

+1

Когда вы фильтруете список, вы получаете его правильно? –

+1

На большинстве пользователей - да. Тем не менее, когда я фильтрую себя (парня, который набрал очередь, опубликовав миллион элементов через пакетное задание), он также отключается. –

+0

Служебная информация (или ее отсутствие) обычно виновата в подобных ошибках. –

ответ

4

Есть несколько вещей, которые вы можете попробовать;

В коде:

  1. Reduce набор данных может быть определенные периоды времени (неделю, месяц)
  2. выбрать конкретные типы статистику (не удалось, успех и т.д.) один на один

Об инфраструктуре:

  1. Я не уверен, что вы пытаетесь сделать, но если вы просто удаляете транзакции, возможно, просто используйте инструмент очистки (но тогда, когда вы кодируете, я предполагаю, что он недостаточно умен для вашего случая использования)
  2. Используйте инструмент очистки, чтобы удалить старые транзакции, которые не имеют отношения к вашей учетной записи.
  3. Убедитесь, что база данных полностью оптимизирован
  4. (как упоминалось выше) увеличивают время выхода в оснастке Tridion Configuration
  5. Убедитесь, что у вас есть последние исправления для вашей версии Tridion (произошел ряд изменений в производительности очередей для обоих GA GA 2009 и SP1
  6. В общем, убедитесь, что аппаратное обеспечение
+0

+1 для «Использовать инструмент очистки для удаления старых транзакций», хотя Я подозреваю, что он достигнет того же таймаута. –

+0

Hi Nickoli. Знаете ли вы, какой предмет или какая комбинация предметов, из перечисленных, исправили проблему? У нас такая же проблема, и я подозреваю, что оптимизация базы данных и очистка очереди публикации помогут в этом, но, пожалуйста, оцените ваши отзывы. Благодаря, –

4

Каковы ваши настройки таймаута для SQLServer и Internet Information Server? если они находятся на фондовых дефолтах (не помню, с какой стороны они работают), возможно, стоит попытаться их увеличить.

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

5

Возможно, вы можете запросить таблицу транзакций публикации, чтобы получить список всех транзакций tcm uri, переместить их в пользовательскую базу данных и использовать TOM.NET API/базовую услугу, чтобы открывать каждую транзакцию индивидуально и в зависимости от state удалите его с помощью API.

Таким образом вы можете удалять транзакции контролируемым образом без непосредственной работы с базой данных.

+0

Спасибо Arjen. В Tridion 2009 Core Service не существует. Использование TOM COM + API - это вариант, который я попытался на основе вашего предложения. Простая программа, запрограммированная через каждого пользователя Tridion [foreach (User u в tdse.GetUsers()], получила список транзакций и удалила транзакции один за другим. Однако при попытке получить список для всех пользователей, у которых тоже был путь многие элементы, функция GetListPublishTransactions (queueFilter) завершается с таймаутом. Это приводит к настройке таймаута запроса SQL Server, который я попробую, как только я получу поддержку администратора базы данных. –

+1

Как получить только список URI TCM для транзакций публикации по запросу прямой базы данных? Тогда вы все равно можете удалить их через API (и, следовательно, не получите проблем с поддержкой в ​​БД). –

+0

Вот что я предложил :) –

0

Я думаю, это может быть причиной из-за 'N' номер In-Progress элементов, лежащих на очереди публикации.

Не пытайтесь удалить все предметы в onces.

Лучше элементов очереди удалить в следующем порядке: -

  1. Failed
  2. In Progress

дополнение к этому, только сейчас я увидел одно исправление.

Hotfix: CM_2009.1.74381

Посмотрите на это.

3

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

Быстрое обновление статистики по CM DB (MSSQL: sp_updatestats) в дополнение к очистке/очистке ваших транзакций на регулярной основе поможет выполнению GUI в целом.

Вы можете проверить документацию по техническому обслуживанию TRIDION here

0

Восстановление резервной копии базы данных КМ от вас сбрасывали Gazillion элементов в очереди. Не очень, но это может привести вас туда.

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