*** Update 8/12/2016 – This issue was resolved in the May 2016 Public Update – https://support.microsoft.com/en-us/kb/3115088 and all subsequent patches (we no longer enforce quota for on-premises Project Server 2016). We have see where the ‘read-only’ banner persists and re-applying the license has resolved the problem – Enable-ProjectServerLicense -Key <LicenseKey>. Thanks to Anil for this last piece of information ***
As you may know, we have included many of the features and improvements that have been added to Project Online over the last year or two into the on-premises release of Project Server 2016. One of the inadvertent additions is the Project Web App data quota… If you are migrating a large database to Project Server 2016 – or as your Project Server 2016 PWA content database grows you may one day see it go into read-only – with a yellow banner saying “This site is read-only at the moment.”
We do have a fix in the works for this issue – and it will ship in one of the first updates for Project Server 2016 so hopefully most customers will not be affected by this issue. We will also be updating the upgrade instructions on TechNet to include the PowerShell script to disable the quota check. – which I will cover shortly…
The quota size for a PWA is set by default in Project Online to 10GB – so that is the size that will also trigger the yellow banner above. It isn’t however just the content DB size as we are only counting certain project tables and certainly not the DB logs. The quota gets calculated as part of the timer job – Project Server: Database Maintenance job for Project Server Service Application – which runs daily, and by default between midnight and 3am. This in turn sets a flag that gets check when each page of PWA is loaded. So you may not see this at the point you exceed the threshold – but the following morning when you try to access PWA. Please don’t disable the timer job – it does do good stuff as well as this one bad thing…
To disable the quota you can use a PowerShell command executed in the SharePoint 2016 Management Shell:
Set-SPProjectDatabaseQuota -Url http://servername/sites/pwa -Enabled:$false -ReadOnlyLimit 10200 -ReadOnlyWarningThreshold 90 -MaxDbSize 10240
In my tests it does appear to need values for the final three parameters even when disabling the quota check – I’ve just put in the ones already set (apart from reducing the ReadOnlyLimit which needs to be below the MaxDbSize). There is a Get-SPProjectDatabaseQuota command too – just in case you want to see if the quota is enabled or not.
If you happen to hit the problem and are searching for answers – then you may get to the blog if I include some of the ULS log entries related to the problem. So if you look in the ULS logs then you will see, during the run of the overnight timer job above, some entries like these (I set my quota low so I could repro the problem with less data…):
04/07/2016 14:16:05.71 OWSTIMER.EXE (0x0528) 0x1188 Project Server Project Server Database argwp Medium Checking and enforcing quota usage for Project Site ‘dfe90aa9-96d5-40b0-a61a-d5dc2803c042’ in Database ‘SQLServer’/’WSS_Content_7144958b52bd4c7fa89031b38c65828d’ 1d4c709d-a65c-00a4-ab7b-f2d5f34ac4f2
04/07/2016 14:16:05.71 OWSTIMER.EXE (0x0528) 0x1188 Project Server General ahw95 High PWA:http://servername/sites/pwa, ServiceApp:Project Server Service Application, User:PROJECTSERVER\system, PSI: Database size 1651 MB has exceeded read only limt of 1550 MB. 1d4c709d-a65c-00a4-ab7b-f2d5f34ac4f2
If you are loading up data using CSOM then you might get an error such as this one before noticing the site yellow banner – so including it here for the benefit of searchers:
04/07/2016 14:16:17.04 w3wp.exe (0x146C) 0x6CD8 Project Server General a57ir Medium Error is: GeneralDalDatabaseIsReadOnly. Details: Cannot invoke BusinessObject method CSOM.CheckOutProject because project server instance is in Read-Only mode . Standard Information: PSI Entry Point: Project User: i:0#.w|domain\user Correlation Id: 6aa166f1-05fd-e511-80be-00155d718d05 PWA Site URL: http://servername/sites/pwa SA Name: Project Server Service Application PSError: GeneralDalDatabaseIsReadOnly (26034) 204c709d-7681-00a4-ab7b-feae7a2cb390
When loading the page that shows the yellow banner then the following would normally be seen in the ULS logs (again for the search engines)
04/07/2016 16:04:49.94 w3wp.exe (0x146C) 0x2B64 Project Server General a57ir Medium Error is: GeneralDalDatabaseIsReadOnly. Details: Cannot invoke BusinessObject method PWA.RecordClientPerformanceMetrics because project server instance is in Read-Only mode . Standard Information: PSI Entry Point: Project User: i:0#.w|domain\user Correlation Id: b9dc841f-15fd-e511-80be-00155d718d05 PWA Site URL: http://servername/sites/pwa SA Name: Project Server Service Application PSError: GeneralDalDatabaseIsReadOnly (26034) 5652709d-9623-00a4-ab7b-f55447c439fd
Sorry for any inconvenience this causes you.