Share via


IPlaybackControl Schnittstelle

Definition

Kann in Queued Components bei der nicht ordnungsgemäßen Behandlung von serverseitigen Wiedergabefehlern und bei clientseitigen Fehlern des Übermittlungsmechanismus von Message Queuing verwendet werden.

public interface class IPlaybackControl
[System.Runtime.InteropServices.Guid("51372AFD-CAE7-11CF-BE81-00AA00A2FA25")]
[System.Runtime.InteropServices.InterfaceType(System.Runtime.InteropServices.ComInterfaceType.InterfaceIsIUnknown)]
public interface IPlaybackControl
[<System.Runtime.InteropServices.Guid("51372AFD-CAE7-11CF-BE81-00AA00A2FA25")>]
[<System.Runtime.InteropServices.InterfaceType(System.Runtime.InteropServices.ComInterfaceType.InterfaceIsIUnknown)>]
type IPlaybackControl = interface
Public Interface IPlaybackControl
Attribute

Hinweise

Die für die Komponente im COM+-Katalog definierte Ausnahmeklasse implementiert sowohl als auch IPlaybackControl die Schnittstelle für die ursprüngliche Klasse. Die Methodenimplementierungen der ursprünglichen Klassenschnittstelle werden verwendet, um die Ausnahmebehandlung für die fehlerhaften Methoden in der Klasse selbst auszuführen. Sie werden nach FinalClientRetry oder FinalServerRetry aufgerufen, um Ausnahmen für die ursprünglich aufgerufene Methode zu verarbeiten.

Der Player für Komponenten in Warteschlange ruft die Methoden von IPlaybackControl auf, um das Ausnahmehandlerobjekt darüber zu informieren, dass eine Nachricht in der letzten Warteschlange für ruhende oder unzustellbare Nachrichten platziert werden soll. Der Player für Komponenten in der Warteschlange ruft dann dieselbe Methode im Ausnahmehandlerobjekt auf, das beim ursprünglichen Methodenaufruf fehlgeschlagen war. Das Ausnahmehandlerobjekt kann eine Alternative implementieren, z. B. indem Informationen zur Problemdiagnose gesammelt oder ein Objekt oder eine Nachricht generiert wird, die den Client über das Problem informiert. Wenn die Anwendung nicht implementiert IPlaybackControl, wird die nicht verarbeitbare Nachricht in die letzte Ruhe- oder Unzustellbare Warteschlange eingefügt, wenn der Player für Komponenten in Warteschlange alle Wiederholungen auslastet.

Eine nicht verarbeitbare Nachricht ist eine Nachricht, die aus irgendeinem Grund nicht verarbeitet werden kann, z. B. aufgrund eines Problems mit dem Server oder dem Warteschlangensystem. Für die Transaktion wird ein Rollback ausgeführt, und die nicht verarbeitbare Nachricht wird an den Anfang der Warteschlange verschoben. Wenn die Nachricht wieder aus der Warteschlange entfernt wird, tritt die gleiche Bedingung auf. Diese Meldung kann die Schleife auf unbestimmte Zeit fortsetzen, bis ein Problem behoben wurde. Der Dienst "Komponenten in die Warteschlange" verarbeitet die nicht verarbeitbare Nachricht mithilfe einer Reihe von Wiederholungen. Nach mehreren erfolglosen Wiederholungen wird die Nachricht in eine letzte Ruhewarteschlange verschoben. Nicht verarbeitbare Nachrichten verbleiben in der ruhenden Warteschlange, bis sie mithilfe des Message Mover-Tools für warteschlangenbasierte Komponenten manuell verschoben werden.

Die Situation mit nicht verarbeitbaren Nachrichten kann auch programmgesteuert mithilfe der FinalServerRetry -Methode aufgelöst werden, die den Autor der serverseitigen Komponente darüber informiert, dass alle Versuche, die verzögerte Aktivierung wiederzugeben, fehlgeschlagen sind.

Wenn Sie eine nicht verarbeitbare Nachricht entdecken, können Sie die zugrunde liegende Ursache des Problems möglicherweise schnell lösen. Wenn der Server beispielsweise aus irgendeinem Grund offline war, können Sie den Server wieder online schalten. Wenn Sie das Problem nicht schnell lösen können, können Sie automatisch eine andere Transaktion generieren, die den Anforderer benachrichtigt, dass die Transaktion nicht aufgetreten ist. Der Anforderer kann dann eine ausgleichende Transaktion durchführen, die die Auswirkung einer Transaktion umkehrt, für die bereits ein Commit ausgeführt wurde.

Methoden

FinalClientRetry()

Informiert die clientseitige Ausnahmebehandlungskomponente, dass alle Versuche von Message Queuing zum Übermitteln der Meldung an den Server zurückgewiesen wurden und dass die Meldung in der clientseitigen Xact-Warteschlange für unzustellbare Meldungen abgelegt wurde.

FinalServerRetry()

Informiert die serverseitige Ausnahmeklassenimplementierung, dass alle Versuche zum Wiedergeben der verzögerten Aktivierung auf dem Server fehlgeschlagen sind und die Meldung gerade in die Warteschlange für den endgültigen Verbleib verschoben wird.

Gilt für: