Время жизни сообщений в очереди сообщений

Как вы контролируете время жизни сообщения в очереди сообщений? Каков срок службы по умолчанию? Я попытался запустить очереди сообщений локально и обнаружил, что сообщения исчезают при перезагрузке системы. Разве это не противоречит цели очереди сообщений при создании слабосвязанных приложений. Означает ли это, что когда сообщения отправляются на другую машину для обработки, они не будут доступны на следующий день. Некоторые рекомендации здесь высоко ценятся, так как я не совсем понимаю эти аспекты системы очередей сообщений.


person kjayakum    schedule 21.02.2009    source источник


Ответы (2)


Существует два вида нетранзакционных сообщений. Существует экспресс-сообщение и восстанавливаемое сообщение. Экспресс-сообщение исчезнет при перезапуске сервера (или службы msmq, я думаю). Экспресс-сообщение используется по умолчанию в .net API и com API. Чтобы сделать сообщение постоянным, вы должны установить для свойства Recoverable значение true. Вот объяснение сантехника.

Существуют и другие свойства для управления временем жизни сообщения. Но по умолчанию они навсегда.

Помните также, что это свойства сообщения, а не свойства очереди.

person Igal Serban    schedule 20.08.2009

Что вы устанавливаете для свойства TimeToBeReceived?

Очереди сообщений хранятся на диске, поэтому перезагрузка не должна их удалять, пока срок их действия не истек.

Также имейте в виду, что если вы отправите сообщение в несуществующую очередь, оно будет отброшено — убедитесь, что вы настроили очередь перед ее использованием.

-Адам

person Adam Davis    schedule 21.02.2009