Announcement

Collapse
No announcement yet.

COM+ Events - Wie kann ein Subscriber einem Publisher etwas mitteilen

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

  • COM+ Events - Wie kann ein Subscriber einem Publisher etwas mitteilen

    Hallo,

    ich habe folgendes Problem:

    ich löse ein COM+ Event aus und möchte in meiner Client-Anwendung die Aktivitäten des Subscribers des Events in einem Memo als eine Art LogMessages protokollieren. Die COM+ Anwendung soll jedoch als Serveranwendung und nicht als Bibliotheksanwendung laufen.
    Wie kann ich so etwas realisieren???

    Für jeden TIP bin ich dankbar.

  • #2
    Hallo,

    normalerweise nutzt man COM+ Events, weil man eine loose Kopplung zwischen Publisher und Subscriber erreichen möchte, bei der im Optimalfall sich beide Objekte gegenseitig "nicht kennen". Daher ist die Frage, ob COM+ Events für diese Aufgabe die ideale Lösung ist, oder ob nicht ein eigener <i>Callback-Manager</i> die Aufgabe cleverer umsetzen kann.

    &gt;... die Aktivitäten des Subscribers ... protokollieren...

    Hier fangen die Probleme bereits an, denn der Publisher kann gar nicht wissen, wie viele Subscriber gerade aktiv sind bzw. ob diese eventuell auch parallel ausgeführt werden (Mausklick des Admins des Rechners). Wenn die Subscriber über mehrere Threads parallel ausgeführt werden, müsste auch der Publischer jeden "Rückkanal" über einen eigene Thread laufen lassen, damit die Protokollfunktion nicht zum blockierenden Hemmnis wird.

    Da einzige, was sich bei einem COM+ Event als Rückkanal ohne gravierende Umbauten umsetzen lässt, wäre die Rundruf-Information via UDP, Mailslots etc

    Comment


    • #3
      Hallo Herr Kosch,

      OK sehe ich ein. Ich habe den Sinn und Zweck der COM+ Events einfach missverstanden. Ich werde es mit dem <I>Callback-Manager</I> realisieren.
      Aber zwei Fragen hätte ich noch:

      1. Ein Client initiiert in einer COM+ Anwendung, ob per Event oder Methode, einen Vorgang der erst nach einer längeren Zeit ( 5 – 10 Min. ) abgeschlossen ist. Wie kann die COM+ Anwendung den Client von dem Abschluss des Vorganges benachrichtigen? Da der Zeitpunkt ungewiss ist würde ich es per <I>Connection Point</I> realisieren. Oder kann man dieses Szenario auch per <I>Callback</I> lösen?

      2. Der <I>Publisher</I> ist in der Regel eine ausführbare Client Anwendung die die Events absetzt. Jetzt möchte ich erreichen, dass auf der anderen Seite ebenfalls eine ausführbare Anwendung von den durch den <I>Subscriber</I> implementierten Events Kenntnis nimmt.
      Anwendung A löst <I>DoNewDataForConvert</I> aus und Anwendung bekommt es mit und setzt den User davon in Kenntnis, dass die Daten konvertiert werden können. Wie realisere ich so etwas??? Mir fehlt der letzte Schritt, mit dem <I>Subscriber</I> eine Anwendung benachrichtigen.

      Danke für Ihre, mittlerweile schon zahlreiche, Tips. Diese waren schon immer sehr hilfreich. Das gleiche gilt für das Buch <I>COM/DCOM & COM+</I>. :

      Comment

      Working...
      X