IPlaybackControl Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Funções em componentes enfileirados no tratamento anormal de erros de reprodução do lado do servidor e falhas no lado do cliente do mecanismo de entrega de Enfileiramento de Mensagens.
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
- Atributos
Comentários
A classe de exceção definida para o componente no catálogo COM+ implementa a IPlaybackControl interface da classe original. As implementações de método da interface de classe original são usadas para executar o tratamento de exceção para os métodos com falha na própria classe. Eles serão chamados após FinalClientRetry ou FinalServerRetry para processar exceções para o método originalmente chamado.
O Player de Componentes Enfileirados chama os métodos de IPlaybackControl informar ao objeto de manipulador de exceção que uma mensagem está prestes a ser colocada na fila final de mensagens mortas ou em repouso. O Player de Componentes Enfileirados chama o mesmo método no objeto de manipulador de exceção que falhou na chamada de método original. O objeto de manipulador de exceção pode implementar uma alternativa, por exemplo, coletando informações de diagnóstico de problema ou gerando um objeto ou mensagem que informe o cliente sobre o problema. Se o aplicativo não implementar IPlaybackControl, a mensagem de veneno será colocada na fila final de mensagens mortas ou em repouso quando o Player de Componentes Enfileirados esgota todas as tentativas.
Uma mensagem venenosa é uma mensagem que não pode ser processada por algum motivo, talvez devido a um problema com o servidor ou o sistema de enfileiramento. A transação é revertida e a mensagem de veneno vai para o topo da fila. Quando a mensagem é desativada novamente, a mesma condição ocorre. Essa mensagem pode continuar fazendo loops indefinidamente até que algo seja feito para corrigir o problema. O serviço Componentes Enfileirados manipula a mensagem de veneno usando uma série de tentativas. Depois de várias tentativas malsucedidas, a mensagem é movida para uma fila de repouso final. Mensagens suspeitas permanecem na fila de repouso até serem movidas manualmente usando a ferramenta mover mensagens de componentes enfileirados.
A situação da mensagem venenosa também pode ser resolvida programaticamente, usando o FinalServerRetry método, que informa ao autor do componente do lado do servidor que todas as tentativas de reproduzir a ativação adiada falharam.
Se você descobrir uma mensagem de veneno, poderá resolver rapidamente a causa subjacente do problema. Por exemplo, se o servidor estiver offline por algum motivo, você poderá colocar o servidor novamente online. Se não for possível resolver o problema rapidamente, você poderá gerar automaticamente outra transação que notifica o solicitante de que a transação não ocorreu. Em seguida, o solicitante pode fazer uma transação de compensação que reverte o efeito de uma transação que já foi confirmada.
Métodos
| Nome | Description |
|---|---|
| FinalClientRetry() |
Informa ao componente de tratamento de exceções do lado do cliente que todas as tentativas de Enfileiramento de Mensagens para entregar a mensagem ao servidor foram rejeitadas e a mensagem acabou na fila de Mensagens Mortas do Xact do lado do cliente. |
| FinalServerRetry() |
Informa à implementação da classe de exceção do lado do servidor que todas as tentativas de reproduzir a ativação adiada para o servidor falharam e que a mensagem está prestes a ser movida para sua fila de repouso final. |