Wie sql Abhängigkeit funktioniert für die Übermittlung von data zurück und weiter

1) Ich weiß gerne, wie SQL server einen Kanal zwischen Client & db. Ich denke, es muss ein Kanal und das, warum SQL server kann Benachrichtigung an Client über diesen Kanal senden. besprechen sie bitte ausführlich. weil ich sah viele Artikel auf sql Abhängigkeit, aber jeder Körper gibt den Code, aber keine Körper erklären, wie es funktioniert in Details. Was ist Service Broker?

Service Broker Architektur ermöglicht es Ihnen, lose gekoppelte SQL server-Instanzen zu build, so dass die Instanzen miteinander reden mit normaler Form von Messaging. Service Broker verwendet TCP / IP, um Nachrichten aus dem Netzwerk zu übertragen und ermöglicht somit verschlüsselte Messaging. Es ist sowohl für Anwendungen, die SQL server-Instanz verwenden, oder für Anwendungen, die die Arbeit in mehr als einer SQL server-Instanz verteilen. Service Broker ermöglicht die Verwendung von Warteschlange, um Nachrichten zu halten, und daher werden die Nachrichten nacheinander verarbeitet, ohne dass der Anrufer wartet, um die Nachricht zu empfangen.

1) Ich weiß gerne Service Broker übergeben die Nachricht immer in verschlüsselten Format?

2) Service Broker ermöglicht die Verwendung von Warteschlange, um Nachrichten zu halten. Was ist der Name dieser Warteschlange, die von Service Broker verwendet wird. Wie kann ich sehen, was in dieser Warteschlange gespeichert ist?

3) Ich sah viele Leute schaffen Warteschlange aber nicht erwähnen, warum sie erstellt? Sie haben diese Schlange auch nicht in ihrem Code benutzt. hier ist ein url & Beispielcode

http://www.dreamincode.net/forums/topic/156991-using-sqldependency-to-monitor-sql-database-changes/

CREATE QUEUE NameChangeQueue; CREATE SERVICE NameChangeService ON QUEUE NameChangeQueue ([http://schemas.microsoft.com/SQL/Notifications/PostQueryNotification]); GRANT SUBSCRIBE QUERY NOTIFICATIONS TO YourUserName; ALTER DATABASE YourDatabaseName SET ENABLE_BROKER; 

sie verwenden nie NameChangeQueue Warteschlange warum? Wie weiß ich, wer diese Warteschlange nutzen wird?

4) auch ich sah Leute schaffen Rolle, aber nie wissen, warum Rolle wäre in diesem Fall erforderlich?

also bitte bespreche alle meine Punkte im Detail, weil ich alle Punkte verstehen muss. Vielen Dank

Zuerst lesen Sie die Mysteriöse Benachrichtigung, um zu verstehen, wie Query Notifications funktioniert. SqlDependency ist nur ein .Net-Wrapper, der Query Notifications aktiviert. Dies sollte die meisten Ihrer Fragen beantworten.

Query Notifications liefern die notifications mit Service Broker (SSB) lokal an eine Warteschlange in der database. Während SSB Verkehr verschlüsseln kann, ist dies für SqlDependency irrelevant, da die Lieferung lokal ist, innerhalb des serverprozesses. Die Client-Anwendung erhält die Meldungen, indem sie eine WAITFOR(RECEIVE) in der Warteschlange mit einer gewöhnlichen SqlConnection posten.

Im Beispiel hast du die NameChangeQueue gepostet. Durch die Verwendung eines SqlDependency-objects verwendet der Autor tatsächlich die temporäre Warteschlange, die just-in-time eingesetzt wird, wenn es SqlDependency.Start() aufgerufen SqlDependency.Start() . Der Autor konnte stattdessen die untere Ebene SqlNotificationRequest wie unter Verwenden von SqlNotificationRequest beschrieben, um Abfragebenachrichtigungen abonnieren, mit denen Sie die zu verwendende Warteschlange angeben können.

Die erforderlichen permissions sind in Query Notification Permissions beschrieben , aber wenn Sie SqlDependency verwenden, SqlDependency Sie auch permissions zum Erstellen der temporären Warteschlange und der gespeicherten Prozedur, die von SqlDependency verwendet wird.

Lesen Sie die Artikel verlinkt und wenn Sie weitere Fragen haben, fragen Sie sie als neue Fragen hier (nicht mehr Fragen als Kommentare bitte).