IPlaybackControl 接口

定义

“消息队列”传送机制的服务器端播放错误和客户端失败的异常处理中的“排队组件”中的函数。

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
属性

注解

为 COM+ 目录中的组件定义的异常类实现 IPlaybackControl 和原始类的 接口。 原始类接口的方法实现用于对类本身中失败的方法执行异常处理。 它们将在 或 FinalServerRetry 之后FinalClientRetry调用,以处理最初调用的方法的异常。

排队组件播放器调用 的方法 IPlaybackControl ,以通知异常处理程序对象消息即将放置在最终的静态或死信队列中。 然后,排队组件播放器在异常处理程序对象中调用在原始方法调用中失败的相同方法。 异常处理程序对象可以实现替代方法,例如,通过收集问题诊断信息或生成对象或消息来通知客户端问题。 如果应用程序未实现 IPlaybackControl,则当排队组件播放器用完所有重试时,有害消息将放置在最终的休息或死信队列中。

有害消息是由于某种原因而无法处理的消息,可能是由于服务器或队列系统出现问题。 事务将回滚,病毒消息将进入队列顶部。 当消息再次取消排队时,将发生相同的情况。 此消息可以无限期地循环,直到执行某些操作来更正问题。 排队组件服务使用一系列重试来处理病毒消息。 多次重试失败后,消息将移动到最终的静态队列。 有害消息将保留在静态队列中,直到使用排队组件消息移动器工具手动移动。

还可以使用 FinalServerRetry 方法以编程方式解决有害消息情况,该方法会通知服务器端组件作者所有播放延迟激活的尝试都失败。

如果发现有害消息,则可能能够快速解决问题的根本原因。 例如,如果服务器由于某种原因脱机,则可以使服务器重新联机。 如果无法快速解决问题,可以自动生成另一个事务,以通知请求者事务未发生。 然后,请求者可以创建补偿事务,以反转已提交的事务的效果。

方法

FinalClientRetry()

通知客户端异常处理组件,消息队列将消息发送至服务器的所有尝试均被拒绝,消息终止于客户端的 Xact 死信队列。

FinalServerRetry()

通知服务器端异常类实现,所有将被推迟的激活播放至服务器的尝试均已失败,该消息将被移至其最终静止队列。

适用于