AppFabric unable to create a DataCache (LMTRepopulationJob FAILS)
-
05-10-2020 - |
Question
Well first of all, I am learning sharepoint 2013 and I have been following a few tutorials, so far I just setup a farm and everything seems to be working properly except for this service that is being logged into the event viewer every 5 minutes:
The Execute method of job definition Microsoft.Office.Server.UserProfiles.LMTRepopulationJob (ID 1e573155-b7f6-441b-919b-53b2f05770f7) threw an exception. More information is included below.
Unexpected exception in FeedCacheService.BulkLMTUpdate: Unable to create a DataCache. SPDistributedCache is probably down..
I found out that this is a job that is configured to execute every 5 minutes
But regarding the assumption that the SPDistributedCache is probably down, I already verified it and it is running
As you can see, it is actually running, also I checked the host cache via SP powershell (get-cachehost
and get-cacheclusterhealth
) and still all seems fine
Yet when I execute the command get-cache
I am getting only the default value, and for what I have read there should be listed another cache types like:
DistributedAccessCache_XXXXXXXXXXXXXXXXXXXXXXXXX DistributedBouncerCache_XXXXXXXXXXXXXXXXXXXXXXXX DistributedSearchCache_XXXXXXXXXXXXXXXXXXXXXXXXX DistributedServerToAppServerAccessTokenCache_XXXXXX DistributedViewStateCache_XXXXXXXXXXXXXXXXXXXXXXX
Among others which I think probably should include DataCache
Until now I already tried a few work around but with out success
Restart-Service AppFabricCachingService
Remove-SPDistributedCacheServiceInstance
Add-SPDistributedCacheServiceInstance
Restart-CacheCluster
Even this script that it seems to work on many cases to repair the AppFabric Caching Service
$SPFarm = Get-SPFarm
$cacheClusterName = "SPDistributedCacheCluster_" + $SPFarm.Id.ToString()
$cacheClusterManager = [Microsoft.SharePoint.DistributedCaching.Utilities.SPDistributedCacheClusterInfoManager]::Local
$cacheClusterInfo = $cacheClusterManager.GetSPDistributedCacheClusterInfo($cacheClusterName);
$instanceName ="SPDistributedCacheService Name=AppFabricCachingService"
$serviceInstance = Get-SPServiceInstance | ? {($_.Service.Tostring()) -eq $instanceName -and ($_.Server.Name) -eq $env:computername}
$serviceInstance.Delete()
Add-SPDistributedCacheServiceInstance
$cacheClusterInfo.CacheHostsInfoCollection
Well if anyone has any suggestion about how can I make this job to execute properly I will appreciate very much, thank you in advance!
Solution
The caches are only created when the first Distributed Cache server is created (this is usually the SharePoint server you create the farm from). What this means is, if for some reason you encounter a failure during the creation of a cache, it is not possible, in a supported way, to create the cache post-deployment. Unfortunately it will not be apparent if the cache has failed to create unless you check the list of caches using Get-CacheClusterHealth, like you have.
Short answer is, rebuild your farm.
OTHER TIPS
Did you try to fine-tune your distributed cache service ? If not, try this link. Regarding one of your screenshots, it seems like no Container Type is configured so try to fine tune the distributed cache.
These are my screenshots when I execute :
Get-CacheClusterHealth
Get-Cache