Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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.

share|improve this question

1 Answer 1

up vote 1 down vote accepted

When a flood of messages is received from a particular X (say X1), Y should try and combine the messages (removed duplicates, etc.) without any loss of information and then send the messages at pace that Z would be able to handle. All this while messages from other Xs would be processed (by Y) and be sent to Z.

share|improve this answer
    
What mechanism does Biztalk have for throttling (besides the throttling controls that are available on the Administration console) message flow? –  Alex In Paris Jul 2 '12 at 11:37
    
I.e. how is the pace, to Z, supposed to be controlled? –  Alex In Paris Jul 4 '12 at 7:44
    
I can't place actual code but I'd suggest firing events at regular intervals (at a speed that Z can handle) and those events should send the processed message –  vedant1811 Jul 4 '12 at 8:01

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.