Laden...

SQl Server Event und Service

Erstellt von Tossi65 vor einem Jahr Letzter Beitrag vor einem Jahr 748 Views
T
Tossi65 Themenstarter:in
83 Beiträge seit 2010
vor einem Jahr
SQl Server Event und Service

Hallo Kollegen,
ich bin kein MS SQL Server Programmierer. Ich komme aus der FireBird Ecke. Und da gibt es eine sehr schöne Sache.
Den Eventalerter! Hiermit kann ich per Datenbank Ereignisse an Anwendungen schicken.

Ich bräuchte diese Eigenschaft auch für den MS SQL Server.
Gibt es so etwas und wie wende ich es an?

Hintergrund:
Wenn bestimmte Daten geschrieben wurden soll eine Benachrichtigung an einen Service generiert werden.

Aktueller Server: MS SQl Server 2012, wird aber demnächst der aktuellste sein.

Vielen Dank.

Torsten

Danke Tossi

87 Beiträge seit 2016
vor einem Jahr

Hallo,

vielleicht gibt dass ein paar Inspirationen: https://gist.github.com/jarrettmeyer/5990daf0db3b1f4fd759df6ed4099685 .

Eine gute Idee ist dein Plan aber nicht.

glandorf

T
Tossi65 Themenstarter:in
83 Beiträge seit 2010
vor einem Jahr

Hallo glandorf,
die Replikation auf diese Art und Weise zu fixen kann keine gute Idee sein. Es muss aber einen Fix geben, da die Daten benötigt werden.

In diesem Fall soll ein Dienst auf dem Server eben die Daten an die Zieldatenbank schreiben, wenn neue Daten in der Datenbank eingetragen werden.
Es betrifft ja nur wenige Tabellen. Im Nachgang jetzt die Strukturfehler in der Datenbank zu beheben ist auch nicht ohne. Ist eine Produktions DB und schon sehr groß mit reichlich Anwendungen dran. Das ist der Umweg über einen Service getriggert durch die Datenbank das kleinste übel.

Gruß Torsten

Danke Tossi

F
10.010 Beiträge seit 2004
vor einem Jahr

Schau dir mal SqlDependency an.
Damit kann dein Service sich beim SqlServer registrieren um bei bestimmten Änderungen informiert zu werden.

P
57 Beiträge seit 2017
vor einem Jahr

Hi,

ein bisschen Doku zu dem von FZelle angesprochenem Thema: Abfragebenachrichtigungen

Gruß

.....an unhandled exception is the first way to think about your pattern of programming....
.....nur weil ich nicht weiß was dort passiert, bedeutet es nicht, dass ich nicht weiß, wie man es lösen kann - aber das ist wahrscheinlich....

16.806 Beiträge seit 2008
vor einem Jahr

Wenn Du Instanz B der Anwendung informieren willst, weil Instanz A (also Dein Dienst) etwas in der Datenbank aktualisiert hat, dann solltest Du das - wenn möglich - über ein entsprechenden Service und einer Notification (i.d.R. Websockets) umsetzen; nicht direkt über die Datenbank.
Dass jetzt schon zig Anwendungen direkt an der DB hängen und damit Schema-Änderungen nen riesen Impact hat: risk by design. Daher nimmt man eben Services 🙂

Datenbank-seitige Notifications wie Eventalerter, SqlDependency oder SqlDependencyRequest (Query Notifications) haben unheimlich viele Nachteile (Skalierung, Permission, Usability, Performance...) und Limitations.
Eine gute Idee, jetzt noch mehr Verantwortung in die DB zu schieben...? Selten der Fall 🙂

Der Anwendungsfall von Eventalerter, SqlDependency oder SqlDependencyRequest ist daher vergleichweise selten passend.

T
433 Beiträge seit 2006
vor einem Jahr

Mein erster Gedanke wäre, einfach alle paar x Minuten ein SSIS Job starten, welcher die Daten rüber schaufelt.

In welchem Zeitrahmen müssen den die Daten in der Instanz B verfügbar sein und wie häufig kommen neue Daten rein?