問題
我在寫入一個大量資料的Cache時,發生如下的錯誤
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 來解決問題。
解法步驟
解決方法,必須同時在 Server 端及 Client 端增加 MaxBufferSize 的設定。
首先是 Server Side
Server Side
Export Cluster Config
Export-CacheClusterConfig -File c:\temp\cluster.config
將Cluster 的設定匯出到一個 xml config 檔。此處我命名為 cluster.config
增加 transportProperties 的設定
依照 Application Configuration Settings 的建議,在上一步驟的cluster.config 增加下面的設定
匯入並套用設定
在匯入設定前,必須先停止 Cluster。匯入設定後,記得再啟動 Cluster。
Stop-CacheCluster Import-CacheClusterConfig -File c:\temp\cluster.config Start-CacheCluster再來是 Client Side
Client Side
在 Client config 加入 transportProperties 設定
<?xml version="1.0"?> <configuration> <configSections> <section name="dataCacheClient" type="Microsoft.ApplicationServer.Caching.DataCacheClientSection, Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" allowLocation="true" allowDefinition="Everywhere"/> </configSections> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> </startup> <dataCacheClient> <hosts> <host name="localhost" cachePort="22233"/> </hosts> <transportProperties maxBufferPoolSize="268435456" maxBufferSize="83886080" /> </dataCacheClient> </configuration>
沒有留言:
張貼留言