MessageQueueTransaction 类

定义

提供消息队列内部事务。

public ref class MessageQueueTransaction : IDisposable
public class MessageQueueTransaction : IDisposable
type MessageQueueTransaction = class
    interface IDisposable
Public Class MessageQueueTransaction
Implements IDisposable
继承
MessageQueueTransaction
实现

注解

若要将消息作为事务的一部分发送或接收,可以使用 MessageQueueTransaction 类创建一个事务,并将其传递给 方法或MessageQueue.Receive采用 transaction 参数的方法的MessageQueue.Send重载。 作为事务的一部分发送的消息必须发送到事务队列。 必须使用指定的事务接收从事务队列接收的消息。

除了 方法之外 Receive ,还可以接收具有指定标识符或指定相关标识符的消息。 有关选择性地从事务队列接收消息的详细信息, ReceiveById 请参阅 和 ReceiveByCorrelationId 方法。

如果已提交事务,则发送到事务队列的消息将被删除。 同样,如果事务回滚,则从事务队列接收的消息将返回到队列。

如果实例化 MessageQueueTransaction 并将其传递给 方法或 Receive 方法的Send适用重载,以便将消息发送到非事务队列或从非事务性队列接收消息,该方法将引发异常,指示“事务使用错误”。

MessageQueueTransaction 是线程单元感知,因此如果单元状态为 STA,则不能在多个线程中使用事务。 Visual Basic 将主线程的状态设置为 STA,因此必须在子例程中Main应用 MTAThreadAttribute 。 否则,利用另一个线程发送事务性消息将引发 MessageQueueException 异常。 使用以下片段应用 MTAThreadAttribute

<System.MTAThreadAttribute>  
 public sub Main()  

构造函数

MessageQueueTransaction()

初始化 MessageQueueTransaction 类的新实例。

属性

Status

获取事务的状态。

方法

Abort()

回滚正挂起的内部事务。

Begin()

开始新的消息队列内部事务。

Commit()

提交正挂起的内部事务。

Dispose()

释放由 MessageQueueTransaction 使用的所有资源。

Dispose(Boolean)

释放由 MessageQueueTransaction 占用的非托管资源,还可以另外再释放托管资源。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
Finalize()

释放由当前实例所持有的资源。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于

线程安全性

此类型是线程安全的。

另请参阅