none
Controlling the no. of messages on send port RRS feed

  • Question

  •  

    The BizTalk Application we developed sends messages @ couple of thousand files per minute.

    Because of the heavy traffic the other applications(Non-BizTalk) are not able to handle the load.

    I want to limit the number of messages i send through the output port.

       Host throttling allows us to restrict things like CPU, memory, and number of open threads, but it doesn't let us directly control the number of messages throught the send port.

      I know one way is to write a custom adapter, but i am not sure if i can configure it correctly as mis configuring it would produce a lot of issues.

    I read some article's on how writing a shell COM+ component could handle the issue. but i am not sure how i can do that.

    Can anyone help me with some samples examples to do it?... Or is there a better way to do it?

     

    Thursday, May 3, 2012 4:09 AM

Answers

  • I see, so then my suggesten to throttle a host instance will not delay the latency in BizTalk, if you choose to store them all to the messagebox and pull them with a singleton you'll end up with a large messagebox which will in the end give you a delay and decrease performance.

    For BizTalk 2009 you can do these settings by changing the registry.

    I recommend you to read the following regarding the meaning of the different settings here

    And how to configure thresholds in BizTalk 2009 take a look here.

    Best regards

    Tord Glad Nordahl
    Bouvet ASA, Norway
    http://www.BizTalkAdmin.com |@tordeman

    Please indicate ”Mark as Answer” if this post has answered the question.

    • Marked as answer by raghus4228 Friday, May 4, 2012 9:41 PM
    Friday, May 4, 2012 6:06 AM

All replies

  • Check this similar thread, has a good work around solution.

    Regards,
    Bali
    MCTS: BizTalk Server 2010,BizTalk Server 2006 and WCF
    My Blog:dpsbali-biztalkweblog
    -----------------------------------------------------
    Mark As Answer or Vote As Helpful if this helps.

    Thursday, May 3, 2012 5:20 AM
  • Its a good tip Bali, however the main issue with this is that if you have a few thousand files a minute you'll end up building up your messagebox resolving in performance issues and undesireable delay.

    There are some solution to resolve it, you have the rate-based thresholds, you dont state if you're runniung BizTalk 2006 R2 or 2010. For versions prior to 2010 these settings must be set in the registry.

    Remember that you can decrease the amount of messages in each batch load and then reduce the amount of threads, one thread follows one instance. so limiting the usage of threads will also help limiting the rate of messages, you can also change an edit the in-flight messages, reducing it will reduce the in-flight messages running through BizTalk, but wait there is even more! Remember to set the host in "Initiate throttle". Reduce the minimum number of samples and the, also reducing the sampling windows to 1second will decrease the load. For resource based threshold I would recommend you to change the in-process message too. I added a screenshot of a "slow running" application.

    keep in mind that these settings may differ from environment to environment. Let me know if you have any more questions regarding threshold and throttling in BizTalk.

    Best regards

    Tord Glad Nordahl
    Bouvet ASA, Norway
    http://www.BizTalkAdmin.com |@tordeman

    Please indicate ”Mark as Answer” if this post has answered the question.

     

    Thursday, May 3, 2012 10:11 AM
  • Thanks a lot for the reply..

    I am working on BizTalk 2010(under development) right now and i would also like to know how it is done for BizTalk 2009(In Production).

    Some of the Applications in BizTalk are realtime(The response to the requests are sent in <2mins) and some are not.

    I dont have any problem with the real time application, the problem is with the non real time applications.

    All these non real time applications send the output message to a NonBizTalk system which is unable to handle the load.

    If i change the BizTalk group settings i am worried it would slow down the RealTime Applications.

    Is there any other way i can program only the Non Real time applications to work slowly?(i wish i could create more BizTalk groups on a single server....)

    Thursday, May 3, 2012 8:48 PM
  • I see, so then my suggesten to throttle a host instance will not delay the latency in BizTalk, if you choose to store them all to the messagebox and pull them with a singleton you'll end up with a large messagebox which will in the end give you a delay and decrease performance.

    For BizTalk 2009 you can do these settings by changing the registry.

    I recommend you to read the following regarding the meaning of the different settings here

    And how to configure thresholds in BizTalk 2009 take a look here.

    Best regards

    Tord Glad Nordahl
    Bouvet ASA, Norway
    http://www.BizTalkAdmin.com |@tordeman

    Please indicate ”Mark as Answer” if this post has answered the question.

    • Marked as answer by raghus4228 Friday, May 4, 2012 9:41 PM
    Friday, May 4, 2012 6:06 AM
  • Thanks a lot Tord.

    I will try this and see how it goes..

    Friday, May 4, 2012 9:41 PM
  • Can I suggest something more low-tech?

    Wherever the files come in from, drop them in a folder - not the BizTalk receive location.  Have a vbscript job that runs once a minute, cruises through the directory, moves some number of files to a folder that is the actual receive location.

    Vary the number in the vb script, and you can throttle the rate at which files hit BizTalk quite easily. If you want to really do it right, put the number of files sent in per minute in a config file, and you can hook up just about anything (web page, etc) to be able to adjust it.

    That avoids using the messagebox as the spool, gives you direct and simple control, it isn't fancy but it would work.


    Down there somewhere, its just ones and zeros.

    Sunday, July 29, 2012 5:32 PM