Можно ли настроить сервер AppFabric Cache для хранения более крупных объектов? - PullRequest
7 голосов
/ 10 августа 2010

Я получаю сообщение об ошибке с сервером кэша AppFabric, когда я предполагаю, что в кэш добавляется более крупный объектный граф.сетевые проблемы или сериализованный размер объекта больше, чем MaxBufferSize на сервере.Результат запроса неизвестен.

Я точно знаю, что это не проблема сети.Я смог добавить кучу объектов в кеш до этого конкретного.И, глядя на него, объект немного больше, чем другие, которые были добавлены в кеш.

Как я могу настроить MaxBufferSize в AppFabric Cache?

Ответы [ 2 ]

9 голосов
/ 03 октября 2011

Вам также необходимо увеличить размер буфера на стороне сервера:

Если вы используете XML-конфигурацию, добавьте следующее:

<advancedProperties>      
    <transportProperties maxBufferSize="8388608" />
</advancedProperties> 

Если вы используете конфигурацию SQL, вам необходимо экспортировать ее в файл:

Export-CacheClusterConfig -File [yourfilepath] 

Измените файл, как указано выше, а затем импортируйте его снова:

Stop-CacheCluster 
Import-CacheClusterConfig -File [yourfilepath]
Start-CacheCluster

Тем не менее, не рекомендуется хранить большие файлы в AppFabric Cache.

8 голосов
/ 10 августа 2010

Клиентская сторона это maxBufferSize для транспортного элемента в разделе конфигурации DataCacheClient.

   <transportProperties  ..whatever else you have..  maxBufferSize="8388608"  />

Редактировать:

Пример раздела DataCacheClient из MSDN

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--configSections must be the FIRST element -->
<configSections>
<!-- required to read the <dataCacheClient> element -->
<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>

<dataCacheClient requestTimeout="15000" channelOpenTimeout="3000" maxConnectionsToServer="1">
  <localCache isEnabled="true" sync="TimeoutBased" ttlValue="300" objectCount="10000"/>
  <clientNotification pollInterval="300" maxQueueLength="10000"/>
  <hosts>
     <host name="CacheServer1" cachePort="22233"/>
     <host name="CacheServer2" cachePort="22233"/>
  </hosts>
  <securityProperties mode="Transport" protectionLevel="EncryptAndSign" />
  <transportProperties connectionBufferSize="131072" maxBufferPoolSize="268435456" 
                       maxBufferSize="8388608" maxOutputDelay="2" channelInitializationTimeout="60000" 
                       receiveTimeout="600000"/>
  </dataCacheClient>
 </configuration>
...