0

私は、約 3000 以上のオブジェクト (テーブル/トリガー/SP を組み合わせたもの) を含むかなり複雑で大規模なデータベースを持っています。私はこの DB を継承し、再構築するのはおそらく 3 ~ 4 年後です。その間、これらのテーブルの挿入/更新/削除のために pub sub 機能を実装する必要があります。指定された数のテーブルと既存のクエリでは、おそらくクエリ通知 (および SQL 依存関係) が機能しません。私が探しているのは、変更 (テーブルで変更されたもの - レコード PK やテーブル名など) をサービス ブローカーにプッシュする方法です。そのため、外部アクティベーターを使用して変更を取得し、その時点からカスタム pub サブを使用できます。以降。

サービスブローカーで変更通知をプッシュする方法を除いて、ほとんどすべてのアヒルが並んでいます。

ヘルプ/ポインタをいただければ幸いです。ありがとう。NM PS。私は同様の投稿を探し回り、いくつか出くわしましたが、彼らが参照したMSDNの記事はすべて削除されたようです.MSDNサイトで何が起こっているのかわかりません.

4

1 に答える 1

1

外部アクティベーターについては、Microsoft SQL Server 2008 Feature Pack - 「Microsoft SQL Server 2008 R2 Service Broker External Activator」を参照してください。

コンソール アプリケーション (メッセージを処理する) の場合、codeplexに注目することをお勧めします。良い例があります。

イベント通知 (外部アクティベーター サービスによって使用される通知) を配置するには、コードは次のようになります。

Create Queue ExternalActivatorQueue;
Create Service ExternalActivatorService On Queue ExternalActivatorQueue
([http://schemas.microsoft.com/SQL/Notifications/PostEventNotification])

Create Event Notification NotifyExternalActivator
On Queue dbo.ProcessQueue
For QUEUE_ACTIVATION
To Service 'ExternalActivatorService', 'current database'

キューでメッセージを送信するには:

    Declare @h UniqueIdentifier;
    Declare @x xml = '<tag/>';
    Begin Dialog Conversation @h
    From Service MyTableService
        To Service 'ProcessService'
    With Encryption = OFF;

    Send On Conversation @h(@x)

それを機能させるために私が行ったすべてのステップはここにありますが、ラトビア語だけです:)。実際に必要なものはほとんどあります(データがテーブルに挿入されたときにメッセージを送信するトリガー..)。

于 2012-05-15T14:48:06.247 に答える