Message Context Properties

 

System properties are mostly used internally by BizTalk Messaging Engine and its components. In general, changing the values set by the engine for those properties is not recommended, because it may affect the execution logic of the engine. However, there are a large number of properties that you can change.

The following table contains a list of message context properties that the Messaging Engine can promote. You can use these properties for creation of filter expressions on send ports and orchestrations in Microsoft BizTalk Server. A separate table lists additional properties that may be of use in some BizTalk applications that cannot be promoted.

For additional information about properties and property schemas associated with pipeline components and adapters, see the following:

PropertyWhen and where it is promotedTypeDescription
BTS.AckFailureCategoryPromoted by the Messaging Engine before publishing an acknowledgement message into the MessageBox database.xs:intIdentifies the ErrorCategory, which gives the place and reason for the suspension.
BTS.AckFailureCodePromoted by the Messaging Engine before publishing an acknowledgement message into the MessageBox database.xs:stringIdentifies the ErrorCode, which gives the place and reason for the suspension.
BTS.AckIDPromoted by the Messaging Engine before publishing an acknowledgement message into the MessageBox database.xs:stringIdentifies the MessageID of the original message.
BTS.AckInboundTransportLocationPromoted by the Messaging Engine before publishing an acknowledgement message into the MessageBox database.xs:stringIdentifies the InboundTransportLocation from the original message.
BTS.AckOutboundTransportLocationPromoted by the Messaging Engine before publishing an acknowledgement message into the MessageBox database.xs:stringIdentifies the OutboundTransportLocation from the original message.
BTS.AckOwnerIDPromoted by the Messaging Engine before publishing an acknowledgement message into the MessageBox database.xs:stringIdentifies the instance ID from original message.
BTS.AckReceivePortIDPromoted by the Messaging Engine before publishing an acknowledgement message into the MessageBox database.xs:stringIdentifies the ReceivePortID from the original message.
BTS.AckReceivePortNamePromoted by the Messaging Engine for the acknowledgement message.xs:stringIdentifies the ReceivePortName from the original message.
BTS.AckSendPortIDPromoted by the Messaging Engine before publishing an acknowledgement message into the MessageBox database.xs:stringIdentifies the SendPortID from the original message.
BTS.AckSendPortNamePromoted by the Messaging Engine before publishing an acknowledgement message into the MessageBox database.xs:stringIdentifies the SendPortName from the original message.
BTS.AckTypePromoted by the Messaging Engine before publishing an acknowledgement message into the MessageBox database.xs:stringAllows monitoring of acknowledgements and non-acknowledgements by an orchestration. The value will be ACK for an acknowledgment and NACK for a negative acknowledgment.
BTS.ActionOnFailureThis property can be set by an adapter prior to calling IBTTTransportBatch::SubmitMessage() API to submit the message to BizTalk.xs:intControls the behavior of the messaging engine when there is a failure in the receive pipeline. Typically the messaging engine suspends failed messages; however, certain adapters (like HTTP) would report the failure back to the client instead of suspending the message on a receive pipeline failure.

Valid values:

- Default. If the property does not exist, the messaging engine will automatically try to suspend the message.

- 0. Indicates that the messaging engine should not automatically suspend the engine.

Other values are reserved for future use.
BTS.CorrelationTokenIf this property is set on the message context, it is promoted by the Messaging Engine. This property is set on a context implicitly when request-response adapter or an orchestration submits a request message into the MessageBox database.xs:stringEnables routing of response to request-response ports.
BTS.EpmRRCorrelationTokenPromoted by the Messaging Engine on request-response message execution. The property is promoted before messages are submitted into the MessageBox database.xs:intUsed internally by the Messaging Engine. Specifies the Server Name, Process ID and a unique GUID for a request response stream of messages.
BTS.InboundTransportLocationPromoted by the Messaging Engine after receiving a message from a receive adapter and before publishing it into the MessageBox database.xs:stringSpecifies the location (URI) on which the message was received by the handler.
BTS.InboundTransportTypePromoted by the Messaging Engine after receiving a message from a receive adapter and before publishing it into the MessageBox database.xs:stringSpecifies the type of adapter that received this message and submitted it into the server: FILE, HTTP, etc.
BTS.InterchangeSequenceNumberPomoted by the Messaging Engine after receiving a message from the receive adapter and before publishing it into the MessageBox database.xs:intIndicates the sequence number of the document in the interchange. If the document is not part of an interchange that was disassembled into individual documents, then this value will be 1. The property can be read in an orchestration, a send pipeline and send adapter.
BTS.MessageDestinationThis property can be set in the receive pipeline by a disassembler pipeline component when it returns a message from GetNext().xs:stringUsed primarily to support Recoverable Interchange Processing in disassemblers, this property controls whether a message is published to the message box or is suspended into the suspend queue. If a pipeline encounters a bad message in an interchange and wants to suspend the message and continue processing, it can do so by setting MessageDestination = SuspendQueue and return the message when the engine calls GetNext() on the disassembler.

Valid values:

- Default. If the property does not exist, the message is assumed good and is published to the message box.

- SuspendQueue. Directs the messaging engine to suspend the message.

 Note The suspended message will be the post-pipeline/mapping message and not the message submitted by the adapter (i.e. the wire message).
BTS.MessageTypePromoted by the disassembler pipeline components during message parsing.xs:stringSpecifies the type of the message. The message type is defined as a concatenation of document schema namespace and document root node: http://<MyNamespace>#<MyRoot>.
BTS.OutboundTransportLocationIf this property is set on the message context, it is promoted by the Messaging Engine. This property is set on a message context implicitly when an orchestration sends a message to a send port. This property can be also set explicitly in an orchestration or in a pipeline.xs:stringSpecifies the destination location URI where the message is sent. The URI may contain the adapter prefix, such as http://. The adapter prefix is used by the Messaging Engine to determine the type of adapter to use when sending the message. If both the adapter prefix and the BTS.OutboundTransportType property are set, the adapter type from BTS.OutboundTransportType always takes precedence over the adapter type determined from the prefix.

Valid values:

BizTalk Message Queuing: DIRECT=, PRIVATE=, and PUBLIC=

FILE: file://

FTP: FTP://

HTTP: http:// and https://

SMTP: mailto:

SOAP: SOAP://

SQL: SQL://
BTS.OutboundTransportTypeIf this property is set on the message context, it is promoted by the Messaging Engine. This property is set on a context implicitly when an orchestration sends a message to a send port. This property can also be set explicitly in an orchestration or in a pipeline.xs:stringSpecifies the type of adapter used to send the message. The available adapter types are FILE, FTP, HTTP, SMTP, SOAP, and SQL.

The values set on this property as well as adapter prefixes specified in the address are not case-sensitive.
BTS.PropertiesToUpdateAn adapter sets this property when it needs to preserve some of the property values on a failed message that is being resubmitted or suspended.

This means that when the message gets resubmitted or resumed, it will have the specified properties set on the context.
xs:stringContains an XML string with elements that represent property names, namespaces and values.
BTS.ReceiveLocationNameWritten to the message context by the Messaging Engine after receiving a message from a receive adapter and before publishing it into the MessageBox database.xs:stringUser-friendly name of the receive location on which the message was received.
BTS.ReceivePortIDPromoted by the Messaging Engine after receiving a message from a receive adapter and before publishing it into the MessageBox database.xs:intIdentifies the receive port on which the message was received.
BTS.ReceivePortNamePromoted by the Messaging Engine after receiving a message from a receive adapter and before publishing it into the MessageBox database.xs:stringUser-friendly name of the receive port on which the message was received.
BTS.RouteDirectToTPPromoted by the Messaging Engine on messages for loop back or request-response execution. The property is promoted before messages are submitted into the MessageBox database.xs:booleanUsed internally by the Messaging Engine to enable loop back and request-response scenarios.
BTS.SPGroupIDPromoted by the Messaging Engine when the message is sent to a send port from orchestration.xs:stringSpecifies the ID of the send port group.
BTS.SPIDPromoted by the Messaging Engine when a message is sent to a send port from orchestration.xs:stringSpecifies the ID of the send port.
BTS.SPTransportBackupIDPromoted by the Messaging Engine when a message is sent to a send port from an orchestration.xs:stringSpecifies the ID of the backup adapter in the send port.
BTS.SPTransportIDPromoted by the Messaging Engine when a message is sent to a send port from an orchestration.xs:stringSpecifies the ID of the primary adapter in the send port.
BTS.SuspendAsNonResumableThis property can be set by an adapter before calling SubmitMessage() or in an orchestration before sending a message to a send port.

 Note SubmitRequestMessage() will ignore this property; two-way messages are always suspended as non-resumable.
xs:booleanControls whether the Message Engine should suspend a message as non-resumable on message failure. Typically messages are suspended as resumable but there are cases when this is inappropriate -- for example, resuming a message for an ordered send or receive port would break message order.

Valid values:

- False. Message is suspended as resumable (this is the default).

- True. Message is suspended as non-resumable.
BTS.SuspendMessageOnRoutingFailurePromoted by the Messaging Engine after receiving a message from a receive adapter and before publishing it into the MessageBox database.xs:booleanSpecifies behavior when a routing failure occurs with an incoming message.

Valid values:

- Default / False. If the property does not exist or is set to False, the engine notifies the adapter of the error when a routing failure occurs.

- True. The routing engine will suspend the message automatically when a routing failure occurs.

 Note The suspended message will be the post-pipeline/mapping message and not the message submitted by the adapter (i.e. the wire message).

There are a number of other properties in this namespace that carry information that may be useful for some BizTalk applications.

PropertyWhen and where it is promotedTypeDescription
BTS.AckDescriptionSet by the Messaging Engine before publishing an acknowledgement message into the MessageBox database.xs:stringIdentifies the ErrorDescription, which gives the place and reason for the suspension.
BTS.EncryptionCertNot promotable.xs:intIdentifies the thumbprint corresponding to the encryption certificate. Set this property in an orchestration or custom pipeline component placed before the MIME/SMIME Encoder pipeline component in a pipeline to perform response encryption on a request-response port that is receiving a signed and encrypted message.
BTS.InterchangeIDSet by the Messaging Engine for each message that arrives on the server.xs:stringDefines the unique ID that is used to group the documents that resulted from the same interchange message.
BTS.LoopbackSet by an adapter when submitting the request message for loop back execution.xs:booleanDefines whether the message should be submitted into the server for a loop back execution. In loop back execution, the request message is published into the MessageBox database where it is routed directly to the receive adapter as a response.
BTS.SignatureCertificateSet by some adapters when submitting a message into the server. This property is used by the Party Resolution pipeline component.xs:stringIdentifies the thumbprint of the signing certificate that was used to sign the message received by BizTalk Server.
BTS.SourcePartyIDSet by the Party Resolution pipeline component after the party has been identified for the incoming message.xs:stringThe ID of the BizTalk party.
BTS.SSOTicketIf the receive adapter supports this property, it is set when publishing the message to a server.xs:stringA ticket contains the encrypted domain and username of the current user, as well as the ticket expiration time. The ticket is used by SSO enabled adapters to get the credentials for the user when authenticating with destination endpoints.
BTS.WindowsUserSet by some adapters when submitting a message into the server. This property is used by the Party Resolution pipeline component.xs:stringSpecifies the account of a user on behalf of which the message is submitted into the server.

About BizTalk Message Context Properties
Message Context Properties

Community Additions

ADD
Show: