Невозможно получить список элементов очереди публикации. Тайм-аут истек
Я нахожусь на Tridion 2009 SP1. В какой-то момент возможность просмотра очереди публикации для всех пользователей (то есть не фильтров) просто перестала работать. В графическом интерфейсе CM получено сообщение об ошибке:
(80040E31) Timeout expired
Unable to get list of publishing queue items.
SQLUtilities.OpenRecordsetByStoredProcedure
SystemDAL.GetListData
SystemBLST.lObjListPublishTransactions
SystemBLST.IBLSystemST_GetListData
ManagementInfo.GetListPublishQueue
Request.GetList
Поэтому я попытался с помощью диспетчера очереди публикаций 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.
Таким образом, похоже, что очередь публикации находится в недоступном состоянии. Не могли бы вы предложить, в чем может быть причина или мой следующий шаг?
6 ответов
Есть несколько вещей, которые вы можете попробовать;
В коде:
- Сократите набор данных до возможно определенных периодов времени (за неделю, за месяц)
- выбрать конкретные типы статистики (не удалось, успех и т. д.) один за другим
По инфраструктуре:
- Я не уверен, что вы пытаетесь сделать, но если вы просто удаляете транзакции, возможно, просто используете инструмент очистки (но тогда, когда вы кодируете, я предполагаю, что он недостаточно умен для вашего случая использования)
- Используйте инструмент очистки, чтобы удалить более старые транзакции, которые не имеют отношения к вашему сценарию использования.
- Убедитесь, что база данных полностью оптимизирована
- (как уже упоминалось) увеличить время ожидания в оснастке Tridion Configuration
- Убедитесь, что у вас установлены последние исправления для вашей версии Tridion (произошел ряд изменений в производительности очередей как для GA 2009, так и для SP1
- В общем, убедитесь, что оборудование работает
Возможно, вы можете запросить таблицу опубликованных транзакций, чтобы получить список URI всех ваших транзакций, переместить его в пользовательскую базу данных и использовать API-интерфейс TOM.NET для открытия каждой транзакции по отдельности и в зависимости от состояния удалить ее, используя API.
Таким образом, вы можете удалять свои транзакции контролируемым образом, не работая непосредственно с базой данных.
Каковы ваши настройки времени ожидания для SQLServer и Internet Information Server? если они имеют значения по умолчанию (не могу вспомнить, что они есть), возможно, стоит попытаться увеличить их.
Если это все еще терпит неудачу, возможно поместите след в базу данных, чтобы понять, почему это занимает так много времени.
В дополнение ко всем положительным моментам, перечисленным здесь, оптимизировали ли вы базу данных? Вы должны запланировать обновление статистики БД на регулярной основе, а также переиндексировать. Свяжитесь с вашим администратором базы данных, чтобы запланировать планы обслуживания.
Быстрое обновление статистики в базе данных CM (MSSQL: sp_updatestats) в дополнение к регулярной очистке / очистке транзакций поможет повысить производительность графического интерфейса в целом.
Вы можете ознакомиться с документами по техническому обслуживанию Tridion здесь.
Я думаю, это может быть связано с 'N'
количество In-Progress
предметы, лежащие в очереди на публикацию.
Не пытайтесь удалить все предметы сразу.
Лучше удалить элементы очереди в следующем порядке:-
- Не удалось
- В ходе выполнения
В дополнение к этому, только что я увидел одно исправление.
Hotfix: CM_2009.1.74381
Посмотри на это!
Восстановите резервную копию базы данных CM до того, как вы сбросили в очередь gazillion элементов. Не очень, но это может привести вас туда.
В противном случае поговорите со службой поддержки Tridion о том, какие сценарии базы данных они могут разрешить для решения этой проблемы.