MessageQueueTransaction 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供消息队列内部事务。
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 将main线程的状态设置为 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) |
适用于
线程安全性
此类型是线程安全的。