Memcache支援的資料量大小為1M,最新版本可以通過配置調整突破1M(參看http://www.cnblogs.com/shanyou/archive/2010/02/01/1661271.html),AppFabric Caching也支援大資料量的緩衝。當你看到這樣的錯誤的時候就需要調整參數了。
Microsoft.ApplicationServer.Caching.DataCacheException: ErrorCode<ERRCA0016>:SubStatus<ES0001>:The connection was terminated, possibly due to server or network problems or serialized Object size is greater than MaxBufferSize on server. Result of the request is unknown.
解決方法,必須同時在 服務端及 用戶端增加 MaxBufferSize 的配置。
Export Cluster Config
Export-CacheClusterConfig -File c:\temp\appFabriccluster.config
將Cluster 的設定匯出到一個xml config 檔案。這裡我取名叫做 appFabriccluster.config
增加 transportProperties 的配置,按照 Application Configuration Settings 的建議,在上一步驟的appFabriccluster.config 增加下面的配置。匯入並應用配置
在匯入配置前,必須先停止 Cluster。匯入配置完成後,再啟動Cluster。
Stop-CacheCluster
Import-CacheClusterConfig -File c:\temp\appFabriccluster.configStart-CacheCluster
在 Client config 加入 transportProperties 配置
1: <?xml version="1.0" encoding="utf-8" ?>
2: <configuration>
3: <!--configSections must be the FIRST element -->
4: <configSections>
5: <!-- required to read the <dataCacheClient> element -->
6: <section name="dataCacheClient"
7: type="Microsoft.ApplicationServer.Caching.DataCacheClientSection,
8: Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0,
9: Culture=neutral, PublicKeyToken=31bf3856ad364e35"
10: allowLocation="true"
11: allowDefinition="Everywhere"/>
12: </configSections>
13:
14: <dataCacheClient requestTimeout="15000" channelOpenTimeout="3000" maxConnectionsToServer="1">
15: <localCache isEnabled="true" sync="TimeoutBased" ttlValue="300" objectCount="10000"/>
16: <clientNotification pollInterval="300" maxQueueLength="10000"/>
17: <hosts>
18: <host name="CacheServer1" cachePort="22233"/>
19: <host name="CacheServer2" cachePort="22233"/>
20: </hosts>
21: <securityProperties mode="Transport" protectionLevel="EncryptAndSign" />
22: <transportProperties connectionBufferSize="131072" maxBufferPoolSize="268435456"
23: maxBufferSize="8388608" maxOutputDelay="2" channelInitializationTimeout="60000"
24: receiveTimeout="600000"/>
25: </dataCacheClient>
26: </configuration>