Trigger event an Client feuern

Hallo,

habe eine Client/Server Architektur und das Bearbeiten von Datensätzen soll gleichzeitig möglich sein. Ist es möglich sobald ein DS geändert wurde, dies über eine Art event/trigger an die Clients zurückzufeuern das sich der DS geändert hat und die Clients sich bitte aktualisieren sollen

  1. Client A ändert DS
  2. Client B und C sollen sich aktualisieren, aufgrund der DS Änderung von A

oder

  1. FremdProgramm ändert DS
  2. Client A, B u. C sollen sich aktualisieren

Progge das ganze mit C#, meine Erfahrung in postgre sind neu

Die Clients dürfen sich nicht selbstständig aktualisieren können, sondern es soll ihnen von der DB mitgeteilt werden, das sie sich aktualisieren sollen. Je weniger traffic ich habe, desto besser… (Nicht fragen warum, sind die Anforderungen :frowning:

Gruss

Kurz und schmerzlos:

PostgreSQL: Documentation: Manuals: PostgreSQL 8.2: Asynchronous Notification
PostgreSQL: Documentation: Manuals: PostgreSQL 8.2: NOTIFY

yo danke für den Tip.

Habe das ganze über NpgsqlConnection.Notification gelöst.

Das Notify-Event lasse ich per Rule von der Tabelle feuern und melde die Clients auf die entsprechene Tabelle mit “listen” an.
Beim ConnString sollte das Flag “SyncNotification” auf “true” gesetzt werden (default ist “false”), damit bekommt der Client sofort das Notify mitgeteilt.

Wichtig ist, das die Verbindung nicht geschlossen wird. Ansonsten muss man sich auf die benötigten Tabellen wieder mit “listen” und den EventHandler annmelden.

Siehe dazu mein Problem mit dem StateEvent -> http://www.pg-forum.de/externe-schnittstellen/1685-npgsqlconnection-statechange-event-feuern.html