I think I may have found a bug in a send/receive timeout that is getting setup in the WCF Transport Channel. The internal class Microsoft.ApplicationServer.Caching.WcfTransportChannel. In method SetupTimeouts, the SendReceiveTimeout is getting set to two times the send timeout value. I think it should be set to the send timeout + receive timeout.
See http://philbolduc.blogspot.com/2010/07/appfabric-caching-send-receive-timeout.html for a screen shot.
2010年7月13日 6:58Hi Phil, these are product internals and not exposed outside. However, I can tell you that this is not a defect.
Amit. (Velocity Dev, MSFT)
They may be product internals, but as end users, we are able to configure the receiveTimeout by configuration via the transport properties
<dataCacheClient requestTimeout="15000" channelOpenTimeout="3000" maxConnectionsToServer="1">
<localCache isEnabled="true" sync="TimeoutBased" ttlValue="300" objectCount="10000"/>
<clientNotification pollInterval="300" maxQueueLength="10000"/>
<host name="CacheServer1" cachePort="22233"/>
<host name="CacheServer2" cachePort="22233"/>
<securityProperties mode="Transport" protectionLevel="EncryptAndSign" />
<transportProperties connectionBufferSize="131072" maxBufferPoolSize="268435456"
maxBufferSize="8388608" maxOutputDelay="2" channelInitializationTimeout="60000"
I'll trust you it is not a bug or issue, but it still feels like something is not correct. I made an update to my blog post indicating you said it was not a defect.
2010年9月27日 15:59Thanks for updating your blog post. The receive property you are mentioning is actually the receive timeout on a channel. It is not related to sendReceiveTimeout.
Amit. (Velocity Dev, MSFT)
Can someone tell me what is the receiveTimeout property ? When will it get triggered ?
Will it ever get triggered if my ChannelOpenTimeout is less then 600000 ?
The receiveTimout property is the timeout to wait before the channel is marked idle and is brought down in case there is no message exchanged within that period. this is applicable only after the channel has been opened.
ChannelOpentimeout is the time to wait for opening a channel to the server.
- 回答としてマーク Ankur Agrawal MSFTModerator 2011年2月15日 7:02
2011年2月14日 16:01Thank you Ankur!
Once the channel hits receiveTimeout then why does another channel opens up. I have set channel with max connections to be 2 after first timeout I receive a duplex channel error and it opens 2 new channels, next duplex channel occurs in 5 mints
1. Why second channel took 5 mints I would expect it to be 10.
2. Since the client is configured through XML, how I can avoid the duplex channel errors ?