Share via


トランザクション (マスター データ サービス)

適用対象: SQL Server - Windows のみ Azure SQL Managed Instance


マスター データ サービスでは、メンバーに対してアクションが行われるたびに、トランザクションが記録されます。 すべてのユーザーがトランザクションを表示でき、管理者はトランザクションを破棄できます。 日付、時刻、アクションを行ったユーザーが、その他の詳細と共にトランザクションによって表示されます。 ユーザーは、トランザクションが行われた理由を示す注釈をトランザクションに追加できます。

トランザクションが記録されるタイミング

トランザクションは、次のタイミングで記録されます。

  • メンバーが作成、削除、または再アクティブ化されたとき。

  • メンバーが属性値を変更したとき。

  • メンバーが階層内で移動されたとき。

ビジネス ルールによって属性値が変更された場合、トランザクションは記録されません。

トランザクションの表示および管理

[エクスプローラー] 機能領域では、自分で作成したトランザクションを表示したり、自分で作成したトランザクションに注釈を設定 (コメントを追加) したりできます。

[バージョン管理] 機能領域では、管理者は、アクセス権を持っているモデルに対する全ユーザーのトランザクションをすべて表示したり、それらのトランザクションを破棄したりできます。

注意

[バージョン管理] 機能領域で読み取り専用アクセス許可レベルが適用されていない限り、管理者は全ユーザーの全トランザクションを表示できます。 たとえば、読み取り専用アクセス許可と更新アクセス許可レベルが管理者に設定されている場合、読み取り専用アクセス許可が更新アクセス許可よりも優先されるため、管理者は他のユーザーのトランザクションを表示できません。

マスター データ サービス データベースのシステム設定で [ログ保持日数] プロパティを設定、およびモデルを作成または編集するときに [ログ保持日数] を設定することで、トランザクション ログ データが保持される期間を設定できます。 詳細については、「システム設定 (マスター データ サービス)」および「モデルの作成 (マスター データ サービス)」を参照してください。

SQL Server エージェント ジョブの MDS_MDM_Sample_Log_Maintenace は、トランザクション ログのクリーンアップをトリガーし、毎晩実行します。 このジョブのスケジュールを変更するには、SQL Server エージェントを使用します。

次のストアド プロシージャを呼び出して、トランザクション ログをクリーンアップすることもできます。

ストアド プロシージャ 説明
mdm.udpTransactionsCleanup トランザクション履歴をクリーンアップします。
mdm.udpValidationsCleanup 検証履歴をクリーンアップします。
mdm.udpEntityStagingBatchTableCleanup ステージング テーブルをクリーンアップします。

サンプル

DECLARE @CleanupOlderThanDate date = '2014-11-11',  
@ModelID INT = 7  
--Clean up Transaction Logs  
EXEC mdm.udpTransactionsCleanup @ModelID, @CleanupOlderThanDate;  
  
--Clean up Validation History  
EXEC mdm.udpValidationsCleanup @ModelID, @CleanupOlderThanDate;  
  
--Clean up EBS tables  
EXEC mdm.udpEntityStagingBatchTableCleanup @ModelID, @CleanupOlderThanDate;  
  

システム設定

マスター データ サービス構成マネージャー には、レコードがステージングされたときにトランザクションが記録されるかどうかに影響する設定があります。 この設定は、マスター データ サービス構成マネージャーで、または直接マスター データ サービス データベースのシステム設定テーブルで調整できます。 詳細については、「システム設定 (マスター データ サービス)」を参照してください。

このバージョンの SQL Server にデータをインポートする際、ストアド プロシージャ開始時にトランザクションをログに記録するかどうかを指定できます。 詳細については、「ストアド プロシージャのステージング (マスター データ サービス)」を参照してください。

コンカレンシー

複数のエクスプローラー セッションで特定のエンティティの値が同時に表示される場合、同じ値を同時に編集している可能性があります。 同時編集は、MDS によって自動的に検出されません。 これは、複数のユーザーが複数のセッション (たとえば、複数のコンピューター、複数のブラウザーのタブやウィンドウ、複数のユーザー アカウントなど) から Web ブラウザー内で MDS エクスプローラーを使用している場合に発生します。

トランザクションが有効になっているにもかかわらず、複数のユーザーがエラーなく、同じエンティティの値を更新できます。 通常、時間順で最後に編集した値が優先されます。 トランザクションの履歴で、重複する編集の競合を手動で観察することができ、管理者によって手動で取り消すことができます。 トランザクションの履歴は、各セッションの問題の属性に対する [以前の値][新しい値] の個々のトランザクションを表示しますが、複数の [新しい値] が同一の古い値に対して存在しても、競合を自動的には解決しません。

タスクの説明 トピック
トランザクションを破棄してアクションを元に戻す (管理者のみ)。 トランザクションの破棄 (マスター データ サービス)

外部リソース

msdn.com のブログ投稿「 Transactions, Validation Issue and Staging table cleanup」 (トランザクション、検証の問題、およびステージング テーブルのクリーンアップ)