【发布时间】:2012-02-03 12:10:27
【问题描述】:
我一直在使用 WCF 和 MSMQ 进行概念验证。我一直在使用默认值This Article 来调整油门设置,并将我自己的设置添加到配置文件中。我有 2 个四核 Xeon CPU 运行这个应用程序。无论我应用什么设置,它总是一次只能抓取 8 条消息(与我的处理核心匹配)。我希望在单个事务中处理每条消息,以便这可能是问题的一部分……不确定。我只是假设它会同时处理比实际更多的消息。
服务行为:
[ServiceBehavior(UseSynchronizationContext = true,
ReleaseServiceInstanceOnTransactionComplete=true,
ConcurrencyMode = ConcurrencyMode.Single,
InstanceContextMode = InstanceContextMode.PerCall)]
端点行为:
<endpointBehaviors>
<behavior name="endpointBehavior">
<transactedBatching maxBatchSize="1" />
</behavior>
</endpointBehaviors>
我自己的服务限制:
<serviceThrottling maxConcurrentCalls="128" maxConcurrentSessions="800" />
我是否忽略了什么?也许我只是不完全理解默认/自定义油门设置(可能)。
编辑
我已经修改了 ConcurrencyMode(更改为 Multiple)以及 ReleaseServiceInstanceOnTransactionComplete 设置。更改为 Multiple 似乎没有任何改变?
编辑 可能是 TransactionBatch 设置?我已经设置为一个...?
谢谢,
S
【问题讨论】:
-
嗨@JohnBreakwell 我已将并发模式更改为 Multiple 并且似乎实现了相同的结果?