Take the 2-minute tour ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

I've run into a very weird issue with delevery notifications lately. Here is the scenario :

  • I have an orchestration which sends a message to a one-way send-port configured with delivery notification = Transmitted (btw the send port uses the FTP adapter, but I think it doesn't matter what the adapter is).

  • When there is a messaging error, the error is trapped by the orchestration (therefore meaning that the delivery notification mechanism worked as expected), which does some logging and then terminates programatically (Terminate shape). The messaging instance still exists and is suspended and resumable.

  • After solving the problem that caused the messaging error, I resume the suspended messaging instance.

At this point I get 2 very suspicious messaging instances : a routing failure for the ACK and the messaging instance still active (but doing nothing...). I am sure that the routing failure instance is the delivery notification related to the active messaging instance since they have the same CorrelationToken. One more detail : if I terminate the active instance, it gets suspended (not resumable), and the error message says that the instance completed without consuming all of its messages!!

Last but not least, I get this problem only on certain environments...

UPDATE : It seems like the problem appears on BizTalk boxes that run BizTalk 2006 R2 SP1. It never occured on the boxes that run BizTalk 2006 R2 without SP1. I'll try and confirm this ASAP

UPDATE 2 : It appears I was right in my last update : the problem appears after installing SP1 CU1... So next step : Il will try and find if one of the following CUs corrects the problem.

share|improve this question
add comment

1 Answer

up vote 0 down vote accepted

Actually no CU corrects the described problem. But there is more : it seems like all the newer BizTalk versions are concerned : I have made tests on BizTalk 2009 with all CUs and BizTalk 2010 with all CUs, the problem still exists!!!

The only solution I have found was to create an orchestration that subscribes to all Delivery Notifications... Not very clean, but it does the job - well at least most of it.

As a matter of fact I have identified 1 more problem when you enable routing for failed messages with delivery notifications : the AckRequired property AND the correlation token are copied to the routed failed message, which means that an ACK will be published if this failed message is consumed by a send port (eg : the ESB exception send port), and that this ACK can be routed to the originating orchestration if it is still executing. If so, that will end in a classic zombie message situation, since the orchestration doesn't consume this ACK! Now, try and explain to your clients that your devs are not to be blamed... :p

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.
{"cc_re__cc_re__cc_by_sa_3_0": ["        <li><a href=\"http://area51.stackexchange.com\" title=\"proposing new sites in the Stack Exchange network\">Area 51</a></li>\r\n                        <li><a href=\"http://careers.stackoverflow.com\">Stack Overflow Careers</a></li>\r\n                    \r\n                </ol>\r\n            </td>\r\n    </tr>\r\n</table>\r\n                </div>\r\n            </div>\r\n\r\n            <div id=\"copyright\">\r\n                site design / logo &#169; 2014 stack exchange inc; user contributions licensed under <a href=\"http://creativecommons.org/licenses/by-sa/3.0/\" rel=\"license\">cc by-sa 3.0</a> \r\n                with <a href=\"http://blog.stackoverflow.com/2009/06/attribution-required/\" rel=\"license\">attribution required</a>\r\n            </div>\r\n            <div id=\"svnrev\">\r\n                rev 2014.4.18.1558\r\n            </div>\r\n            \r\n        </div>\r\n    </div>\r\n    <noscript>\r\n        <div id=\"noscript-warning\">Stack Overflow works best with JavaScript enabled<img src=\"http://pixel.quantserve.com/pixel/p-c1rF4kxgLUzNc.gif\" alt=\"\" class=\"dno\"></div>\r\n    </nos"], "copyright__copyright__copyright": [" ACK can be routed to the originating orchestration if it is still executing. If so, that will end in a classic zombie message situation, since the orchestration doesn't consume this ACK! Now, try and explain to your clients that your devs are not to be blamed... :p\n\nshare|improve this answer\nadd comment\n\nYour Answer\n\n\u00a0\ndiscard\n\nBy posting your answer, you agree to the privacy policy and terms of service.\n\nNot the answer you're looking for? Browse other questions tagged or ask your own question."]}