Как работает доставка транзакционных сообщений MSMQ?

Просто хотел получить подтверждение того, как работает отправка сообщений в удаленные очереди транзакционных сообщений.

Предположим, у меня есть две машины, A и B.

Машина A имеет очередь транзакций, которая используется для приема сообщений. Служба Windows отслеживает эту очередь и что-то делает с данными (сохраняет их на SQL-сервере). На компьютере B выполняется приложение, которому необходимо записать в очередь на компьютере A.

Несколько вопросов:

  1. При отправке сообщения создается ли локальная копия на машине B, прежде чем она будет доставлена ​​на машину A?
    a.Если да, то это поведение по умолчанию или оно происходит только при отправке свойства IsRecoverable?
    b. Влияет ли на это поведение тот факт, что очередь является транзакционной?

  2. Поскольку я использую транзакционную очередь, где находятся данные после фиксации транзакции? a. Сидит ли он локально, ожидая, пока служба msmq доставит сообщение в удаленную очередь?
    b. Или сообщение находится в очереди на удаленном компьютере?

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

8
задан Kartik 4 October 2011 в 16:04
поделиться