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 исходного класса и . Реализации метода исходного интерфейса класса используются для обработки исключений для методов, завершив ошибку в самом классе. Они будут вызываться после FinalClientRetry или FinalServerRetry для обработки исключений для первоначально вызываемого метода.
Проигрыватель компонентов с очередью вызывает методы , IPlaybackControl чтобы сообщить объекту обработчика исключений о том, что сообщение будет помещено в окончательную очередь недоставленных или недоставленных сообщений. Затем проигрыватель компонентов с очередью вызывает тот же метод в объекте обработчика исключений, который завершился сбоем при вызове исходного метода. Объект обработчика исключений может реализовать альтернативу, например путем сбора диагностических сведений о проблеме или создания объекта или сообщения, информирующего клиента о проблеме. Если приложение не реализует IPlaybackControl, подозрительное сообщение помещается в окончательную очередь недоставленных или недоставленных сообщений, когда проигрыватель компонентов в очереди исчерпывает все повторные попытки.
Подозрительное сообщение — это сообщение, которое не может быть обработано по какой-либо причине, возможно, из-за проблемы с сервером или системой очередей. Выполняется откат транзакции, и сообщение о подозрительных сообщениях отправляется в начало очереди. Когда сообщение снова выводится из очереди, возникает то же самое условие. Это сообщение может продолжать цикл в течение неограниченного времени, пока не будет сделано что-то для устранения проблемы. Служба "Компоненты в очереди" обрабатывает подозрительное сообщение с помощью ряда повторных попыток. После нескольких неудачных попыток сообщение перемещается в окончательную очередь отдыха. Подозрительные сообщения остаются в очереди, пока не перемещены вручную с помощью средства Перемещения сообщений в очереди компонентов.
Ситуацию с подозрительными сообщениями также можно устранить программным путем с помощью FinalServerRetry метода , который сообщает автору компонента на стороне сервера о том, что все попытки воспроизвести отложенную активацию завершились сбоем.
Если вы обнаружили подозрительное сообщение, возможно, вы сможете быстро устранить основную причину проблемы. Например, если сервер по какой-либо причине находился в автономном режиме, его можно вернуть. Если быстро решить проблему не удается, можно автоматически создать другую транзакцию, которая уведомляет инициатора запроса о том, что транзакция не произошла. Затем инициатор запроса может выполнить компенсирующую транзакцию, которая отменяет эффект транзакции, которая уже зафиксирована.
Методы
FinalClientRetry() |
Оповещает компонент обработчика исключений клиента о том, что все попытки очереди сообщений по доставке сообщения на сервер были отклонены, и сообщение оборвалось в очереди недоставленных сообщений об активных транзакциях клиента. |
FinalServerRetry() |
Оповещает реализацию класса исключений сервера о том, что все попытки воспроизведения отложенной активации для сервера не были выполнены, и сообщение будет перемещено в очередь для окончательного хранения. |