Ops 适配器实现详细信息

你可能会发现,在修改或以编程方式配置 Ops 适配器时,了解 Ops 适配器的以下方面很有用。

注意

Ops 适配器是使用适配器框架生成的。 有关使用框架生成适配器的信息,请参阅 开发自定义适配器

批处理

适配器一次处理一条消息,以便单独处理每条消息,一次只按一个顺序执行回滚操作。 尽管适配器一次处理一条消息,但它使用批大小为 1 的批处理来执行此操作。 这样,可以更轻松地修改适配器以批量处理消息。

事务处理

适配器使用 Microsoft .NET Framework System.Transactions 设施提供的事务工具。 适配器创建新的 CommitableTransaction 并将其与 TransactionScope 一起使用。 适配器在此事务的上下文中调用 InitializeExecute 方法。 调用程序集中的代码可以通过使用 Transaction.Current 静态方法获取事务上下文来参与事务。 示例错误处理程序不使用此功能。 有关 System.Transactions 的详细信息,请参阅.NET Framework类库版本中的“System.Transactions 命名空间”。

处理错误报告以外的数据

在解决方案中,适配器处理来自新错误报告功能的错误报告消息。 但是,由于 Execute 方法将字节数组作为其唯一参数,因此没有任何具体限制可以传递给 Execute 方法的内容。

以编程方式创建端口时使用适配器

从代码创建端口时,可以指定适配器。 下表显示了自定义属性名称及其与显示名称的对应方式。

发送自定义属性名称 显示名称
DotNetAssemblyStrongName DotNetAssemblyStrongName
DotNetClassName DotNetClassName
InitializationData InitializationData
TransportLocationUri 不适用。

所有属性都是字符串值。 从程序集名称和类名构造 TransportLocationUri 属性的值。 URI 的值 OPS://< DotNetAssemblyStrongName>/<DotNetClassName> ,其中占位符将替换为相应自定义属性的值。

有关从代码创建端口的信息,请参阅 如何创建 MSMQ 接收位置和从代码发送端口

另请参阅

Ops 适配器