Announcement

Collapse
No announcement yet.

Message an alle aktiven Instanzen schicken

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Message an alle aktiven Instanzen schicken

    Hallo,

    gibt es in Oracle eine Möglichkeit eine Art Message an alle aktiven instanzen zu schicken?
    Praktisch soll die DB eine Message verschicken, dass sich was geändert hat und die Applikation (JAVA) eine Art Listener haben, welche diese entgegennimmt.
    (Ehrlich gesagt muss ich mich auch noch bei JAVA schlau machen, ob es diese gegenstelle gibt; wollte ich aber erst machen, wenn ich weiss ob Oracle was schicken kann).
    Anmerkung:
    Aufgrund Ressourcenschonung möchte ich ungern mittels Timer in Java immer wieder eine bestimmte Oracle Tabelle abfragen..

    danke
    christoph

  • #2
    eine Art Message an alle aktiven instanzen zu schicken?
    Du meinst Sessions oder?

    Du kannst in einem Trigger und mittles advaced queueing eine Message verschicken. Es gibt auch Anbindungen für MQ hab aber noch nie etwas damit gemacht.

    Aufgrund Ressourcenschonung möchte ich ungern mittels Timer in Java immer wieder eine bestimmte Oracle Tabelle abfragen
    Ich glaube Du überschätzt den Ressourcenbedarf eines SQLs das rausfinden soll, ob ab einem bestimmten Aufsetzpunkt etwas neues vorhanden ist.

    Bedenke auch, dass Messageversand nicht transaktionsorientiert arbeitet d.h. die Message kann draußen sein, die Änderung ist aber noch nicht comitted und wird daher nicht gesehen oder die Änderung wurde per Rollback rückgängig gemacht und hat eigentlich nie existiert.
    Und daraus resultiert gleich meine nächste Frage: was möchtest Du denn eigentlich machen?

    Dim
    Zitat Tom Kyte:
    I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

    Comment


    • #3
      Hallo Dim,

      erstmal Danke für die Antwort...

      Zwengs Ressourcen:
      So wie es momentan ist, wird aller 2 Sekunden von allen angemeldeten Sessions von einer JAVA-Applikation eine SQL-Abfrage ausgeführt, welche zu 99% keine Ergebnisse liefert, also umsonst läuft (weil sich in 99 von 100 fällen nichts getan hat).

      Mein Vorhaben:
      Ich möchte jetzt den Spieß umdrehen:
      Oracle soll meiner Java-Applikation melden (diese muss natürlich irgendwie zuhören;-) ), wenn sich an einer bestimmte Tabelle eine Veränderung ergeben hat -> somit wird (hoffe ich zumindest) nur dann "agiert", wenn auch wirklich was geschehen ist.
      (Ich brauch praktischen irgendwie ne Mitteilung bzw. ein update an/bei allen angemeldeten Sessions, wenn bei einer bestimmten Tabelle durch einen User was geändert wurde).

      Das Problem mit der zeitlichen Verzögerung der Transaktion würde ich durch eine einfache Zwischenpause in meiner JAVA-Applikation lösen....

      gruß
      christoph

      Comment


      • #4
        Originally posted by Alfons Wiesmeier View Post
        Hallo Dim,

        erstmal Danke für die Antwort...

        Zwengs Ressourcen:
        So wie es momentan ist, wird aller 2 Sekunden von allen angemeldeten Sessions von einer JAVA-Applikation eine SQL-Abfrage ausgeführt, welche zu 99% keine Ergebnisse liefert, also umsonst läuft (weil sich in 99 von 100 fällen nichts getan hat).

        Mein Vorhaben:
        Ich möchte jetzt den Spieß umdrehen:
        Oracle soll meiner Java-Applikation melden (diese muss natürlich irgendwie zuhören;-) ), wenn sich an einer bestimmte Tabelle eine Veränderung ergeben hat -> somit wird (hoffe ich zumindest) nur dann "agiert", wenn auch wirklich was geschehen ist.
        (Ich brauch praktischen irgendwie ne Mitteilung bzw. ein update an/bei allen angemeldeten Sessions, wenn bei einer bestimmten Tabelle durch einen User was geändert wurde).

        Das Problem mit der zeitlichen Verzögerung der Transaktion würde ich durch eine einfache Zwischenpause in meiner JAVA-Applikation lösen....

        gruß
        christoph
        Hi,

        Wie Dim schon geschrieben hat : Solche Anforderungen sind mittel AQ (Advanced Queing) zu lösen :

        http://download.oracle.com/docs/cd/B...o.htm#g1019446



        Gruss

        Comment


        • #5
          Dann würd ich mir mal das hier durchlesen. Das dürfte am ehesten hinkommen.


          Dim
          Zitat Tom Kyte:
          I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

          Comment

          Working...
          X