我在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
所以我尝试使用Publication Queue Manager Powertool来清理队列,但这只会引发500错误,这与队列中有太多项目一致。
然后我尝试使用Tridion清除工具清除队列,但它会碾压几秒钟并返回相同的错误:
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 +,发布者和传输服务。
因此,发布队列似乎处于不可访问状态。请问你能说明原因是什么或我的下一步?
答案 0 :(得分:5)
也许您可以查询发布事务表以获取所有事务的tcm uri列表,将其移动到自定义数据库中并使用TOM.NET API / Core Service单独打开每个事务并根据状态使用API删除它。
这样,您可以以受控方式删除事务,而无需直接处理数据库。
答案 1 :(得分:4)
SQLServer和Internet Information Server的超时设置是什么?如果他们处于股票违约状态(无法记住他们的现状),可能值得尝试增加它们。
如果它仍然失败,可能会对数据库进行跟踪,看看为什么这么长时间。
答案 2 :(得分:4)
你可以尝试很多事情;
在代码中:
在基础设施上:
答案 3 :(得分:3)
除了此处列出的所有优点外,您是否优化了数据库?您应该计划定期更新数据库统计信息并重新编制索引。请咨询您的DBA以安排维护计划。
除了定期清理/清除交易外,还可以快速更新CM DB(MSSQL:sp_updatestats)上的统计信息,这有助于提高GUI的性能。
您可以查看Tridion维护文档here
答案 4 :(得分:0)
我认为,这可能是由于发布队列中'N'
个In-Progress
个项目所致。
请勿尝试删除所有项目。
最好按此顺序删除队列项: -
除此之外,刚才我看到了一个Hotfix。
<强> Hotfix: CM_2009.1.74381
强>
看看这个。
答案 5 :(得分:0)
在您将大量项目转储到队列之前,还原CM数据库的备份。不漂亮,但它可能会让你在那里。
否则,请与Tridion支持人员讨论他们可能愿意批准解决此问题的数据库脚本。