MessageQueueTransaction Класс

Определение

Обеспечивает внутреннюю транзакцию службы Message Queuing.Provides a Message Queuing internal transaction.

public ref class MessageQueueTransaction : IDisposable
public class MessageQueueTransaction : IDisposable
type MessageQueueTransaction = class
    interface IDisposable
Public Class MessageQueueTransaction
Implements IDisposable
Наследование
MessageQueueTransaction
Реализации

Комментарии

Чтобы отправить или получить сообщение в рамках MessageQueueTransaction транзакции, можно использовать класс для создания транзакции и передачи его в перегрузку MessageQueue.Send метода или MessageQueue.Receive метода, принимающего transaction параметр.To send or receive a message as part of a transaction, you can use the MessageQueueTransaction class to create a transaction and pass it to an overload of the MessageQueue.Send method or the MessageQueue.Receive method that takes a transaction parameter. Сообщения, отправляемые в рамках транзакции, должны отправляться в транзакционные очереди.Messages sent as part of a transaction must be sent to transactional queues. Сообщения, полученные из транзакционных очередей, должны быть получены с помощью указанной транзакции.Messages received from transactional queues must be received using a specified transaction.

В дополнение к Receive методу можно получить сообщения с указанным идентификатором или указанным идентификатором корреляции.In addition to the Receive method, you can receive messages with a specified identifier or specified correlation identifier. Дополнительные сведения ReceiveById о ReceiveByCorrelationId выборочном получении сообщений из транзакционных очередей см. в описании методов и.See the ReceiveById and ReceiveByCorrelationId methods for more information about selectively receiving messages from transactional queues.

Сообщения, отправленные в транзакционные очереди, удаляются при фиксации транзакции.Messages sent to transactional queues are removed if the transaction is committed. Аналогичным образом сообщения, полученные из транзакционных очередей, возвращаются в очередь при откате транзакции.Similarly, messages received from transactional queues are returned to the queue if the transaction is rolled back.

Если создать экземпляр MessageQueueTransaction и передать его в применимую перегрузку Send метода или Receive метода для отправки сообщения в нетранзакционную очередь или получения сообщения из нетранзакционной очереди, метод создает исключение, которое Указывает "неправильное использование транзакции".If you instantiate a MessageQueueTransaction and pass it to an applicable overload of the Send method or Receive method to send a message to a non-transactional queue or receive a message from a non-transactional queue, the method throws an exception that indicates "Wrong Transaction Usage."

MessageQueueTransactionучитывает потоковое подразделение, поэтому, если состояние апартамента STA—, нельзя использовать транзакцию в нескольких потоках.MessageQueueTransaction is threading apartment aware, so if your apartment state is STA, you cannot use the transaction in multiple threads. Visual Basic устанавливает состояние основного потока в STA, поэтому необходимо MTAThreadAttribute применить в Main подподпрограмме.Visual Basic sets the state of the main thread to STA, so you must apply the MTAThreadAttribute in the Main subroutine. В противном случае при отправке транзакционного сообщения с помощью другого потока создастся исключение MessageQueueException.Otherwise, sending a transactional message using another thread throws a MessageQueueException exception. Для MTAThreadAttribute применения используется следующий фрагмент.You apply the MTAThreadAttribute by using the following fragment.

<System.MTAThreadAttribute>  
 public sub Main()  

Конструкторы

MessageQueueTransaction()

Инициализирует новый экземпляр класса MessageQueueTransaction.Initializes a new instance of the MessageQueueTransaction class.

Свойства

Status

Получает статус данной транзакции.Gets the status of the transaction.

Методы

Abort()

Выполняет откат отложенной внутренней транзакции.Rolls back the pending internal transaction.

Begin()

Начинает новую внутреннюю транзакцию Message Queuing.Begins a new Message Queuing internal transaction.

Commit()

Фиксирует отложенную внутреннюю транзакцию.Commits a pending internal transaction.

Dispose()

Освобождает все ресурсы, занятые модулем MessageQueueTransaction.Releases all resources used by the MessageQueueTransaction.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом MessageQueueTransaction, а при необходимости освобождает также управляемые ресурсы.Releases the unmanaged resources used by the MessageQueueTransaction and optionally releases the managed resources.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
Finalize()

Освобождает ресурсы, удерживаемые текущим экземпляром.Releases the resources held by the current instance.

GetHashCode()

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Применяется к

Потокобезопасность

Данный тип потокобезопасен.This type is thread safe.

Дополнительно