A couple weeks ago, Yossi Dahan followed up on a post of his where he noticed that when a message absorbed by a one-way receive port was published to the BizTalk MessageBox where more than one request-response port was waiting for it, an error occurred. Yossi noted that this appeared to be fixed in BizTalk 2006 through a hotfix available and that this fix is incorporated in BizTalk Server 2009. However, I just made the error occur in BizTalk 2009.
To test this, I started with a one way receive port (yes, I stole the one from yesterday’s blog post … sue me).
Next, I created two HTTP solicit-response (two way) send ports with garbage addresses. The address didn’t matter since the port never gets called anyway.
Each send port has a filter based on the BTS.MessageType property. If I drop a message into the folder polled by my receive location, I get the following notice in my Event Log:
Got that? The message found multiple request response subscriptions. A message can only be routed to a single request response subscription. That seems like the exact error that should have been fixed. This shouldn’t be a issue when the source receive location is one-way. Two-way, sure, since that would cause a race condition. Shouldn’t matter in the case above.
So … did I do something wrong here, or is this not fixed in BizTalk Server 2009? Anyone else care to try it?
You calling me a liar?! 🙂
(I’m just glad I admitted to not testing this on other versions….but I know someone who claims he has….)
As Yossi mentioned in his post: don’t forget the registry changes.
KB 923632 is included in BizTalk 2009 out of the box.
By default, the behaviour will remain the same as on 2006 WITHOUT KB 923632, that is, you cannot publish a message and then route that message to multiple solicit-response ports.
If you want to rout tu multiple solicit-repsonse ports, you need to set the AllowMultipleResponses registry key. If that is set to one 1, it should work.
Ah, I noticed that this registry key wasn’t present on my BizTalk 2009 box, but was wondering if that was only something needed for the 2006 install. I’ll try that out.
The registry changes are still needed for BizTalk 2006 R2 and BizTalk 2009. The reason being that we don’t want to break current implementations that might rely on the previous behavior. Fortunately, BizTalk 2009 R2 (http://connect.microsoft.com/BizTalk) with the “Settings Dashboard” will raise the visibility of all of these settings AND allow you to manage them across the entire BizTalk group from one place.
Richard,
I had the same issue while working with pure maps and CBR.
I thought people already knew about it so dint blog it.
Finally I had to use an Orchestration to make it work.
After Making registry changes It do Work.
I had done that on all our 7 enviorments.
Thanks,
Abby
I had same error. I”ve found that multiple schemas of same type were deployed. Just deleted those double schemas and it works now. (Strange, but I didn”t get error about “multiple schemas were found” – but this, about multiple request response ports)
Just to confirm I have tested this in BizTalk Server 2009 with the hotfix mentioned above and it works perfectly and I also tested it in BizTalk Server 2010 from the Host Settings (“Allow multiple responses”) in the Administration Console as Tim has highlighted above and it works perfectly too, nice!
On BT 2010 Server I made the changes and still get following error: The message found multiple request response subscriptions. A message can only be routed to a single request response subscription.
I first changed the registry. Then I looked at the settings in the admin console and the check box was still not checked so I checked it. I restarted the BT Host. Did not work. Then I rebooted the server. Still no luck. Any ideas … would be grateful.
http://blog.cnext.eu/2012/12/07/biztalk-error-the-message-found-multiple-request-response-subscriptions/