Zum Hauptinhalt springen
Version: 5.3

Nutzung der Service Broker-Nachrichtenübermittlung

Die Service Broker-Nachrichtenübermittlung ist eine Funktion des SQL Servers, die es dem OPC Router ermöglicht, bei Datenänderungen in einer Datenbank Benachrichtigungen zu erhalten. Der Broker verwendet eine Warteschlange, um Benachrichtigungen an den OPC Router zu senden.

hinweis

Um die Konfiguration der Datenbankverbindung erfolgreich durchführen zu können, muss der Benutzer, der die Verbindung herstellt, über bestimmte Berechtigungen verfügen. Bitte prüfen Sie, ob der Benutzer über diese Berechtigungen verfügt oder fordern Sie diese an.\

Auf Datenbankebene werden folgende Berechtigungen benötigt:

ALTER, CREATE MESSAGE TYPE, CREATE CONTRACT, CREATE QUEUE, CREATE SERVICE

hinweis

Ein Nutzer für den OPC Router kann mit folgendem Skript erstellt werden.

CREATE LOGIN [<Nutzername>] WITH PASSWORD = '<Passwort>';
GO
-- Wechseln des Kontexts zu der Datenbank, die im OPC Router verwendet werden soll
USE <Datenbank>;
-- Erstellen eines Nutzers für den Login
CREATE USER [<Nutzername>] FOR LOGIN [<Nutzer>];
GO
hinweis

Um die Service Broker-Nachrichtenübermittlung ohne DB_Owner Rechte nutzen zu können führen Sie bitte folgendes SQL Script aus und passen die Werte entsprechend an:

-- Wechseln des Kontexts zu der Datenbank, die im OPC Router verwendet werden soll
USE <Datenbank>;
GO
CREATE SCHEMA [<Schema>] AUTHORIZATION [<Nutzername>];
GO
ALTER USER [<Nutzername>] WITH DEFAULT_SCHEMA = [<Schema>];
GO
GRANT SELECT to [<Nutzername>];
GO
GRANT CREATE PROCEDURE to [<Nutzername>];
GO
GRANT CREATE QUEUE to [<Nutzernutzername>];
GO
GRANT CREATE SERVICE to [<Nutzername>];
GO
GRANT VIEW DEFINITION TO [<Nutzername>];
GO
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO [<Nutzername>];
GO
GRANT RECEIVE ON QueryNotificationErrorsQueue TO [<Nutzername>];
GO
GRANT REFERENCES on CONTRACT::[http://schemas.microsoft.com/SQL/Notifications/PostQueryNotification] to [<Nutzer>];
GO
-- Optional UPDATE für den die Nutzung des Datachange Triggers erlauben
-- GRANT UPDATE TO [<Nutzer>];
-- GO

-- Optionale Berechtigung, um den Broker aktivieren zu können
-- GRANT ALTER TO [<Nutzer>];
-- GO

Voraussetzungen für die Verwendung der Notifications

  1. Der im Plug-in konfigurierte Nutzer muss die notwendigen Berechtigungen besitzen, um den Broker für die Datenbank zu aktivieren (siehe Skript) oder der Broker muss bereits aktiv sein.
hinweis

Der Broker ist bei Datenbanken standardmäßig aktiv. Der aktuelle Status kann folgendem Befehl abgefragt werden.

 SELECT IS_BROKER_ENABLED FROM SYS.DATABASES WHERE NAME = '<DatenbankName>'
  1. Die vom Trigger überwachte Tabelle darf keine View sein und auch keine berechneten Spalten enthalten.

Limitationen

warnung

Sollte die Verbindung zum Broker abbrechen z.B. durch eine Id Änderung fällt der Router auf Polling zurück und es wird erst nach einem Neustart der Runtime wieder eine Verbindung zum Broker aufgebaut.