IPlaybackControl Interface
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fonctionne dans Queued Components dans le cadre du traitement anormal des erreurs de lecture côté serveur et des échecs côté client du mécanisme de distribution Message Queuing.
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
- Attributs
Remarques
La classe d’exception définie pour le composant dans le catalogue COM+ implémente à la fois IPlaybackControl et l’interface de la classe d’origine. Les implémentations de méthode de l’interface de classe d’origine sont utilisées pour effectuer la gestion des exceptions pour les méthodes ayant échoué dans la classe elle-même. Ils seront appelés après FinalClientRetry ou FinalServerRetry pour traiter des exceptions pour la méthode initialement appelée.
Le lecteur composants mis en file d’attente appelle les méthodes de IPlaybackControl pour informer l’objet de gestionnaire d’exceptions qu’un message est sur le point d’être placé sur la dernière file d’attente de lettres mortes ou de repos. Le Lecteur composants mis en file d’attente appelle ensuite la même méthode dans l’objet gestionnaire d’exceptions qui avait échoué dans l’appel de méthode d’origine. L’objet de gestionnaire d’exceptions peut implémenter une alternative, par exemple, en recueillant des informations de diagnostic du problème ou en générant un objet ou un message qui informe le client du problème. Si l’application n’implémente IPlaybackControlpas , le message de poison est placé sur la dernière file d’attente de lettres mortes ou de repos lorsque le Lecteur de composants mis en file d’attente épuise toutes les nouvelles tentatives.
Un message incohérent est un message qui ne peut pas être traité pour une raison quelconque, peut-être en raison d’un problème avec le serveur ou le système de mise en file d’attente. La transaction est restaurée et le message incohérent passe en haut de la file d’attente. Lorsque le message est de nouveau en file d’attente, la même condition se produit. Ce message peut continuer à boucler indéfiniment jusqu’à ce que quelque chose soit fait pour corriger le problème. Le service Composants mis en file d’attente gère le message incohérent à l’aide d’une série de nouvelles tentatives. Après plusieurs tentatives infructueuses, le message est déplacé vers une file d’attente de repos finale. Les messages incohérents restent dans la file d’attente de repos jusqu’à ce qu’ils soient déplacés manuellement à l’aide de l’outil De déplacement de messages des composants mis en file d’attente.
La situation du message incohérent peut également être résolue par programmation, à l’aide de la FinalServerRetry méthode , qui informe l’auteur du composant côté serveur que toutes les tentatives de lecture de l’activation différée ont échoué.
Si vous découvrez un message incohérent, vous pourrez peut-être résoudre rapidement la cause sous-jacente du problème. Par exemple, si le serveur était hors connexion pour une raison quelconque, vous pouvez rétablir le serveur en ligne. Si vous ne pouvez pas résoudre le problème rapidement, vous pouvez générer automatiquement une autre transaction qui avertit le demandeur que la transaction n’a pas eu lieu. Le demandeur peut ensuite effectuer une transaction de compensation qui inverse l’effet d’une transaction déjà validée.
Méthodes
FinalClientRetry() |
Informe le composant de gestion des exceptions côté client que toutes les tentatives effectuées par l'utilitaire Message Queuing pour livrer le message au serveur ont été rejetées et que le message s'est retrouvé dans la file d'attente des lettres mortes Xact côté client. |
FinalServerRetry() |
Informe l'implémentation de la classe d'exception côté serveur que toutes les tentatives de lecture de l'activation différée vers le serveur ont échoué et que le message va être placé dans sa file d'attente de repos finale. |