Ich bin ein Sql Server Service Broker-Neuling und ich versuche, den besten Weg, um Service Broker für einen (scheinbar) einfachen Anwendungsfall einrichten zu erfassen: Ich möchte eine einfache Arbeitswarteschlange erstellen, in der eine Anwendung Arbeitselemente in die Warteschlange ablegt und eine andere Anwendung Arbeitselemente aus dieser Warteschlange aufnimmt und verarbeitet. Es besteht keine Notwendigkeit für die erste Anwendung, Statusmeldungen von der zweiten Anwendung zurückzubekommen. Ich möchte, dass die Warteschlange in einer einzigen Sql Server-Instanz läuft.
Was mich am meisten verwirrt, ist die Frage, wie sich Gespräche/Dialoge auf diese Situation beziehen. Ich weiß, dass man Nachrichten nur im Rahmen einer Unterhaltung/eines Dialogs senden/empfangen kann, aber da es kein Hin- und Hergeplapper zwischen den beiden Anwendungen gibt, weiß ich nicht, wann der richtige Zeitpunkt ist, um eine neue Unterhaltung zu beginnen. Die beiden extremen Alternativen scheinen zu sein:
- Jedes Mal, wenn ich ein Workitem in die Warteschlange stelle, beginne ich ein neues Gespräch. Jede Konversation enthält also genau eine Nachricht.
- Zum Zeitpunkt der Bereitstellung erstelle ich manuell ein einzelnes Gespräch mit unendlicher Lebensdauer. Wenn es an der Zeit ist, ein Workitem in die Warteschlange zu stellen, sende ich es immer als Teil dieser einzigen Konversation.
Was wären die Konsequenzen, wenn Sie einen dieser Wege einschlagen würden?
Auch im ersten Fall scheint es, wie ich einige END CONVERSATIONs tun müssen, um für Sql Server in der Lage, Ressourcen intern zu bereinigen. Gibt es eine Anleitung dafür, wann der richtige Ort wäre, um diese zu setzen? (Oder ist es möglicherweise besser, sich darauf zu verlassen, dass die Unterhaltungen irgendwann beendet werden?)