DMS 一括更新が失敗する


説明

場合によって、DMSが最適な方法を使用してデータを挿入できないことがあります。データはそれでもデータベースに正しく挿入されますが、次のエラー タイプが記録される場合があります。

  1. SQLサーバーのログ ファイルには、次の例外の詳細が記録されます。
    Exception Error: 2627, Severity: 14, State: 1 .Net SqlClient Data Provider sitecore 4132 99 2013-12-15 15:57:18.200 SQL:BatchCompleted insert bulk…
  2. Sitecoreのログ ファイルには、次の一連のログ エントリが記録されます。
    ManagedPoolThread #0 2013-12-15 15:57:18 DEBUG Trying bulk update...
    ManagedPoolThread #0 2013-12-15 15:57:18 DEBUG Trying 1 by 1 update...
  3. Visual StudioをSitecoreプロセスに接続し、「First chance exception of type sqlexception」で中断するように構成する際に、次のメッセージが記録されます。
    Violation of PRIMARY KEY constraint 'PK_*'. Cannot insert duplicate key in object 'dbo.*'. The duplicate key value is…

解決策

Sitecore Analyticsは、最も高速なデータ挿入技法の一つとして、一括挿入方式を使用します。この方式により、大規模な収集されたデータを最適な方法で挿入できます。ただし、このような一括更新操作は、特定の状況では失敗する場合があります。

一括挿入方式を使用してデータを挿入できない場合、Sitecoreは関連する例外をキャッチし、最適ではない技法(一件ずつの更新)を代わりに使用して更新を実行し、適切に例外を処理します。

したがって、上記のようなエラーがログ ファイルに記録されたとしても、送信された全てのデータはデータベースに挿入されます。