Как определить разрыв соединения с помощью MessageQueue - PullRequest
5 голосов
/ 13 мая 2010

Мое приложение, написанное на C #, использует класс MessageQueue в .NET для связи сообщений с другим удаленным приложением, и MessageQueue всегда должен быть «связан» (присутствует пульс) с удаленным messageQueue при любых обстоятельствах. Если он не «подключен», то он сигнализирует о том, что что-то не так, и моему приложению нужно будет выполнить некоторые действия, такие как обновление журнала событий.

Есть ли в классе MessageQueue метод, который можно использовать для обнаружения таких разрывов соединения?

1 Ответ

3 голосов
/ 13 мая 2010

Очередь сообщений очень разработана для выживания разъединений. И поддерживает маршрутизацию через несколько машин. Таким образом, он не может проверить наличие соединения в реальном времени. Вы, вероятно, не должны рассматривать MSMQ, если это требование, TCP был бы лучшей ловушкой мыши.

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

...