How to control messages to the same port from different emitters?

Posted by Alex In Paris on Programmers See other posts from Programmers or by Alex In Paris
Published on 2012-07-02T07:53:06Z Indexed on 2012/07/02 9:23 UTC
Read the original article Hit count: 191

Filed under:
|

Scene: A company has many factories X, each emits a message to the same receive port in a Biztalk server Y; if all messages are processed without much delay, each will trigger an outgoing message to another system Z.

Problem: Sometimes a factory loses its connection for a half-day or more and, when the connection is reestablished, thousands of messages get emitted. Now, the messages still get processed well by Y (Biztalk can easily handle the load) but system Z can't handle the flood and may lock up and severely delay the processing of all other messages from the other X.

What is the solution? Creating multiple receive locations that permits us to pause one X or another would lose us information if the factory isn't smart enough to know whether the message was received or not.

What is the basic pattern to apply in Biztalk for this problem? Would some throttling parameters help to limit the flow from any one X? Or are their techniques on the end part of Y which I should use instead ? I would prefer this last one since I can be confident that the message box will remember any failures, which could then be resumed.

© Programmers or respective owner

Related posts about design-patterns

Related posts about BizTalk