geekswithblogs.net
HOME
ARCHIVES
CONTACT
LOGIN
El Grego
BizTalk blog
News
My Stats
Posts - 26
Comments - 24
Trackbacks - 55
Twitter
gvdwiele
Error: 18456, severity 14, state 16...digging
about 48 days ago
gvdwiele
Configuring a BizTalk WCF Static Port to Behave as a Dynamic Port WITH NACKS. Aint easy.
about 147 days ago
gvdwiele
Grandpa is debugging with Stan Getz.
about 159 days ago
gvdwiele
looking into Ivy, the dependency manager ;-)
about 160 days ago
gvdwiele
watching the $ fall
about 231 days ago
gvdwiele
refactoring to patterns...or how one 500-line cs file can turn into 50 classes of 20 lines.
about 252 days ago
gvdwiele
refactoring to patterns...or how one 500 cs file can turn into 50 classes of 20 lines.
about 252 days ago
gvdwiele
I'm selling my Apple stock.
about 256 days ago
Recent Comments
Thank you for posting this. It helped me a lot. I ...
by Marcus Nyberg
I'm fully trained and good at throwing things out....
by Grego
What FFASM bug?!!! You cannot just throw that out ...
by Mikael Sand
No bother. Glad it was of use. Your audit trail ap...
by Grego
My fault i forgot about the second hoop, I added t...
by Patrick Wellink
Recent Posts
CharacterTranscoder pipeline component on github.com
Question marks in your flatfile output CONTINUED
Question marks in your flatfile output?
BizTalk Arbitrary Binary Email Attachments (or how to fix unreadable attachments)
BAM Typed API alternative
Archives
September, 2009 (1)
August, 2009 (2)
July, 2009 (1)
June, 2009 (2)
May, 2009 (2)
February, 2009 (1)
December, 2008 (1)
September, 2005 (2)
April, 2005 (1)
March, 2005 (2)
February, 2005 (1)
November, 2004 (4)
October, 2004 (2)
September, 2004 (4)
Post Categories
BizTalk - EAI - B2B
Tuesday, June 16, 2009
Configuring a Static WCF Port to Behave as a Dynamic Port
Yesterday I've tried to reproduce the scenario 'Configuring a Static Port to Behave as a Dynamic Port' from the excellent MSDN article '
Consuming and Hosting WCF Services with Custom Bindings in BizTalk Server
' but with a twist: instead of writing the BTS.OutboundTransportLocation context property inside a custom pipeline component I've tried doing this from inside orchestration.
It didn't work. I had to do it differently. Let me explain...
If you manually promote a custom value for the BTS.OutboundTransportLocation on your outgoing message inside an orchestration message construct and send the message to a static send port, the BTS.OutboundTransportLocation property is magically overwritten with the address from the statically configured send port. The fact that this property is automatically set by the engine seems logical because it is necesarry for a regular static send. I only hoped it wouldn't be overriden when already present.
Why magically? Because it doesn't show up like that in HAT! If you look into HAT the message-context 'before pipeline execution' you can see that the custom value is there: it was successfully written to the context inside the orchestration.
But by adding some traces to a dummy pipeline component I can CONFIRM that those custom values are indeed already erased and reset to the address from the send port configuration @pipeline-execution. This indicates that there is an additional step after tracking and before the adapter triggers the pipeline execution, where the engine adds all sorts of properties from the port configuration. So e
ven when you are using a passthru send pipeline the message 'after pipeline execution' has a different context then 'before pipeline execution'.
Another clear case of opacity ;-)
And that's where my confusion came from. One might wonder why they didn't choose to track
the 'before pipeline execution' right after the engine added its properties. There is probably a good reason for that...
Anyway, I needed to take a step back and reconsider the approach from the article ie setting the value inside a pipeline component. But hardcoding or configuring an address inside a pipeline isn't really 'dynamic'.
So here is the final piece of the puzzle:
Roll in your own 'address' property that is written on the message context inside orchestration and is re-written into the BTS.OutboundTransportLocation property during pipeline execution.
posted @
Tuesday, June 16, 2009 4:26 AM
|
Feedback (0)
| Filed Under [
BizTalk - EAI - B2B
]