locked
MSS slowing down RRS feed

  • Question

  • We were testing outbound calls with MSS today.  We had the call throttle set to 25. 

     

    I was watching the performance counters as these calls went out.  At first, the active outgoing calls was averaging around 16.  (I'm assuming this counter is for calls that are connected and not connecting so that sound fine to me.)

     

    However, after about 30 minutes, MSS slowed way down.  The connected calls dropped to 0 for several seconds.  Then it climbed up to average 4 for a few minutes, but then dropped back down to 0 again. 

     

    The queue was full of messages so there's no reason that MSS shouldn't have been going faster.  Also, the CPU on the machine was averaging only 10-12%. 

     

    We finally stopped submitting messages to the queue and let MSS finish what was in there.  Then we restarted MSS and it started going faster--averaging 12 connected calls--but then dropped down to averaging 8 connected calls.

    Monday, July 16, 2007 3:08 PM

Answers

  • Yup, that's what I was explaining. If you want to not increase the throttling based on a particular failed outbound call, set the property ShouldThrottleMsmqCalls to false. That will tell MSS, essentially, "don't worry about this failed call -- it doesn't mean the gateway is out of resources."

     

    But note that by doing this, you'll be allowing MSS to bleed your queue dry; it will continue to pull off messages, try the call, fail, and then it will be up to you to deal with re-queueing or handling that failed call.

    Monday, July 16, 2007 5:57 PM

All replies

  • hi,

     

    Have you checked in the event log for any warnings or errors? Also, have you tried importing logs into the tuning tools to see if the calls are failing or succeeding or taking a strange amount of time? MSS will throttle back on the number of outbound calls it attempts to make if it determines that outbound calls are failing. Note that it's difficult in SIP to determine when a call has failed due to a lack of outbound channels; in order to allow you to control this, you probably need to catch SipPeerException (i.e., have a FaultHandler looking for SipPeerException around the MakeCallActivity, or if you are calling the OpenAsync method yourself, look for e.Error set to an instance of SipPeerException in the OpenCompleteEventArgs), look at the ResponseCode and ResponseText, and set the property ShouldThrottleMsmqCalls to true iff your gateway is out of channels.

     

    Dan

     

    Monday, July 16, 2007 4:53 PM
  • Hi Dan,

     

    We are calling OpenAsync() ourselves in a custom MakeCallActivity and we keep track of the response codes.  There were a lot of calls that were coming back as busy, but this is to be expected.

     

    Is there anyway to make it so MSS will NOT throttle back the outbound calls if they are failing.  We fully expect to get busy's and bad numbers, but that doesn't mean we want to slow down the calls.  We have the outbound call throttle already set to what our gateway can handle, and we don't want MSS to throttle at any less than that.

     

    Monday, July 16, 2007 5:17 PM
  • Yup, that's what I was explaining. If you want to not increase the throttling based on a particular failed outbound call, set the property ShouldThrottleMsmqCalls to false. That will tell MSS, essentially, "don't worry about this failed call -- it doesn't mean the gateway is out of resources."

     

    But note that by doing this, you'll be allowing MSS to bleed your queue dry; it will continue to pull off messages, try the call, fail, and then it will be up to you to deal with re-queueing or handling that failed call.

    Monday, July 16, 2007 5:57 PM
  • Thanks!

     

    This worked.  Now I'm just setting the SipPeerException.ShouldThrottleMsmqCalls to false if we don't want MSS to throttle down more. 

    Monday, July 16, 2007 7:05 PM
  • Where is this property set?  also could you provide the detailed code.

     

    Monday, May 19, 2008 3:26 PM