locked
Biztalk question about throttling RRS feed

  • Question

  • Hello, I have a throttling question.  We are using an application that de-batches and sends the data over to our mainframe using a HostApps adapter to retrieve data and then back into the application for further process.  Biztalk waits for a response back from CICS and the data it needs.  We have tried using  Ordered Delivery on the send port, we get no problems or retries from CICS which is good but it is pretty bad on processing a batch of 3000 tickets it takes to long since it is one at a time.  Taking this off Biztalk floods CICS and then we start running into retries and failures for connections to CICS.  I want to throttle back the ammount of tickets or messages Biztalk throws at CICS (Mainframe).  I have reviewed Biztalk Host Throttling, where exactly would this specify?  Is this the "throttling thresholds" settings, with the Internal message queue size?  All and all I would like to throttle how much messages Biztalk gives to our Mainframe. 

    Wednesday, November 17, 2010 11:00 PM

Answers

  • Hello, can you clarify if you will use Ordered Delivery on the send port with throttling adjustment or removing Ordered Delivery?

    You are correct that Internal message queue size can be adjusted to limit the number of outbound messages - note that the default setting is 100 and the maximum setting is 1000. You may need to adjust other settings for outgoing message throttling, for example "In-process messages per CPU":

    In-process messages per CPU

    Maximum number of messages delivered to the End Point Manager (EPM) or XLANG that have not been processed. This does not include the messages retrieved from database but still waiting for delivery in the in-memory queue. You can monitor the number of In-Process Messages by using the In-process message count performance counter under the BizTalk:Message Agent performance object category. This parameter provides a hint to the throttling mechanism for consideration of throttling conditions. The actual threshold is subject to self-tuning. You can verify the actual threshold by monitoring the In-process message count performance counter.

    This parameter can be set to a smaller value for large message scenarios, where either the average message size is high, or the processing of messages may require a large amount of messages. Such a case would be evident if a scenario experiences memory-based throttling too often and if the memory threshold gets auto-adjusted to a substantially low value. Such behavior would indicate that the outbound transport should process fewer messages concurrently to avoid excessive memory usage. Also, for scenarios where the adapter is more efficient when processing a few messages at a time (for example, when sending to a server that limits concurrent connections), this parameter may be tuned to a lower value than the default.

    This setting only affects outbound message throttling.

    Enter a value of 0 to disable throttling based on the number of in-process messages per CPU.

    The default value is 1,000.

    Please refer to the below links on BizTalk Throttling:

    1.       How BizTalk Server Implements Host Throttling

    http://msdn.microsoft.com/en-us/library/aa559893(BTS.20).aspx

    2.       Adjusting Host Throttling

    http://msdn.microsoft.com/en-us/library/cc296828(BTS.10).aspx

    3.       How to Modify the Default Host Throttling Settings

    http://msdn.microsoft.com/en-us/library/dd761093.aspx

    Let me research this further to see if I can provide you any recommendations.

    Thank you,

    Belinda

    • Marked as answer by Bassn78 Friday, December 3, 2010 9:26 PM
    Friday, December 3, 2010 4:36 PM
    Moderator
  • Hello,

    Before adjusting throttling settings, let’s try adjusting Message Processing Throttling Settings. Limiting the number of messages going out is controlled by the “Message Processing Throttling” /Rate Overdrive factor. Specifying a smaller number will cause the BizTalk system to throttle more aggressively. You may modify this value and test the system to see what is best your environment.

    Hope this helps.

    Thank you,

    Belinda

     

     

    Friday, December 3, 2010 5:00 PM
    Moderator

All replies

  • Hello, can you clarify if you will use Ordered Delivery on the send port with throttling adjustment or removing Ordered Delivery?

    You are correct that Internal message queue size can be adjusted to limit the number of outbound messages - note that the default setting is 100 and the maximum setting is 1000. You may need to adjust other settings for outgoing message throttling, for example "In-process messages per CPU":

    In-process messages per CPU

    Maximum number of messages delivered to the End Point Manager (EPM) or XLANG that have not been processed. This does not include the messages retrieved from database but still waiting for delivery in the in-memory queue. You can monitor the number of In-Process Messages by using the In-process message count performance counter under the BizTalk:Message Agent performance object category. This parameter provides a hint to the throttling mechanism for consideration of throttling conditions. The actual threshold is subject to self-tuning. You can verify the actual threshold by monitoring the In-process message count performance counter.

    This parameter can be set to a smaller value for large message scenarios, where either the average message size is high, or the processing of messages may require a large amount of messages. Such a case would be evident if a scenario experiences memory-based throttling too often and if the memory threshold gets auto-adjusted to a substantially low value. Such behavior would indicate that the outbound transport should process fewer messages concurrently to avoid excessive memory usage. Also, for scenarios where the adapter is more efficient when processing a few messages at a time (for example, when sending to a server that limits concurrent connections), this parameter may be tuned to a lower value than the default.

    This setting only affects outbound message throttling.

    Enter a value of 0 to disable throttling based on the number of in-process messages per CPU.

    The default value is 1,000.

    Please refer to the below links on BizTalk Throttling:

    1.       How BizTalk Server Implements Host Throttling

    http://msdn.microsoft.com/en-us/library/aa559893(BTS.20).aspx

    2.       Adjusting Host Throttling

    http://msdn.microsoft.com/en-us/library/cc296828(BTS.10).aspx

    3.       How to Modify the Default Host Throttling Settings

    http://msdn.microsoft.com/en-us/library/dd761093.aspx

    Let me research this further to see if I can provide you any recommendations.

    Thank you,

    Belinda

    • Marked as answer by Bassn78 Friday, December 3, 2010 9:26 PM
    Friday, December 3, 2010 4:36 PM
    Moderator
  • Hello,

    Before adjusting throttling settings, let’s try adjusting Message Processing Throttling Settings. Limiting the number of messages going out is controlled by the “Message Processing Throttling” /Rate Overdrive factor. Specifying a smaller number will cause the BizTalk system to throttle more aggressively. You may modify this value and test the system to see what is best your environment.

    Hope this helps.

    Thank you,

    Belinda

     

     

    Friday, December 3, 2010 5:00 PM
    Moderator