Friday, April 6, 2012

Broken pipe and Transactional update cache is full

In your web applications u can see errors like following:
2012-04-06 10:01:05,031  WARN  [webscripts.connector.RemoteClient] [http-80-1] Exception during close() of HTTP API connection ClientAbortException:  java.net.SocketException: Broken pipe

Solution: In most situations this occurs when your client ajax connection is closed but response is ready. And server can't write response for client. In my case, I used YUI AJAX Get connection and set timeout "5000". When I see this warning message I increase timeout time to "300000" and log tail is happy now :)

In Alfresco in many case u can see errors like following:
19:56:54,750  WARN  [alfresco.cache.contentDataTransactionalCache] Transactional update cache 'org.alfresco.cache.contentDataTransactionalCache' is full (1000).
19:57:12,908  WARN  [org.alfresco.nodeOwnerTransactionalCache] Transactional update cache 'org.alfresco.nodeOwnerTransactionalCache' is full (10000).

Solution: In "<alfresco_dir>/WEB-INF/classes/alfresco/" directory I can see xml file with name "cache-context.xml". Open the file and find there "contentDataTransactionalCache" + "nodeOwnerTransactionalCache" + increase maxCacheSize value:

   <!-- The transactional cache for ContentData -->
   
   <bean name="contentDataCache" class="org.alfresco.repo.cache.TransactionalCache">
      <property name="sharedCache">
         <ref bean="contentDataSharedCache" />
      </property>
      <property name="name">
         <value>org.alfresco.cache.contentDataTransactionalCache</value>
      </property>
      <property name="maxCacheSize" value="70000" />
      <property name="mutable" value="true" />
      <property name="disableSharedCache" value="${system.cache.disableMutableSharedCaches}" />
   </bean>
   
   ...
   
   <!-- The transactional cache for Node Ownership -->
   
   <bean name="nodeOwnerCache" class="org.alfresco.repo.cache.TransactionalCache">
      <property name="sharedCache">
         <ref bean="nodeOwnerSharedCache" />
      </property>
      <property name="name">
         <value>org.alfresco.nodeOwnerTransactionalCache</value>
      </property>
      <property name="maxCacheSize" value="700000" />
      <property name="mutable" value="true" />
      <property name="disableSharedCache" value="${system.cache.disableMutableSharedCaches}" />
   </bean

1 comment:

  1. Hi Vasif,

    i am seeing a lot of the following errors in my alfresco.log. can you please help me figure out what exactly can these be related to ?

    22:52:01,609 ERROR [net.sf.ehcache.store.DiskStore] org.alfresco.cache.ticketsCacheCache: Elements cannot be written to disk store because the spool thread has died.

    Thanks
    Naveed

    ReplyDelete