3

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 を介して新しいパブリケーションを作成した場合、[記事のプロパティ] ダイアログの [リゾルバー] タブは空です。つまり、リゾルバーが一覧表示されません。ただし、既存のパブリケーションに対して開いた場合は、同じタブにリゾルバーの完全なリストが含まれます。

4

1 に答える 1

1

はい、SQL Server Express はカスタム COM コンフリクト リゾルバーをサポートしていないことが判明しました。ここで実際に確認されています: https://support.microsoft.com/en-us/kb/2664701。カスタム ストアド プロシージャ競合リゾルバーもありますが、COM リゾルバーである特別な"Microsoft SQLServer ストアド プロシージャ リゾルバー"が必要であり、SQL Server Express でもサポートされていません。

于 2015-08-05T01:04:59.817 に答える