Ich wundere mich über die genaue Definition einer Konversation und MS-Dokumente und Tutorials sind nicht ganz auf dem Punkt damit.Über mehrere Konversationen und/oder Warteschlangen
Zuerst ... gibt es einen Unterschied zwischen einem Dialog und einer Konversation?
eine Warteschlange Unter der Annahme, nur identische Nachrichten oder gleichwertige Nachrichten enthalten sollte
jedes Gespräch rund um ein dreht sich (IE Nachrichtentypen durch eine aktivierte Verfahren in einer Weise ähnlich zu einem Fall, wenn/SWITCH-Szenario abgewickelt wird) eindeutige Warteschlange?
Wenn eine Prozedur A eine Nachricht an eine Warteschlange sendet, die eine Prozedur B aktiviert, die die Nachricht behandelt, dann eine Antwort ausgibt, kann Prozedur A auf die Antwort warten, oder sollte ich eine Prozedur C verwenden? Darf ich annehmen, dass ich zwei Warteschlangen erstellen muss, die auf demselben Vertrag basieren? Aber wie viele Dienste? Wie und wo würde ich in diesem Szenario END CONVERSATION verwenden?
Wenn eine Prozedur A eine Nachricht an eine Warteschlange sendet, die eine Prozedur B aktiviert, die die Nachricht behandelt und dann eine oder mehrere Nachrichten für eine andere/andere Prozedur C ausgibt, sind all diese Warteschlangen/Dienste/usw. in der gleichen Konversation? Die gleiche Konversationsgruppe? (Was ich nach der GET CONVERSATION GROUP tun meine Gespräche, um sicherzustellen, sind in der gleichen Gruppe?) Hat das vorbei bedeuten das gleiche Gespräch Griff, wenn BEGIN TRANSACTION Ausgabe/BEGIN DIALOG oder mit
[MIT
[{RELATED_CONVERSATION = related_conversation_handle
| RELATED_CONVERSATION_GROUP = related_conversation_group_id}]
? Und ... last but not least, wenn ich mehrere Nachrichten benutze, um Anrufe mit verschiedenen Parametern an C weiterzuleiten/zu verzweigen, in welchem Fall würde ich ganz andere Konversationen/Konversationsgruppen starten wollen, die dasselbe tun oder ist es immer besser eine einzigartige „Erzählung“
Oh ... ein andere Sache zu haben ... ist es eine bewährte Methode, mehrere Nachrichten zu verwenden, um sich jeder von warten einige Behandlungen dann anrufen, bevor ein anderes zu beenden? Gibt es eine Möglichkeit, in der jede Prozedur eine Nachricht erhält, eine Antwort sendet und dann die von den Antworten aktivierte Prozedur die vorherigen Nachrichten in ihrer Warteschlange überprüfen/zählen und nur weiterlaufen kann, wenn sie alle da sind? Müsste das die Konversations-ID (oder Konversationsgruppen-ID) überprüfen, um sicherzugehen, dass diese Nachrichten alle von derselben Gruppe von Antworten ausgegeben werden?
Ich hoffe, das ist nicht zu viel verwirrend, aber MS-Tutorials sind ... naja ... ein bisschen zu einfach.
Danke für Ihre Antwort. Also, verstehe ich zu Recht, dass Ihre Antwort auf mein letztes Problem (Prozesse initiieren, dann Antworten sammeln, um zu wissen, wann alles erledigt ist und eine letzte zu beginnen), lieber eine Verfolgungstabelle als zählen/analysieren verwandte Antworten in der Warteschlange innerhalb verwenden würde die aktivierte Prozedur? –
Ich denke schon, ja. In meinem erfundenen Beispiel wissen Sie, dass es drei tatsächliche Operationen gibt, die von der logischen Operation der Einstellung eines neuen Angestellten herrühren. Jede dieser tatsächlichen Operationen kann eine einfache "eine Nachricht senden und eine Antwort erhalten" oder eine komplexe Hin-und-her sein. Sie haben die Flexibilität, den Nachrichtenfluss basierend darauf zu definieren, wie einfach oder komplex die Interaktion ist, die Sie modellieren. –
Ich erhalte Fehler 9610 ... Der Dienst '' in der FROM SERVICE-Klausel muss mit dem Dienst '' übereinstimmen, auf den% s = '% verweist. * ls '. Bedeutet das, dass Konversationsgruppen auf Services basierend auf den gleichen Verträgen verweisen müssen? –