动态 ERP 报告队列状态窗口的管理报告器停留在"排队"

适用于: Dynamics GP 2010Microsoft Dynamics AX 2009Dynamics SL 2011

症状


单击动态 ERP 管理报告器中的"生成"按钮,但"报告队列状态"窗口将状态列为"已排队"而不是"已处理"。

原因


此错误有六个潜在原因:原因 1如果管理报告程序处理服务与托管管理报告器 SQL 数据库的计算机位于同一台计算机上。进程服务可能由于尝试在 SQL Server 接受连接之前启动而出错。请参阅决议部分中的分辨率 1。原因 2发生 SQL Server 连接错误,需要重新启动管理报告程序进程服务。请参阅决议部分中的解决方法 2。原因 3运行管理报告器进程服务的用户没有足够的权限从管理报告器 SQL Server 数据库读取。请参阅决议部分中的解决方法 3。原因 4未启用管理报告器 SQL Server 数据库上的 SQL 服务代理。请参阅决议部分第4号决议。原因 5如果管理报告器数据库的所有者是 Windows 用户,而 SQL 服务器服务由本地用户运行,则可能会发生这种情况。如果选中事件查看器,您可能会看到以下消息:在目标队列中排队消息时发生异常。错误 15404,状态 19。无法获取有关 Windows NT 组/用户"域\用户"、错误代码 0x5 的信息。请参阅决议部分中的解决方法 5。
 
原因 6
如果在 SQL 服务器管理工作室中的"服务器属性"中选择"无计数"复选框,则可能会发生这种情况。 如果在生成报告后检查事件查看器,您可能会看到此消息:
System.data.Linq.change冲突异常:(未找到或更改行)或(在程序集"xxxxxx"中未标记为可序列化)
请参阅决议部分第6号决议。

解决方案


分辨率 1如果使用 Windows Server 2008,您可以将管理报告程序处理服务设置为"自动(延迟开始)",而不是"自动"。或手动或使用类似于以下内容的脚本重新启动进程服务:净停止 MR 过程服务NET 开始 MR 过程服务分辨率2手动或使用类似于以下内容的脚本重新启动进程服务:净停止 MR 过程服务NET 开始 MR 过程服务分辨率3授予运行此服务的用户在 SQL Server 中的管理报告器数据库下的"常规用户"角色。可以在"服务控制"面板下的"登录"选项卡上找到此用户。分辨率4在管理报告器数据库所在的 SQL 服务器上运行以下语句:选择名称,是否启用从系统.数据库位置名称 = DB_NAME() 和[代理]启用 = 1此语句应返回管理报告器 SQL Server 数据库的行。如果没有,则运行下面的语句以在管理报告器 SQL Server 数据库上重新启用 SQL 服务代理:已启用 [管理报告] 设置启用_带回滚的"代理";"分辨率5将数据库所有者更改为 sa 或将 SQL Server 服务用户更改为域用户。
 
分辨率 6
在 SQL 服务器管理工作室中,右键单击服务器名称,然后选择"属性"。单击"连接",在"默认连接"选项部分中,向下滚动并取消选中无计数。