MessageQueue.Transactional Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает значение, указывающее, принимает ли очередь только транзакции.
public:
property bool Transactional { bool get(); };
[System.Messaging.MessagingDescription("MQ_Transactional")]
public bool Transactional { get; }
[<System.Messaging.MessagingDescription("MQ_Transactional")>]
member this.Transactional : bool
Public ReadOnly Property Transactional As Boolean
Значение свойства
true Значение , если очередь принимает только сообщения, отправленные в рамках транзакции; falseв противном случае .
- Атрибуты
Исключения
Произошла ошибка при доступе к методу очереди сообщений.
Примеры
В следующем примере кода отображается значение свойства очереди Transactional сообщений.
// Display the value of the queue's Transactional property.
Console.WriteLine("MessageQueue.Transactional: {0}",
queue.Transactional);
Комментарии
Обмен сообщениями транзакций относится к связыванию нескольких связанных сообщений в одну транзакцию. Отправка сообщений в рамках транзакции гарантирует, что сообщения доставляются по порядку, доставляются только один раз и успешно извлекаются из конечной очереди.
Если очередь является транзакционной, она принимает только сообщения, отправляемые в рамках транзакции. Однако сообщение, отличное от транзакций, можно отправлять или получать из локальной очереди транзакций без явного использования транзакций и Abort синтаксиса.BeginCommit Если сообщение, отличное от транзакций, отправляется в очередь транзакций, этот компонент создает для него транзакцию с одним сообщением, за исключением случаев ссылки на очередь на удаленном компьютере с использованием прямого имени формата. В этой ситуации, если контекст транзакции не указан при отправке сообщения, он не создается для вас, и сообщение будет отправлено в очередь недоставленных писем.
Если вы отправляете сообщение, отличное от транзакций, в очередь транзакций, вы не сможете откатить сообщение в случае исключения.
MessageQueueTransaction учитывает потоки квартиры, поэтому если ваше состояние STAквартиры имеет значение, вы не можете использовать транзакцию в нескольких потоках. Visual Basic задает состояние основного потока STA, поэтому необходимо применить MTAThreadAttribute в подпрограмме Main . В противном случае отправка транзакционного сообщения с помощью другого потока вызывает MessageQueueException исключение. Применяется MTAThreadAttribute с помощью следующего фрагмента.
<System.MTAThreadAttribute>
public sub Main()
В следующей таблице показано, доступно ли это свойство в различных режимах рабочей группы.
| Режим рабочей группы | В наличии |
|---|---|
| Локальный компьютер | Да |
| Имя локального компьютера и прямого формата | Да |
| Удаленный компьютер | Нет |
| Имя удаленного компьютера и прямого формата | Нет |