Architektur von Komponenten in der Warteschlange
Der COM+-Komponentendienst verbessert das COM-Programmiermodell, indem eine Umgebung bereitgestellt wird, in der eine Komponente synchron (Echtzeit) oder asynchron (in der Warteschlange) aufgerufen werden kann. Eine Komponente muss nicht wissen, ob sie in Echtzeit oder in einer Warteschlange verwendet wird.
Messaging-Anwendungen sind wie E-Mail-Transaktionen zwischen Programmen. Der Antragsteller sendet eine Nachricht an den Server; wenn der Server darauf zukommt, wird die Nachricht verarbeitet. Wie E-Mail muss ein Nachrichtensystem die Netzwerkdetails verarbeiten und sicherstellen, dass die Nachricht vom Client zum Server wechselt. Im Framework für in die Warteschlange eingereihte Komponenten ist Message Queuing dafür verantwortlich.
Der COM+-Komponentendienst in der Warteschlange besteht aus den folgenden Teilen:
- Recorder (für den Client oder sendeseitig)
- Listener (für den Server oder Empfangsseite)
- Spieler (für den Server oder die Empfangsseite)
Der Recorder
In einem typischen Szenario mit in die Warteschlange eingereihten Komponenten ruft der Client eine in die Warteschlange eingereihte Komponente auf. Der Aufruf erfolgt an die Aufzeichnung der in die Warteschlange eingereihten Komponenten, die sie als Teil einer Nachricht an den Server packt und in eine Warteschlange versetzt. Der Recorder marshallt den Sicherheitskontext des Clients in die Nachricht und zeichnet alle Methodenaufrufe des Clients auf. In seiner Rolle als Proxy für die Serverkomponente wählt der Recorder Schnittstellen aus den queuablen Schnittstellen im COM+-Katalog aus.
Eine Darstellung der Aufzeichnung wird an Message Queuing als Nachricht gesendet, die an einen Server gesendet werden soll. Wenn die in die Warteschlange eingereihte Komponente die Transaktions-Attributeinstellung "Erforderlich" oder "Unterstützt" aufweist, akzeptiert Message Queuing die Übermittlung der Nachricht nur, wenn die clientseitige Transaktion commits erfolgt und die Warteschlange "Message Queuing" transaktional ist, was normalerweise die Standardeinstellung ist. Wenn die Einstellung des Transaktionsattributes "Neu" erfordert, kann Message Queuing die Nachricht auch dann annehmen, wenn die clientseitige Transaktion abgebrochen wird. Weitere Informationen zu Transaktionen finden Sie unter Transactional Message Queuing.
Der Listener
Der Listener für in die Warteschlange eingereihte Komponenten ruft die Nachricht aus der Warteschlange ab und übergibt sie an den Player für in die Warteschlange eingereihte Komponenten.
Der Spieler
Der Spieler hebt den Sicherheitskontext des Clients auf der Serverseite auf und ruft dann die Serverkomponente auf und führt dieselben Methodenaufrufe aus. Die Methodenaufrufe werden vom Spieler erst wiedergegeben, wenn die Clientkomponente abgeschlossen ist, und die Transaktion, die die Methodenaufrufe aufgezeichnet hat, commits.
Der Nachrichten-Mover
Der Mover der in die Warteschlange eingereihten Komponenten ist ein Hilfsprogramm, das alle fehlgeschlagenen Nachrichtenwarteschlangen von einer Warteschlange in eine andere verschiebt, sodass sie erneut versucht werden können. Das Hilfsprogramm zum Verschieben von Nachrichten ist ein Automatisierungsobjekt, das mit einem VBScript aufgerufen werden kann. weitere Informationen finden Sie unter Behandeln von Fehlern.