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

執行管理報告程式處理服務的使用者沒有足夠的許可權可讀取 ManagementReporter SQL Server 資料庫。 請參閱解析度區段中的解決方式3。

原因4

未啟用 ManagementReporter SQL Server 資料庫上的 SQL Service Broker。 請參閱解析度區段中的解決方案4。

原因5

當本機使用者執行 SQL Server 服務時,管理報表資料庫的擁有者是 Windows 使用者,就會發生這種情況。 如果您檢查事件檢視器,您可能會看到這則訊息:

Enqueueing 目標佇列中的郵件時,發生例外狀況。 錯誤15404,狀態19。 無法取得 Windows NT 群組/使用者 ' 網域 \ 使用者」的相關資訊,錯誤碼0x5。

請參閱解析度區段中的解決方式5。

原因6

如果在 SQL Server Management Studio 的 [伺服器屬性] 中選取 [無計數] 核取方塊,便會發生這種情況。 如果您在產生報告之後,檢查事件檢視器,您可能會看到這則訊息:

ChangeConflictException:找不到 (列或已變更) 或 (元件 ' xxxxxx ' 中的未標示為可序列化)

請參閱解析度區段中的解決方法6。

解決方案

解決方法1

如果使用 Windows Server 2008,您可以將管理報表程式處理常式服務設定為自動 (延遲的啟動) 而非自動。

以手動方式或使用與下列類似的腳本重新開機進程服務:

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 服務使用者變更為網域使用者。

解析度6

在 SQL Server Management Studio 中,以滑鼠右鍵按一下伺服器名稱,然後選取 [屬性]。 選取 [連線],並 在 [預設連線] 選項 區段中向下滾動並取消選取 [ 無計數]。