現在オフラインです。再接続するためにインターネットの接続を待っています

修正:「SQL Server の競合回避モジュールへの呼び出しに失敗しました」SQL Server コンパクトな 3.5 のマージ パブリケーションのサブスクライバーを再初期化しようとするとエラー メッセージが表示されます

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:2479589
現象
次のシナリオを検討してください。
  • Microsoft SQL Server 2008 R2 のインスタンスにマージ パブリケーションを作成し、SQL Server の Compact 3.5 のサブスクライバーを追加します。
  • 2 つの記事は、マージ パブリケーションに追加します。次に、これら 2 つのアーティクル間の結合フィルターを追加します。
    メモ など、資料は、テーブル A とテーブル B です。次に、結合フィルターは、テーブル A にジョイン条件を満たすために B をテーブルの行のみがレプリケートされますを作成します。
  • 2 つの記事にいくつかの行を挿入します。
  • 正常に、マージ パブリケーション用のスナップショットを作成します。
  • いくつかの行テーブル B にレプリケートすることができるを確認するのには、テーブルにいくつか行を挿入するには、結合フィルター条件に基づいています。
  • SQL Server コンパクトな 3.5 のサブスクリプションを再初期化または新しい SQL Server Compact 3.5 のサブスクライバーを追加しようとしました。
このシナリオでは、サブスクリプションの SQL Server の Compact Edition サーバー エージェントは初期化されません。さらに、次のエラー メッセージが表示されます。
SQL Server 競合回避モジュールへの呼び出しに失敗しました。再同期しようとしてください。
HRESULT: 0X80004005 (29006)

'クリーンアップされました' 記事の .bcp データ ファイルの読み取り中にエラーが発生しました。.Bcp ファイルが破損している場合は、Subscriber.HRESULT 0x8004563C (0) を初期化する前に、スナップショットを再生する必要があります。

マージ プロセスは、サブスクライバーにスナップショットを配信できませんでした。Web 同期を使用して、差し込み印刷プロセスを作成するか、メッセージをファイルに書き込むことができませんされた場合があります。トラブルシューティングを行うには、詳細な履歴ログとの同期を再開し、書き込み先の出力ファイルを指定します。
HRESULT 0X80045017 (0)

原因
差し込み印刷の挿入トリガーでのエラーの発生によりこの問題が発生します。2 つのアーティクル間に結合フィルターを適用した場合、"MSmerge_contents"テーブルに行が誤って挿入されます。挿入された行は、"0x00"に設定、系列の属性があります。

メモ マージ パブリケーションを作成すると、差し込み印刷の挿入トリガーが生成されます。
解決方法
この問題を解決する修正プログラムは SQL Server コンパクトな 3.5 Service Pack 2 の累積的な更新プログラム パッケージ 3 に含まれます。

SQL Server 2008 R2 でこの累積的な更新プログラム パッケージの入手方法の詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
2489362 コンパクト 3.5 Service Pack 2 の累積的な更新プログラム 3 の SQL Server
状況
マイクロソフトでは、この「対象」に記載されているマイクロソフト製品の問題として認識しています。
回避策
この問題を回避するには、次の手順を実行します。
  1. 次のようなクエリを実行します。
    -- create script for dummy updates:SELECT 'exec sp_mergedummyupdate @source_object = ''' + sma.name + ''', @rowguid = ''' + cast(cts.rowguid as nvarchar(36)) + ''''--, *FROM sysmergearticles sma INNER JOIN MSmerge_contents cts ON sma.nickname = cts.tablenick WHERE cts.lineage=0x00

  2. 生成された Transact SQL update ステートメントをクエリ ウィンドウにコピーして後、ステートメントを実行します。
メモ この Transact SQL update ステートメントは、データベース内の現在のユーザー データを影響しません。

詳細
マージ レプリケーション用にパブリッシュされたデータをフィルター処理する方法の詳細については、次のマイクロソフト開発ネットワーク (MSDN) web サイトを参照してください。

警告: この記事は自動翻訳されています

プロパティ

文書番号:2479589 - 最終更新日: 07/07/2011 08:14:00 - リビジョン: 5.0

  • kbfix kbqfe kbexpertiseadvanced kbmt kbsurveynew KB2479589 KbMtja
フィードバック