IPlaybackControl Interface
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Funções nos Componentes em Fila na gestão anormal de erros de reprodução do lado do servidor e falhas do lado cliente do mecanismo de entrega da Fila 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
Observações
A classe de exceção definida para o componente no catálogo COM+ implementa tanto IPlaybackControl como a interface para a classe original. As implementações de métodos da interface original da classe são usadas para realizar o tratamento de exceções para os métodos falhados na própria classe. Eles serão chamados após FinalClientRetry ou FinalServerRetry para processar exceções para o método originalmente chamado.
O Jogador de Componentes em Fila chama os métodos de IPlaybackControl para informar o objeto gestor de exceções de que uma mensagem está prestes a ser colocada na fila de repouso final ou de letras mortas. O Jogador de Componentes em Fila chama então o mesmo método no objeto de tratador de exceções que falhou na chamada de método original. O objeto gestor de exceções pode implementar uma alternativa, por exemplo, recolhendo informações de diagnóstico do problema ou gerando um objeto ou mensagem que informe o cliente sobre o problema. Se a aplicação não implementar IPlaybackControl, a mensagem de veneno é colocada na fila de repouso final ou de letras mortas quando o Jogador de Componentes em Fila 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 sistema de fila. A transação é revertida, e a mensagem de veneno vai para o topo da fila. Quando a mensagem é novamente retirada da fila, ocorre a mesma condição. Esta mensagem pode continuar a repetir-se indefinidamente até que algo seja feito para corrigir o problema. O serviço Componentes em Fila trata a mensagem de veneno usando uma série de tentativas. Após várias tentativas falhadas, a mensagem é movida para uma fila de descanso final. As mensagens de envenenamento permanecem na fila de repouso até serem movidas manualmente usando a ferramenta Mouver de Mensagens de Componentes em Fila.
A situação da mensagem envenenada também pode ser resolvida programaticamente, usando o FinalServerRetry método, que informa o autor do componente do lado do servidor que todas as tentativas de reproduzir a ativação adiada falharam.
Se descobrir uma mensagem venenosa, poderá conseguir resolver rapidamente a causa subjacente do problema. Por exemplo, se o servidor estivesse offline por algum motivo, pode voltar a ligar o servidor. Se não conseguir resolver o problema rapidamente, pode gerar automaticamente outra transação que notifique o requerente de que a transação não ocorreu. O requerente pode então efetuar uma transação compensatória que reverte o efeito de uma transação já comprometida.
Métodos
| Name | Description |
|---|---|
| FinalClientRetry() |
Informa o componente de gestão de exceções do lado do cliente que todas as tentativas de Fila de Mensagens para entregar a mensagem ao servidor foram rejeitadas, e a mensagem acabou na fila Xact Dead Letter do lado do cliente. |
| FinalServerRetry() |
Informa a implementação da classe de exceção do lado do servidor que todas as tentativas de reproduzir a ativação diferida para o servidor falharam, e a mensagem está prestes a ser movida para a sua fila de repouso final. |