2009-06-24 23 views
5

System A erfasst X-Informationen von Benutzern über die Benutzeroberfläche. Diese Information wird validiert und in einer Datenbank gespeichert. Der Benutzer kann die Informationen ändern, hinzufügen oder löschen. Ich muss diese X-Informationen mit System B über den Web-Service synchronisieren. Außerdem muss ich diese Informationen so schnell wie möglich senden, nachdem sie in der Datenbank gespeichert wurden.Ist MSMQ eine gute Idee?

Ich dachte hier an MSMQ. System A sendet eine Nachricht an eine Warteschlange. Ein anderer Prozess, der auf Nachrichten in dieser Warteschlange wartet, verarbeitet die Nachricht, indem er die Informationen aus der Datenbank liest und an System B sendet. Ich möchte wissen, ob es eine gute Idee ist, hier MSMQ zu verwenden oder meinen eigenen einfachen Warteschlangenmechanismus zu schreiben polling die Datenbank regelmäßig.

Da in der Nähe von Echtzeit-Übertragung und Garantie erforderlich ist, dachte ich, es ist eine gute Idee, MSMQ zu verwenden. Gibt es noch andere bessere Lösungen?

Technologieplattform ist .Net mit Oracle-Datenbank.

Antwort

4

MSMQ scheint in Ihrem Szenario ziemlich praktisch zu sein, da Sie mit AQs in Oracle nicht vertraut sind. MSMQ ist sicher schnell genug für die Replikation in Ihrem Fall. Das Erstellen einer eigenen Warteschlange für den gleichen Zweck ist nicht weniger als das Rad neu zu erfinden und den Code zu erhöhen, den Sie pflegen müssen. Die Implementierung von MSMQ in .NET ist reibungslos, was ein weiteres Plus ist.

+0

Nun, ich habe auch keine Ahnung von MSMQ, mir ist nur das Konzept bekannt. –

+0

Sehen Sie, ob dieses Tutorial hilft http://www.devx.com/dotnet/Article/27560/0/page/1 – Faheem

4

Datenbankabfragen sind wahrscheinlich nicht die beste Idee, besonders wenn Sie Oracle verwenden, der bereits advanced queueing enthält. Wenn Sie sich dazu entschließen, die Umfrage durchzuführen (gegen meinen Rat), verwenden Sie DBMS_ALERT, um den Sendeprozess von Änderungen zu benachrichtigen.

+0

Ich weiß wenig über erweiterte Warteschlangen. Ich muss einen Datensatz in der Queue-Tabelle protokollieren und der Oracle Queuing-Mechanismus wird den Datensatz auswählen und wir können verarbeiten. Ist es besser als MSMQ? –

+0

Ich habe keine Erfahrung mit MSMQ, also kann ich Ihnen nicht sagen, welches besser ist. Beides wird wahrscheinlich reichen. –

1

Sie könnten synchronization services betrachten. Sie können beide SQL Server and Oracle verwenden.

+1

Ich weiß nicht darüber, aber scheint seine direkte Datenbank zur Datenbanksynchronisierung. Ich kann dies nicht tun, da direkte Konnektivität nicht verfügbar ist. Ich muss den Webservice verwenden, um die Daten zu senden. –

Verwandte Themen