IPlaybackControl Interface

Definição

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.

Aplica-se a