Last week, while trying a few things at work with BizTalk server, we managed to get something up and running that I hadn't quite seen explicitly presented anywhere: using BTS as a router on an HTTP Request/Response escenario.

Basically, it consisted of an Request/Response Receive Port hosting an HTTP Request Location that received an XML document and routed it accoding to one of the fields in the document's envelope to one of nine send ports.

Each send port just had the HTTP adapter configured in a Solicit/Response pattern and a set of filters that checked for a particular value of a promoted property. Besides having this, the only configuration we had was the pipelines: A custom receive pipeline on the receive location and the XMLTransmit pipeline in the send port, with the use of the passthrough pipelines in the rest of the cases.

Once I got this configured correctly, it just started working: the document received would be routed to one send port, and the response was directly delivered to the original sender. Quite cool to know this is possible; albeit not very useful in practice since it was just slow as hell ;)


Tomas Restrepo

Software developer located in Colombia.