適用先
SQL Server 2008 R2 Standard SQL Server 2008 R2 Standard Edition for Small Business SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup

Microsoft は、Microsoft SQL Server 2008 R2 修正プログラムを 1 つのダウンロード可能なファイルとして配布します。 修正プログラムは累積的であるため、新しい各リリースには、すべての修正プログラムと、以前の SQL Server 2008 R2 修正プログラム リリースに含まれていたすべてのセキュリティ修正プログラムが含まれています。

現象

次のような状況で問題が発生します。

  • Microsoft SQL Server 2008 R2 にドメイン ベースの属性を持つマスター データ サービス (MDS) モデルとエンティティがあります。 ドメイン ベースの属性は、同じ属性を自己参照するように設計されています。たとえば、ManagerName 属性を持つ Employee エンティティがあるとします。 ManagerName 属性は、同じ Employee エンティティ自体を参照します。注 マネージャーは、一種の従業員でもあります。

  • ドメイン ベースの属性の再帰的な親子関係を表示するために属性に定義されている派生階層があります。

  • MDS ステージング テーブルへの 1 つ以上の循環参照を含むデータ値を読み込みます。 この動作により循環参照が発生し、属性の最初のノードは円の一部ではありません。たとえば、次のデータ パターンは循環参照を示しています。 ただし、Member1 メンバー値は円の一部ではありません。

    Member1 --manager attribute--> Member2 --manager attribute--> Member3 --manager attribute--> Member2 --manager attribute--> Member3

    insert into mdm.tblStgMemberAttribute(ModelName, EntityName, MemberType_ID, MemberCode, AttributeName, AttributeValue, Status_ID)Values ('EntityTest', 'ModelTest', 1, 'Member3', 'Manager', 'Member2', 0),('EntityTest', 'ModelTest', 1, 'Member2', 'Manager', 'Member3', 0),('EntityTest', 'ModelTest', 1, 'Member3', 'Manager', 'Member2', 0),('EntityTest', 'ModelTest', 1, 'Member2', 'Manager', 'Member1', 0)('EntityTest', 'ModelTest', 1, 'Member1', 'Manager', 'NULL', 0)
  • MDS ステージング プロセスを使用してエンティティにデータ値を読み込むには、次のいずれかの方法を使用します。

    • Exec [mdm]を実行します。[udpStagingSweep] プロシージャ。必要なパラメーターを使用してステージングされたデータを処理します。

    • [ Integration Management]\(統合管理 \) をクリックして、MDS Web サイトのホーム ページにアクセスします。 [ Import Export ]\(エクスポートのインポート\) ページの [ バッチ処理されていないステージング レコード ] セクション ヘッダーで、[ 歯車アイコン ] をクリックして、特定のモデルとバージョンのレコードを処理します。

このシナリオでは、バックグラウンド プロセスが内部的に [mdm] を呼び出すと、ステージング プロセス中のバックグラウンド プロセスで無限ループが発生する可能性があります。[udpMemberRecursiveCircularCheck] プロシージャ。

原因

この問題は、udpStagingSweep プロシージャと udpStagingMemberAttributeSave プロシージャが、ステージング行ごとに udpMemberRecursiveCircularCheck プロシージャを 1 回呼び出しているために発生します。 この動作では、ドメイン ベースの属性値をチェックし、ステージング行で既存のデータと共に循環参照が発生した場合にエラーが返されます。 すべてのステージング行がチェックされると、次の結果が表示されます。

  • エラーのないステージング行が適用されます。

  • エラーがあるステージング行には、エラー コードが付きます。

「現象」セクションで説明されている条件が true の場合は、[mdm]。[udpMemberRecursiveCircularCheck] プロシージャは、サーバー リソースが使い果たされるか、タイムアウトが発生するまで無期限にループします。

解決方法

累積的な更新プログラムの情報

SQL Server 2008 R2 Service Pack 1

この問題の修正プログラムは、累積的な更新プログラム 4 で最初にリリースされました。 SQL Server 2008 R2 SP1 のこの累積的な更新プログラム パッケージを取得する方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を表示します。

2633146 SQL Server 2008 R2 Service Pack 1 用の累積的な更新プログラム パッケージ 4 注 ビルドは累積的であるため、各新しい修正プログラム リリースには、以前の SQL Server 2008 R2 SP1 修正プログラム リリースに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラム リリースを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

2567616 SQL Server 2008 R2 Service Pack 1 のリリース後にリリースされた SQL Server 2008 R2 ビルド

状態

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

回避策 

この問題を回避するには、以下のいずれかの方法を使用します。

  • 問題を回避するには、次の手順に従います。

    1. ステージング プロセスを実行する前に、ステージング テーブルに挿入されているメンバー データ値を手動で確認します。

    2. ドメイン ベースの属性のすべてのメンバー値に、「現象」セクションで説明されている循環参照が含まれていないことを確認します

  • 「現象」セクションに記載されている問題が発生した場合は、次の手順に従って問題を修正します。

    1. 無限ループで実行されているセッションを特定します。

    2. セッションを強制終了してループを停止します。

    3. 循環参照が再び処理される前に、ステージング テーブルから循環参照値を削除します。

注意事項

  • 強制終了するセッションを特定するには、次のいずれかの方法を使用します。

    • Microsoft SQL Server Management Studioでアクティビティ モニターを使用します。

    • sys.sysprocesses または sys.dm_exec_requests 動的管理ビュー (DMV) から選択して、CPU と時間が迅速に増加している MDS データベース内で動作しているセッションを特定します。 セッションで実行されている現在のクエリが、「原因」セクションで説明されているプロシージャ名と一致していることを確認します。

  • セッションの現在実行中のプロシージャを特定するには、次のいずれかの方法を使用します。

    • アクティビティ モニター プロセス一覧の各プロセスの [詳細 ] メニューを右クリックします。

    • 次のいずれかのパラメーターを使用します。

      • DBCC INPUTBUFFER (spid) コマンドとセッション ID。

      • DMV 出力を使用する場合は、SELECT * FROM sys.dm_exec_sql_text(sqlhandle) 関数と一致する SQL ハンドル パラメーターを使用します。

関連情報

SQL Server Management Studioでアクティビティ モニターを開く方法の詳細については、次の MSDN Web サイトを参照してください。

SQL Server Management Studioでアクティビティ モニターを開く方法KILL 構文の詳細については、次の MSDN Web サイトを参照してください。

KILL 構文に関する一般的な情報DMV sys.dm_exec_requestsの詳細については、次の MSDN Web サイトを参照してください。

sys.dm_exec_requests DMV に関する一般的な情報DMV sys.dm_exec_sql_textの詳細については、次の MSDN Web サイトを参照してください。

SYS.DM_EXEC_SQL_TEXT DMV に関する一般的な情報DBCC INPUTBUFFER コマンドの詳細については、次の MSDN Web サイトを参照してください。

DBCC INPUTBUFFER コマンドに関する一般的な情報SQL Serverの増分サービス モデルの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

935897 増分サービス モデルは、報告された問題の修正プログラムを提供するために、SQL Server チームから入手できます。SQL Server更新プログラムの名前付けスキーマの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を表示します。

822499 Microsoft SQL Server ソフトウェア更新プログラム パッケージの新しい名前付けスキーマソフトウェア更新プログラムの用語の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を表示します。

824684 マイクロソフトのソフトウェアの更新で使用される一般的な用語の説明

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。