Pracowałem nad sprawdzeniem koncepcji przy użyciu WCF i MSMQ. Gram z ustawieniami przepustnicy, używając wartości domyślnych This Article, a także dodając własne ustawienia do pliku konfiguracyjnego. Mam 2 procesory Quad Core Xeon z tą aplikacją. Bez względu na ustawienia, które stosuję, zawsze pojawia się tylko 8 wiadomości na raz (co pasuje do moich rdzeni przetwarzających). Chcę, aby każdy z komunikatów był obsługiwany w ramach jednej transakcji, tak aby mogło być częścią problemu ... nie jestem pewien. Założę się, że poradziłoby sobie o wiele więcej komunikatów jednocześnie, niż jest.Ustawienia przepustnicy WCF
usługi Zachowanie:
[ServiceBehavior(UseSynchronizationContext = true,
ReleaseServiceInstanceOnTransactionComplete=true,
ConcurrencyMode = ConcurrencyMode.Single,
InstanceContextMode = InstanceContextMode.PerCall)]
Endpoint Zachowanie:
<endpointBehaviors>
<behavior name="endpointBehavior">
<transactedBatching maxBatchSize="1" />
</behavior>
</endpointBehaviors>
Moja własna Throttling Usługa:
<serviceThrottling maxConcurrentCalls="128" maxConcurrentSessions="800" />
Am I widokiem na coś? Może po prostu nie w pełni rozumiem domyślne/niestandardowe ustawienia przepustnicy (prawdopodobne).
EDIT
Mam zmodyfikowano ConcurrencyMode (zmiana do wielu) wraz z ustawieniem ReleaseServiceInstanceOnTransactionComplete. Zmiana na wiele nie wydawała się niczego zmieniać?
EDIT Czy to może być ustawienie TransactionBatch? Mam ten zestaw do jednego ...?
Dzięki,
S
Czy to nie jest jednowątkowe? –
Hi @JohnBreakwell Zmieniłem tryb współbieżności na Wiele i wydawało się, że realizuję te same wyniki? – scarpacci