Partilhar via


IPlaybackControl Interface

Definição

Funções em Componentes na Fila no tratamento anormal de erros de reprodução do lado do servidor e de falhas do lado do cliente do mecanismo de entrega do 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 e IPlaybackControl a interface para a 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 para informar ao objeto de manipulador de exceção que uma mensagem está prestes a ser colocada na fila de mensagens mortas ou em repouso final. 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 do problema ou gerando um objeto ou mensagem que informa o cliente sobre o problema. Se o aplicativo não implementar IPlaybackControl, a mensagem suspeita será colocada na fila final de mensagens mortas ou de repouso quando o Player de Componentes Enfileirados esgotar todas as tentativas.

Uma mensagem suspeita é 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 suspeita vai para o topo da fila. Quando a mensagem é removida da fila novamente, a mesma condição ocorre. Essa mensagem pode continuar em loop indefinidamente até que algo seja feito para corrigir o problema. O serviço Componentes Enfileirados manipula a mensagem suspeita usando uma série de repetições. Após 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 Migrador de Mensagens de Componentes Enfileirados.

A situação da mensagem suspeita 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 suspeita, 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 você não puder resolver o problema rapidamente, 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

FinalClientRetry()

Informa ao componente de tratamento de exceção do lado do cliente que todas as tentativas feitas pelo Enfileiramento de Mensagens de entregar a mensagem para o servidor foram rejeitadas e a mensagem ficou na fila de mensagens mortas do Xact do lado do cliente.

FinalServerRetry()

Informa a implementação de classe de exceção do lado do servidor que todas as tentativas de reproduzir a ativação adiada para o servidor falharam e a mensagem está prestes a ser movida para a sua fila de repouso final.

Aplica-se a