3 Stimmen

WCF Reliable Messaging: Stotternder Dienst nach Erhöhung von maxPendingChannels

Wir haben ein Problem, bei dem während des Lasttests, wenn wir Anrufe schnell auf einen unserer Dienste abfeuern, der folgende Fehler auftritt

System.ServiceModel.ServerTooBusyException": Die Anforderung, eine zuverlässige Sitzung zu erstellen, wurde von der RM Destination abgelehnt. Der Server 'net.tcp://localhost:10511/ParameterMonitorService' ist zu beschäftigt, um diese Anfrage zu verarbeiten. Versuchen Sie es später noch einmal. Der Kanal konnte nicht geöffnet werden."

Wir haben den Wert von maxPendingChannels von seinem Standardwert 4 auf 128 und darüber hinaus erhöht, und der Fehler ist verschwunden. Jetzt jedoch hält der Dienst die Verarbeitung von Nachrichten unter Last einfach an, anstatt die Ausnahme auszulösen, und beginnt dann einige Minuten später erneut.

Er scheint nichts fallen zu lassen, er bleibt nur eine Weile hängen. Je mehr wir auf den Dienst einhämmern, desto länger scheint diese Wiederherstellung zu dauern.

Der Dienst ist als Per-Call mit ConcurrencyMode Multiple konfiguriert. Andere Verhaltenseinstellungen sind:

<serviceThrottling maxConcurrentCalls="100" maxConcurrentSessions="100" maxConcurrentInstances="100"/>

<customBinding>

    <binding name="Services_Custom_Binding" openTimeout="00:00:20" sendTimeout="00:01:00">          
        <reliableSession  ordered="true" inactivityTimeout="00:10:00" maxPendingChannels="128" flowControlEnabled="true" />
        <binaryMessageEncoding>
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
            maxBytesPerRead="4096" maxNameTableCharCount="16384" />            
        </binaryMessageEncoding>
        <tcpTransport maxPendingConnections="100" listenBacklog="100" />          
      </binding>
  </customBinding>

Wir sitzen irgendwie fest. Jede Hilfe ist willkommen!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X