无法获取发布队列项的列表.超时已过期

Nic*_*kov 5 tridion tridion2009

我在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
Run Code Online (Sandbox Code Playgroud)

所以我尝试使用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>
Run Code Online (Sandbox Code Playgroud)

事件日志都显示完全相同的错误.哦,是的,我试图重启COM +,发布者和传输服务.

因此,发布队列似乎处于不可访问状态.请问您可以建议原因或下一步?

Arj*_*bbe 5

也许您可以查询发布事务表以获取所有事务的tcm uri列表,将其移动到自定义数据库中并使用TOM.NET API/Core Service单独打开每个事务并根据状态将其删除API.

这样,您可以以受控方式删除事务,而无需直接处理数据库.


Jul*_*ith 4

您可以尝试很多事情;

在代码中:

  1. 将数据集减少到可能特定的时间段(每周、每月)
  2. 逐一选择特定的统计类型(失败、成功等)

关于基础设施:

  1. 我不确定你想做什么,但如果你只是删除交易,也许只使用清除工具(但当你编码时,我假设它对于你的用例来说不够聪明)
  2. 使用清除工具删除与您的用例无关的旧事务
  3. 确保数据库得到全面优化
  4. (如上所述)增加 Tridion 配置管理单元中的超时
  5. 确保您拥有适用于您的 Tridion 版本的最新补丁(2009 GA 和 SP1 的队列性能发生了许多变化
  6. 一般来说,确保硬件运行正常