如何使用消息上下文属性

系统属性主要由 BizTalk 消息引擎及其组件在内部使用。 通常,不建议更改引擎为这些属性设置的值,因为它可能会影响引擎的执行逻辑。 但是,可以更改大量属性。

下表包含消息引擎可以提升的消息上下文属性的列表。 可以使用这些属性在 Microsoft BizTalk Server 中的发送端口和业务流程上创建筛选器表达式。 例如,

PortName = MyMessage(BTS.ReceivePortName);  
MyFileName = MyMessage(FILE.ReceivedFileName);  
MySubject= MyMessage(POP3.Subject);  

单独的表列出了某些无法升级的 BizTalk 应用程序中可能要使用的其他属性。

资产 何时和何处推广 类型 DESCRIPTION
BTS。AckFailureCategory 消息引擎在将确认消息发布到 MessageBox 数据库之前已触发。 xs:int 标识 ErrorCategory,该类别说明暂停的位置和原因。
BTS.AckFailureCode 消息引擎在将确认消息发布到 MessageBox 数据库之前升级。 xs:string 识别 ErrorCode,指明挂起的位置和原因。
BTS.AckID 在确认消息发布到 MessageBox 数据库之前,由消息引擎推动。 xs:string 标识原始消息的 MessageID
BTS.AckInboundTransportLocation 在将确认消息发布到 MessageBox 数据库之前,由消息引擎推动。 xs:string 从原始消息中识别 InboundTransportLocation
BTS.AckOutboundTransportLocation 在将确认消息发布到 MessageBox 数据库之前,消息引擎进行促进。 xs:string 从原始消息中标识 OutboundTransportLocation
BTS.AckOwnerID 在将确认消息发布到 MessageBox 数据库之前,由消息引擎进行提升。 xs:string 标识原始消息中的实例 ID。
BTS.AckReceivePortID 消息引擎在将确认消息发布到 MessageBox 数据库之前升级。 xs:string 标识原始消息中的 ReceivePortID
BTS.AckReceivePortName 消息引擎用于支持确认消息。 xs:string 标识原始消息中的 ReceivePortName
BTS。AckSendPortID 消息引擎在将确认消息发布到 MessageBox 数据库之前升级。 xs:string 标识原始消息中的 SendPortID
BTS.AckSendPortName 在将确认消息发布到 MessageBox 数据库之前,消息引擎推动该消息。 xs:string 标识原始消息中的 SendPortName
BTS.AckType 在将确认消息发布到 MessageBox 数据库之前,由消息引擎促成。 xs:string 允许通过编排监控确认和非确认。 对于确认,该值将为 ACK,对于负确认,为 NACK。
BTS。ActionOnFailure 在调用 IBTTTransportBatch::SubmitMessage() API 以将消息提交到 BizTalk 之前,适配器可以设置此属性。 xs:int 控制在接收管道发生故障时消息引擎的行为。 消息引擎通常挂起失败的消息;但是,某些适配器(如 HTTP)将故障报告回客户端,而不是在接收管道故障时挂起消息。

有效值:

-违约。 如果该属性不存在,消息引擎将自动尝试暂停消息。
- 0. 指示消息引擎不应自动挂起引擎。

其他值保留供将来使用。
BTS.CorrelationToken 如果在消息上下文上设置了此属性,消息引擎会提升此属性。 当请求-响应适配器或业务流程将请求消息提交到 MessageBox 数据库中时,隐式在上下文上设置此属性。 xs:string 允许将响应路由到请求-响应端口。
BTS。EpmRRCorrelationToken 由消息传送引擎在请求-响应消息的执行过程中触发。 在将消息提交到 MessageBox 数据库之前,将提升该属性。 xs:int 消息引擎在内部使用。 指定请求响应消息流的服务器名称、进程 ID 和唯一 GUID。
BTS.InboundTransportLocation 消息引擎在从接收适配器收到消息后以及将其发布到 MessageBox 数据库之前触发。 xs:string 指定处理程序接收消息的位置(URI)。
BTS.InboundTransportType 由消息引擎在接收适配器收到消息后,以及将消息发布到 MessageBox 数据库之前进行处理。 xs:string 指定接收此消息并将其提交到服务器中的适配器类型:FILE、HTTP 等。
BTS。InterchangeSequenceNumber 从接收适配器收到消息后,消息引擎在将其发布到 MessageBox 数据库之前,由消息引擎进行移动。 xs:int 指示在交换过程中文档的序列号。 如果文档不属于已分解为单个文档的交换的一部分,则此值将为 1。 该属性可以在业务流程、发送管道和发送适配器中读取。
BTS.IsDynamicSend 可以在消息上下文上设置此属性。 它不会被推广,并且仅适用于发送操作。 xs:boolean 当发送作位于动态发送端口上时,消息引擎会将该值写入消息上下文,其值为 true。 如果要在发送管道中动态设置静态发送端口的属性,则需要将此值设置为 true。
BTS。MessageDestination 当从 GetNext()返回消息时,可以通过反汇编器管道组件在接收管道中设置此属性。 xs:string 主要用于支持反汇编程序中的可恢复交换处理,此属性控制消息是发布到消息框还是挂起到挂起队列中。 如果管道在数据交换中遇到错误消息,并且希望暂停消息并继续处理,则可以通过设置 MessageDestination = SuspendQueue 来执行此操作,并在引擎调用反汇编程序上的 GetNext() 时返回消息。

有效值:

-违约。 如果该属性不存在,则假定消息良好,并发布到消息框。
- SuspendQueue。 指令消息引擎挂起该消息。 注意: 挂起的消息将是经过管道处理后的消息/映射消息,而不是适配器提交的线传消息。
BTS。MessageType 消息解析过程中,由反汇编管道组件推动。 xs:string 指定消息的类型。 消息类型定义为文档架构命名空间和文档根节点的串联:http://<MyNamespace>#<MyRoot>。
BTS。OutboundTransportLocation 如果在消息上下文上设置了此属性,消息引擎会提升此属性。 当业务流程将消息发送到发送端口时,在消息上下文上隐式设置此属性。 也可以在业务流程或管道中显式设置此属性。 xs:string 指定发送消息的目标位置 URI。 URI 可能包含适配器前缀,例如 http://。 消息引擎使用适配器前缀来确定发送消息时要使用的适配器类型。 如果适配器前缀和BTS.OutboundTransportType属性都已设置,那么BTS.OutboundTransportType中的适配器类型始终优先于从前缀确定的适配器类型。

有效值:

BizTalk 消息队列: DIRECT=PRIVATE=PUBLIC=

文件: file://

FTP: FTP://

HTTP: http://https://

SMTP: mailto:

SOAP: SOAP://

SQL: SQL://
BTS.OutboundTransportType 如果在消息上下文上设置了此属性,消息引擎会提升此属性。 当业务流程向发送端口发送消息时,在上下文中隐式设置此属性。 也可以在编排或管道中显式设置此属性。 xs:string 指定用于发送消息的适配器的类型。 可用的适配器类型为 FILEFTPHTTPSMTPSOAPSQL

在此属性上设置的值以及地址中指定的适配器前缀不区分大小写。
BTS。PropertiesToUpdate 当适配器需要保留被重新提交或挂起的失败消息中的某些属性值时,它会设置此属性。

这意味着,当消息重新提交或恢复时,它将在上下文中设置指定的属性。
xs:string 包含一个 XML 字符串,其中包含表示属性名称、命名空间和值的元素。
BTS.ReceivePortID 由消息引擎在接收适配器收到消息后,以及将消息发布到 MessageBox 数据库之前进行处理。 xs:int 标识接收消息的接收端口。
BTS.ReceivePortName 由消息引擎在接收适配器收到消息后,以及将消息发布到 MessageBox 数据库之前进行处理。 xs:string 接收消息的接收端口的用户友好名称。
BTS。RouteDirectToTP 由消息引擎在消息处理中促进,用于回环或请求响应执行。 在将消息提交到 MessageBox 数据库之前,将提升该属性。 xs:boolean 消息引擎在内部用于启用环回和请求响应方案。
BTS.SPGroupID 当消息从业务流程发送到发送端口时,消息引擎将提升。 xs:string 指定发送端口组的 ID。
BTS.SPID 当消息从业务流程被发送到发送端口时,消息引擎会被触发。 xs:string 指定发送端口的 ID。
BTS.SPName 当从 Solicit-Response 发送端口发布响应消息时,消息引擎会促使该操作。 xs:string 用于从 Solicit-Response 发送端口订阅响应消息。 该值是发送端口的名称。
BTS.SPTransportBackupID 当消息从业务流程发送到发送端口时,由消息引擎进行提升。 xs:string 指定发送端口中备份适配器的 ID。
BTS.SPTransportID 当消息引擎将一条消息从业务流程发送到发送端口时,会启动该引擎。 xs:string 指定发送端口中主适配器的 ID。
BTS.SuspendAsNonResumable 在将消息发送到发送端口之前,可以先由适配器在调用 SubmitMessage()或业务流程中设置此属性。 注意: SubmitRequestMessage() 会忽略此属性;双向消息总是以不可恢复的状态挂起。 xs:boolean 控制消息引擎是否应在消息失败时将消息挂起为不可恢复的消息。 通常,消息会被暂停为可恢复状态,但在某些情况下,这不合适 -- 例如,恢复用于有序发送或接收端口的消息会打乱消息顺序。

有效值:

-假。 消息被暂停为可恢复状态(这是默认值)。
-真。 消息被暂停为非可恢复。
BTS·SuspendMessageOnRoutingFailure 在从接收适配器接收到消息后,以及在将消息发布到 MessageBox 数据库之前,由消息引擎处理。 xs:boolean 指定传入消息发生路由失败时的行为。

有效值:

- 默认值 / 假。 如果该属性不存在或设置为 False,则引擎会在发生路由失败时通知错误适配器。
-真。 路由引擎将在路由失败时自动暂停消息。 注意: 挂起的消息将是管道后/映射消息,而不是适配器提交的消息(即线路消息)。

此命名空间中有许多其他属性携带可能对某些 BizTalk 应用程序有用的信息。

资产 何时和何处推广 类型 DESCRIPTION
BTS.AckDescription 在将确认消息发布到 MessageBox 数据库之前,由消息引擎设置。 xs:string 识别ErrorDescription,描述挂起的位置和原因。
BTS.EncryptionCert 不可促销。 xs:int 标识与加密证书对应的指纹。 在管道中 MIME/SMIME 编码器管道组件之前放置的业务流程或自定义管道组件中设置此属性,以对接收已签名和加密消息的请求响应端口执行响应加密。
BTS.InterchangeID 由消息引擎为服务器上到达的每个消息设置。 xs:string 定义用于对同一交换消息生成的文档进行分组的唯一 ID。
BTS.Loopback 提交请求消息以供环回执行时由适配器设置。 xs:boolean 定义是否应将消息提交到服务器进行环回执行。 在环回执行中,请求消息将发布到 MessageBox 数据库中,该数据库作为响应直接路由到接收适配器。
BTS。SignatureCertificate 提交消息到服务器时,由某些适配器设置。 此属性被 Party Resolution 管道组件使用。 xs:string 标识用于对 BizTalk Server 收到的消息进行签名的签名证书的指纹。
BTS。SourcePartyID 在传入消息中标识参与方后,由参与方解决方案管道组件进行设置。 xs:string BizTalk 参与方的 ID。
BTS.SSOTicket 如果接收适配器支持此属性,则会在将消息发布到服务器时设置此属性。 xs:string 票证包含当前用户的加密域和用户名,以及票证过期时间。 SSO 启用的适配器使用该票证,以便在使用目标终结点进行身份验证时获取用户的凭据。
BTS。WindowsUser 将消息提交到服务器时,由某些适配器设置。 Party Resolution 管道组件使用此属性。 xs:string 指定代替所代表用户将消息提交到服务器的帐户。

有关与管道组件和适配器关联的属性和属性架构的其他信息,请参阅以下内容:

另请参阅

关于 BizTalk 消息上下文属性
如何使用表达式将值分配给动态端口