Once a message has been processed by the adapter and associated pipeline, it needs to be routed to an interested party. A BizTalk orchestration or send port can register its interest in a specific message via subscriptions.
A subscription is made up of a number of conditions to ensure that a subscriber gets the message it requires. When a message is processed, metadata is derived from the message content, the transport adapter, and the BizTalk port that the message was received over and is written to the context of the message. These context properties are evaluated against the subscriptions in order to determine how to route the message.
In a typical XMLReceive pipeline, the XML Disassembler component will populate the MessageType context property, among others. This property, in the case of an XML message, contains the namespace and root node of the associated schema, thereby uniquely identifying a message type.
BizTalk orchestrations and send ports can then subscribe to all messages of a certain schema type or use any combination of context properties, such as the name of the receive port that received the message, the name of the customer sending the message, and the like.
These subscriptions are held within the Subscription table of the BizTalkMsgBoxDb SQL database and are evaluated when a message is published to the MessageBox by the BizTalk Message Agent, which is run as part of the BizTalk host.
Figure 2-2 shows the subscription query feature of the ...