Dynamics ERP 报表队列状态窗口的管理报告器保持停滞在“排队”

本文提供有关导致“报告队列状态”窗口停滞在“排队”的问题的解决方法。

适用于: Microsoft Dynamics GP、Microsoft Dynamics AX 2009、Microsoft Dynamics SL 2011
原始 KB 编号: 2298248

症状

在 Dynamics ERP 的管理报告器中选择“ 生成 ”按钮,但“报告队列状态”窗口将“状态”列为“已排队”而不是“正在处理”。

原因

此错误有六个可能的原因:

原因 1

如果管理报告进程服务与托管 ManagementReporter SQL 数据库的计算机位于同一台计算机上。 进程服务在接受连接之前尝试启动SQL Server可能出错。 请参阅“解决方法”部分中的“解决方法 1”。

原因 2

发生了SQL Server连接错误,需要重启管理报告器进程服务。 请参阅“解决方法”部分中的“解决方法 2”。

原因 3

运行 Management Reporter Process Service 的用户没有足够的权限从 ManagementReporter SQL Server 数据库进行读取。 请参阅“解决方法”部分中的“解决方法 3”。

原因 4

未启用 ManagementReporter SQL Server 数据库上的 SQL Service Broker。 请参阅“解决方法”部分中的“解决方法 4”。

原因 5

如果管理报告者数据库的所有者是 Windows 用户,而SQL Server服务由本地用户运行,则可能会发生这种情况。 如果检查事件查看器,可能会看到以下消息:

在目标队列中排队消息时发生异常。 错误 15404,状态 19。 无法获取有关Windows NT组/用户“domain\user”的信息,错误代码0x5。

请参阅“解决方法”部分中的“解决方法 5”。

原因 6

如果在SQL Server Management Studio的“服务器属性”中选择了“无计数”复选框,则可能会出现这种情况。 如果在生成报表后检查 事件查看器,可能会看到以下消息:

System.Data.Linq.ChangeConflictException: (在程序集“xxxxxx”中找不到或更改) 或 (行未标记为可序列化)

请参阅“解决方法”部分中的“解决方法 6”。

解决方案

解决方法 1

如果使用 Windows Server 2008,可以将管理报告进程服务设置为自动 (延迟启动) 而不是自动。

OR

手动或使用类似于以下内容的脚本重启进程服务:

NET STOP MRProcessService

NET START MRProcessService

解决方法 2

手动或使用类似于以下内容的脚本重启进程服务:

NET STOP MRProcessService

NET START MRProcessService

解决方法 3

在 SQL Server 中,向运行此服务的用户授予管理报告者数据库下的 GeneralUser 角色。 可以在“服务控制面板”下的“ 登录 ”选项卡上找到此用户。

解决方法 4

在 ManagementReporter 数据库所在的 SQL 服务器上运行以下语句:

SELECT name, is_broker_enabled FROM sys.databases WHERE name = DB_NAME() AND is_broker_enabled = 1

此语句应返回 ManagementReporter SQL Server 数据库的行。 否则,请运行以下 语句,在 ManagementReporter SQL Server数据库上重新启用 SQL Service Broker:

ALTER DATABASE [ManagementReporter] SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;

解决方法 5

将数据库所有者更改为 sa,或者将 SQL Server Service 用户更改为域用户。

解决方法 6

在SQL Server Management Studio中,右键单击服务器名称,然后选择“属性”。 选择“Connections”,然后在“默认连接”选项部分中,向下滚动并取消选中“无计数”。