Обеспечьте надежность сообщений при использовании WCF

Мне интересно, как мы можем обеспечить надежность сообщений при использовании websphere MQ и WCF. Я хочу, чтобы мой процесс WCF выбирал сообщения из очереди, и если есть проблема, с которой сталкивается приложение (отключение питания и т. Д.), Я не теряю сообщения. Я также хотел бы не использовать транзакцию, если это вообще возможно, потому что я хочу исключить распределенные транзакции.

Спасибо,

S


person scarpacci    schedule 13.04.2012    source источник


Ответы (2)


Ну, есть транзакции и есть распределенные транзакции. «Правильный» ответ - использовать здесь однофазную фиксацию WMQ. Это не так сложно, как транзакции XA, но дает вам возможность откатить сообщение, не теряя его. Фактически, при использовании клиентов вы действительно должны использовать хотя бы однофазную фиксацию, чтобы предотвратить потерю сообщений.

Если не считать этого, всегда есть метод «просмотр с блокировкой, удаление сообщения под курсором». Я почти уверен, что все, что вам нужно для просмотра, блокировки и удаления, доступно в .NET, но, возможно, Шаши прокомментирует и подтвердит.

person T.Rob    schedule 13.04.2012

Пользовательский канал WebSphere MQ WCF имеет функцию «Гарантированная доставка», которая гарантирует, что запрос или ответ службы будут выполнены и не потеряны. Это однофазная фиксация (также известная как SYNC_POINT в) WMQ.

«Предполагаемая доставка» - это атрибут контракта на обслуживание. Здесь подробнее об этой функции.

person Shashi    schedule 14.04.2012