All started with the new sharpoint 2013 newsfeed web part. Suddenly it displayed me an error message saying;
“The operation failed because the server could not access the distributed cache. Internal type name: Microsoft.Office.Server.Microfeed.MicrofeedException. Internal error code: 55. Contact your system administrator for help in resolving this problem“
Then I had to understand what is Distributed Cache first. Here’s what i’ve gone through, from its design to configurations and finally some known issues. From the bottom line what Distributed Cache (DC) does is, it enables cacheing functionality for some key sharepoint features including;
- OneNote client access
- Page load performance
- Security Trimming
Mainly microblog features and feeds are rely on the DC to store data for very fast retrieval across all entities. The Distributed Cache service is built on Windows Server AppFabric, which implements the AppFabric Caching service.
The Architecture – How social feeds works with Distributed Cache
Activities are posts and replies that can be either user-generated or system-generated. There are several types of activities in SharePoint Server 2013. These include the following:
- Microblog activities This includes posts, replies, likes, mentions, or tagging an item.
- Following activities This includes when a user follows people, documents, sites, or tags.
- User profile activities This includes birthday, job title change, anniversary, updates made to Ask Me About, creating a new blog post, or posting on a Community Site.
- Document activities This includes when a document is edited or a document is shared.
In SharePoint Server 2013, the newsfeed (or just simply the feed) displays activity information to users. Users access the feeds from a user’s My Site. In SharePoint Server 2013, a user’s My Site has several feeds available from which to choose. These different feeds show different views of activity information by filtering or pivoting on activity metadata. The different feeds available to users from their My Sites include the following:
- Newsfeed This is the default view when visiting a user’s My Site. The Newsfeed contains recent activities from followed entities. The Newsfeed displays 20 items and is sorted in reverse chronological order. Items listed in the Newsfeed are activities from entities a user follows, and conversations from any site feeds the user follows. Site feeds are explained later in this article.
- Everyone The Everyone feed shows the last 20 posts or replies across all users. The distinction between the Everyone feed and the Newsfeed is that theNewsfeed only shows activities from entities the user is following.
- Activities The Activities feed shows all activities associated with a user, including system-generated activities. The Activities feed represents the most accurate view of a user’s activities because it shows all activities and not just recent activities, which occurs with the Newsfeed. This feed is also seen when users browse to their profile or About Me page for a user.
- Mentions The Mentions feed for a user displays all posts or replies where that user was mentioned.
- Likes The Likes feed displays a list of posts or replies that the user has liked. This is not related to the I Like It feature from SharePoint Server 2010.
- Site feeds Activities are publicly accessible unless the activity refers to content that the user does not have access to. If feed functionality is required for a restricted group of users, a site feed should be used. Site feeds display posts and replies among the users of the group. Site feed posts and replies display in the Newsfeed of a user only if the user has access to the site feed. Site feeds do not display system-generated activities. By default, the site feed feature on a team site is enabled.
The microblog features and feeds rely on the following two caches: the Last Modified Time Cache and the Feed Cache.
- Feed Cache The Feed Cache stores recent activities and recent conversations for all entities
- Last Modified Time Cache The Last Modified Time Cache is used to determine the last modified time for all items in the Feed Cache.
Considerations when implementing Distributed Cache
- An administrator can allocate memory to the Distributed Cache. This allocation significantly affects the performance of the Distributed Cache service
- Consider using a dedicated Distributed Cache server when you use the newsfeed and microblog features.
- If you are using custom applications in SharePoint Server 2013 which use the AppFabric client APIs, or are creating custom caches, you should create a separate AppFabric cache cluster to support your custom applications. Do not use the AppFabric cache cluster supporting your SharePoint Server 2013 farm. Run your separate AppFabric cache cluster for your custom applications on separate servers from the servers dedicated to your SharePoint Server 2013 farm.
- In a SharePoint Server 2013 farm, there must be at least one cache host running the Distributed Cache service.
- On a server that has more than 16 GB of total physical memory, allocate a maximum of 16 GB of memory to the Distributed Cache service. If you allocate more than 16 GB of memory to the Distributed Cache service, the server might unexpectedly stop responding for more than 10 seconds.
More about planning for the Distributed Cache service, http://technet.microsoft.com/library/jj219572(office.15).aspx
Refer this for managing the Distributed Cache service, http://technet.microsoft.com/library/jj219613(office.15).aspx
Warning – Important Safety Tip
- Do not administer the Distributed Cache through the Service window in Administrative Tools under Control Panel, or through the AppFabric for Windows Server application on the Start menu. This could get the Distributed Cache service into a state where you might need to rebuild your farm.
- Microsoft recommends you avoid starting a Distributed Cache service instance on servers that are already running SQL Server, Search, Excel Services or Project Services.
- If you plan to have more than one Cache Host, the first server added should be configured to allow inbound ICMPv4 traffic.
- The right way to start the service is with the Add-SPDistributedCacheServiceInstance PowerShell cmdlet. You run this on a SharePoint server you would like to add to your Cache Cluster, which makes the current server a Cache Host. Simply stopping the service instance would cause the contents of the cache on that server to go missing, degrading performance.
Some common issue related to Distributed Cache
- Sharepoint 2013 Newsfeed does not display feeds, follows, everyone etc.