SQL Server 2014 でマージ レプリケーション、「プッシュ」サブスクリプションを評価しています。既定のリゾルバーが使用されている場合 (sp_addmergearticle の @article_resolver パラメーターを参照)、すべてが期待どおりに機能しているようです。ただし、「Microsoft SQL Server Subscriber Always Wins Conflict Resolver」(またはその他の MS 標準リゾルバー) を使用している場合、サブスクライバーが別のマシン上にある場合、マージ エージェントは常に次のエラーを返します:「プロセスを初期化できませんでした。 。コンポーネントが正しく登録されていることを確認してください。」これは、サブスクライバーがパブリッシャーおよびディストリビューターと同じマシン上にある場合には発生しません。
いくつかの投稿によると、問題は SQL Server 2008 に存在するように見えましたが、それ以降は明らかに修正されています。私は次のことを試しました:
どこかで提案されたように、@partition_options = 0。
ssrpub.dll (リゾルバー dll) をサブスクライバー マシンにコピーしました (これは「プッシュ」サブスクリプションであるため、実際には問題になりませんか?)
パブリッシャ/ディストリビュータ マシンで regsvr32 を使用して ssrpub.dll を登録しました。
また、パブリッシャー マシンでsp_enumcustomresolversを実行したところ、「Microsoft SQL Server サブスクライバーは常に競合リゾルバーに勝つ」など、すべての標準リゾルバーが表示されました。
もう 1 つの考えは、SQL Server Express をサブスクライバー (リモート マシン上) として使用していることです。おそらく、カスタム リゾルバをサポートしていないのでしょうか? (私は「ローカル サブスクライバー」バリアントで完全な SQL Server を使用していますが、前に述べたように問題なく動作します)。
また、SSMS を介して新しいパブリケーションを作成した場合、[記事のプロパティ] ダイアログの [リゾルバー] タブは空です。つまり、リゾルバーが一覧表示されません。ただし、既存のパブリケーションに対して開いた場合は、同じタブにリゾルバーの完全なリストが含まれます。