Dynamics ERP 的管理報告佇列狀態視窗停留在佇列中

本文提供導致 [報表佇列狀態] 視窗停留在佇列中的問題解決方法。

適用於: Microsoft Dynamics GP、Microsoft Dynamics AX 2009、Microsoft Dynamics SL 2011
原始 KB 編號: 2298248

徵狀

您在 Dynamics ERP 的管理報告器中選取 [ 產生 ] 按鈕,但 [報表佇列狀態] 視窗會將 [狀態] 列為 [已排入佇列],而不是 [處理]。

原因

此錯誤有六個可能的原因:

原因 1

如果 Management Reporter Process Service 與裝載 ManagementReporter SQL 資料庫的電腦位於同一部電腦上。 進程服務可能因為嘗試在 SQL Server 接受連線之前啟動而發生錯誤。 請參閱解決方式一節中的解決方式 1。

原因 2

發生 SQL Server 連線錯誤,且必須重新啟動 Management Reporter Process Service。 請參閱解決方式一節中的解決方式 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 Server 上執行下列語句:

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],然後在 [默認連線] 選項區段中向下卷動並取消核取 [無計數]