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”,然后在“默认连接”选项部分中,向下滚动并取消选中“无计数”。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈