Freigeben über


Empfangen einer Antwort

Da Komponenten in der Warteschlange für die asynchrone Arbeit konzipiert sind, sollten Clientanwendungen nicht blockieren, während sie auf eine Antwort aus einer Anforderung in der Warteschlange warten. Dennoch ist es häufig hilfreich, dass die Clientanwendung oder eine zugehörige Anwendung auf dem Clientcomputer schließlich eine Antwort erhält. Beispielsweise kann ein Client benachrichtigt werden, wenn eine angeforderte Transaktion erfolgreich abgeschlossen wurde.

Es gibt eine Vielzahl von Möglichkeiten, wie eine Komponente in der Warteschlange eine Antwort asynchron an ihren Aufrufer zurücksenden kann. Sie könnte beispielsweise eine E-Mail senden. Alternativ kann der Server lose gekoppelte Ereignisse veröffentlichen, die der Client abonnieren kann.

Eine weitere Möglichkeit für einen Client, eine Antwort von einer Komponente in der Warteschlange abzurufen, die auf einem Server ausgeführt wird, besteht darin, dass der Client die aufgerufene Methode als Benachrichtigungsobjekt übergibt. Ein Benachrichtigungsobjekt ist ein instance einer Komponente in der Warteschlange, die auf dem Client ausgeführt wird. Ein solches Benachrichtigungsobjekt kann recht einfach sein und nur eine ganze Zahl enthalten, die verwendet wird, um einen Fehlerwert darzustellen, oder es kann sehr komplex sein und alle Informationen enthalten, die zum Rollback einer Transaktion auf dem Client erforderlich sind. In beiden Fällen übergibt der aufrufende Client ein Benachrichtigungsobjekt als Eingabeparameter, wenn er eine Antwort von einer Komponente in der Warteschlange wünscht, die auf einem Server ausgeführt wird. Da sich das Benachrichtigungsobjekt in der Warteschlange befindet, kann der Server für seine Methoden aufrufen, um seinen Zustand zu ändern, der anschließend vom Client ausgelesen werden kann. In diesem Szenario wird der COM+-Komponentendienst in der Warteschlange sowohl auf dem Client als auch auf dem Server verwendet, um asynchrone Kommunikation in beide Richtungen zu ermöglichen.