Demo of the Microsoft Graph “Quick Start” which generates a full code project with a new App ID (Client ID). Azure Active Directory (AAD) manages a registration of application ID paired with API permission grants for which API calls can be made. From there, the client side JavaScript application can invoke HTTP GET to fetch JSON data for the allowed MS Graph API endpoints. Cheers!
When SharePoint Server Distributed Cache is unhappy in a farm, you may see page loads error, 404s not found, API failures, and similar. Having a well configured Distributed Cache will ensure healthy page renderings. PowerShell notes below. Credit to one awesome long term SP engineer for the snippets below. Thank you. Cheers!
CHECK STATUS
To check the status of the Distributed Cache Servers, run this command on each Farm from a DC machine.
# CHECK DC STATUS
Use-CacheCluster;
Get-CacheHost;
$servers=Get-CacheHost;
foreach ($server in $servers) {
Get-AFCacheHostConfiguration -ComputerName $server.hostname -CachePort "22233"
}
REMOVE SERVER
# REMOVE COMPUTER TO DC HOSTS
Remove-SPDistributedCacheServiceInstance
ADD SERVER
# ADD COMPUTER TO DC HOSTS
Add-SPDistributedCacheServiceInstance
CHANGE SERVICE = UP
To change the Service Status of a server to UP, run these commands on the server you wish to bring UP.
# CHANGE DC STATUS = UP
$instanceName ="SPDistributedCacheService Name=AppFabricCachingService"
$serviceInstance = Get-SPServiceInstance | ? {($_.service.tostring()) -eq $instanceName -and ($_.server.name) -eq $env:computername}
$serviceInstance.Provision()
CHANGE STATUS = DOWN
To change the Service Status of a server to DOWN, run these commands on the server you wish to bring DOWN.
# CHANGE DC STATUS = DOWN
$instanceName = "SPDistributedCacheService Name=AppFabricCachingService"
$serviceInstance = Get-SPServiceInstance | ? {($_.service.tostring()) -eq $instanceName -and ($_.server.name) -eq $env:computername}
$serviceInstance.Unprovision()
CHANGE IsLeadHost=FALSE
There can be only one IsLeadHost=True server in a Farm. If there is more than is IsLeadHost=True servers your Farm will act unstable and people will see page load errors. We traditional set the lowest server name alphabetically in a Farm as IsLeadHost. Change the DC Farm so that Service Status=DOWN on server.
# CHANGE LEAD HOST = FALSE
Use-CacheCluster;
$instanceName = "SPDistributedCacheService Name=AppFabricCachingService"
$serviceInstance = Get-SPServiceInstance | ? {($_.service.tostring()) -eq $instanceName -and ($_.server.name) -eq $env:computername}
$serviceInstance.Unprovision()
#Change IsLeadHost value to false (use computer name or local computer name)
Set-CacheHostConfig -HostName $env:computername -CachePort 22233 -IsLeadHost "false" -RefreshNow
# CHANGE DC SERVER STATUS = UP
$instanceName ="SPDistributedCacheService Name=AppFabricCachingService"
$serviceInstance = Get-SPServiceInstance | ? {($_.service.tostring()) -eq $instanceName -and ($_.server.name) -eq $env:computername}
$serviceInstance.Provision()
# WAIT 30 SECONDS FOR DC STATUS=UP
Start-Sleep -s 30
# CHECK DC STATUS
Use-CacheCluster; Get-CacheHost; $servers=Get-CacheHost;
foreach ($server in $servers) {
Get-AFCacheHostConfiguration -ComputerName $server.hostname -CachePort "22233"
}
More than one IsLeadHost=True is BAD.
SET DC CACHE SIZE (24GB server = 6GB CACHE)
Also notice our default DC cache size is only 819 MB. MSFT formula = 24GB-2GB=22GB/2GB=11GB. Typical recommendation for a 24GB server is no more than 8GB Cache size. If running 24GB RAM on WFE, we should allocate 6GB (1024*6=6144 MB).
# CHANGE DC STATUS = DOWN
$instanceName = "SPDistributedCacheService Name=AppFabricCachingService"
$serviceInstance = Get-SPServiceInstance | ? {($_.service.tostring()) -eq $instanceName -and ($_.server.name) -eq $env:computername}
$serviceInstance.Unprovision()
# CHANGE DC CACHE SIZE (6GB)
Update-SPDistributedCacheSize -CacheSizeInMB 6144
# CHANGE DC SERVER STATUS = UP
$instanceName ="SPDistributedCacheService Name=AppFabricCachingService"
$serviceInstance = Get-SPServiceInstance | ? {($_.service.tostring()) -eq $instanceName -and ($_.server.name) -eq $env:computername}
$serviceInstance.Provision()
Cloning a project server environment is not a simple procedure. Wanted to share notes to help others. Duplicating the SQL databases is a good start. However, there are internal issues with duplicate GUID (same number already in use) that can create issues.
With a fresh new GUID in place we can follow steps in SharePoint Central Admin, PowerShell, and PWA Settings to bring the new PWA database pairs (SharePoint Content + Project Plans) online for customers. Word DOC included below with step-by-step detail. Cheers!
Today I noticed a new link in the top right of SharePoint Admin Center and recorded a brief video tour to highlight new features and compare to Classic Admin Center. URL is below in case you want to try on your O365 tenant name. Cheers!