SQL Service Broker Просмотр очереди - PullRequest
0 голосов
/ 01 июня 2010

Я пишу приложение на C #, которое использует SSB-очереди для связи с другими системами. При получении сообщения из очереди SSB я не всегда уверен, что смогу обработать его. Поэтому я хотел бы заглянуть в очередь (или, может быть, просто получить уведомление о том, что есть сообщение , не обязательно его содержимое), но в то же время использовать синтаксис SSB, включая WAITFOR.

Причина для этого заключается в том, что я хочу быть на 100% уверенным, что ни одно сообщение никогда не потеряется, даже если получатель испытывает какой-то неисправимый сбой. Другое решение может заключаться в том, чтобы заключить его в транзакцию, но это потребует гораздо большего количества изменений кода, чем простой вызов. Если у кого-то есть альтернативное решение, чтобы гарантировать, что никакие данные не будут потеряны, я весь в ушах.

1 Ответ

0 голосов
/ 02 июня 2010

Сначала вы должны получить сообщение, а затем решить, можете ли вы справиться с ним. Если вы не можете «написать сообщение в журнал и выручить» - но зафиксируйте транзакцию приема. Если вы откатите транзакцию (или просто загляните в очередь так, как вы намеревались), вы окажетесь в ситуации, когда есть сообщение, которое вы не можете обработать в очереди, и вы продолжаете просматривать (или получать / откатывать) его бесконечно. 1001 *

...