Dynamics ERP レポート キューの状態の管理レポーターウィンドウがキューに残っている
この記事では、[レポート キューの状態] ウィンドウがキューに登録されていない状態を維持する問題の解決策について説明します。
適用対象: Microsoft Dynamics GP、Microsoft Dynamics AX 2009、Microsoft Dynamics SL 2011
元の KB 番号: 2298248
現象
Dynamics ERP の Management Reporter で [ 生成 ] ボタンを選択しますが、[レポート キューの状態] ウィンドウには、[処理] ではなく [キューに入った状態] が一覧表示されます。
原因
このエラーには、次の 6 つの原因が考えられます。
原因 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
これは、SQL Server サービスがローカル ユーザーによって実行されている間に、Management Reporter データベースの所有者が Windows ユーザーである場合に発生する可能性があります。 イベント ビューアーをチェックすると、次のメッセージが表示されることがあります。
ターゲット キューにメッセージをエンキュー中に例外が発生しました。 エラー 15404、状態 19。 Windows NTグループ/ユーザー 'domain\user'、エラー コード 0x5に関する情報を取得できませんでした。
「解決策」セクションの「解決策 5」を参照してください。
原因 6
これは、SQL Server Management Studioの [サーバーのプロパティ] で [カウントなし] チェック ボックスがオンになっている場合に発生する可能性があります。 レポートの生成後にチェック イベント ビューアーすると、次のメッセージが表示されることがあります。
System.Data.Linq.ChangeConflictException: (行が見つからないか変更されていません)、または (アセンブリ 'xxxxxx' でシリアル化可能としてマークされていません)
「解決策」セクションの「解決策 6」を参照してください。
解決方法
解決方法 1
Windows Server 2008 を使用している場合は、Management Reporter Process Service を [自動] ではなく [自動 (遅延開始)] に設定できます。
または
Process Service を手動で再起動するか、次のようなスクリプトを使用して再起動します。
NET STOP MRProcessService
NET START MRProcessService
解決方法 2
Process Service を手動で再起動するか、次のようなスクリプトを使用して再起動します。
NET STOP MRProcessService
NET START MRProcessService
解決策 3
このサービスを実行しているユーザーに、SQL Serverの Management Reporter データベースの 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で、サーバー名を右クリックし、[プロパティ] を選択します。 [Connections] を選択し、[既定の接続オプション] セクションで下にスクロールし、[カウントなし] をオフにします。