Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 15 von 15

Thema: Benachrichtigen, ob und was sich geändert hat.

  1. #11
    Bubblegum ist offline Neuer Benutzer
    Registriert seit
    12.05.2008
    Beiträge
    27

    Standard

    Immer wenn ich manuell listen aufrufe. Dann bekomme ich alle notifies nacheinander.

  2. #12
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    493

    Standard

    Zitat Zitat von Bubblegum Beitrag anzeigen
    Immer wenn ich manuell listen aufrufe. Dann bekomme ich alle notifies nacheinander.
    Genau, so ist das gedacht. Es gibt keinen "Event Listener" der automatisch aufgerufen wird.
    Du musst letzendlich in einem Hintergrund-Thread alle x Sekunden das LISTEN aufrufen und dann entsprechend reagieren.

    Schau mal in den Archiven der JDBC Mailing Liste. Da hat vor ein paar Wochen jemand eine Helper-Klasse veröffentlicht die den Umgang mit NOTIFY/LISTEN in Java/JDBC vereinfacht (und eben genau diesen Hintegrund-Thread implementiert).

    Nachdem Java und C# nicht sooo weit auseinander sind, kannst Du das vielleicht als Grundlage verwenden.

  3. #13
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.020

    Standard

    Normalerweise sollte es reichen, vorab einmalig LISTEN aufzurufen, um zukünftig in dieser Verbindung über alle aufgetretenen Signale dieses Namens informiert zu werden.

    Der mehrmalige Aufruf von LISTEN ist nicht notwendig.


    Allerdings kann es sein, dass z. B. die Signale erst ausgewertet werden, wenn die nächste Aktivität auf der Verbindung zur Datenbank stattfindet. In psql ist das so.
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  4. #14
    Bubblegum ist offline Neuer Benutzer
    Registriert seit
    12.05.2008
    Beiträge
    27

    Standard

    Danke jetzt ist mir einiges klarer. Also ich muss auf jeden Fall mehrmals Listen aufrufen, sonst passiert bei mit gar nichts. Da ich das Ganze für Aktualisierungsprozesse einsetzen möchte, fehlen mir leider Parameter, die ich gerne übergeben möchte. Kennt ihr hierzu irgendwelche Lösungsansätze, um das Problem der fehlenden Parameter zu lösen?

  5. #15
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.020

    Standard

    Du musst nicht LISTEN mehrmals aufrufen, es genügt wahrscheinlich, irgendetwas auf dieser Datenbankverbindung zu machen, z. B. ein "SELECT 1;". Außerdem würde ich mal in die Dokumentation schauen, einige Programmiersprachen können das Event direkt durchreichen, wenn es auftritt. Andere Sprachen und Programme (wie z. B. psql) prüfen so etwas erst nach, wenn wieder etwas passiert). Das Event wird von der Datenbank jedenfalls schon dann auf die Verbindung gelegt, wenn es ausgelöst wird.

    Das mit den fehlenden Parametern ist ein heikles Thema. Dazu gibt es derzeit lange Diskussionen auf der -hackers Mailingliste, da eine Neuimplementierung dieses Features ansteht. Dabei soll man dann auch Parameter mitgeben können. Derzeit ist das direkt nicht möglich, man behilft sich, indem man die entsprechenden Daten in eine Tabelle schreibt (das macht dann z. B. der Trigger).
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum