there can be any number of reasons for the DB being down - poor network connectivity is the one we see most often, but if it's on a local machine that wont be it - it might be that the database is unreachable as it's maxed out/cpu is at 100%
As to the cause of the underconstruction page -when the app is starting (e.g. after an app pool recycle, module upload etc.) a function is called to check if an update is required - as part of this is first of checks if the database is available (by calling DataProvider.Instance().GetProviderPath()) -it that returns an error then it marks this as a potentially failing upgrade (Globals.UpgradeStatus.Error) which later on shows the under construction page -the following block shows the 3 reasons this page may show - obviously if you have not just done an install/upgrade it means that the database check failed - hence why my previous guess.
Select Case Globals.Status
Case Globals.UpgradeStatus.Install
If AutoUpgrade Then
If UseWizard Then
retValue = "~/Install/InstallWizard.aspx"
Else
retValue = "~/Install/Install.aspx?mode=install"
End If
Else
CreateUnderConstructionPage(Server)
retValue = "~/Install/UnderConstruction.htm"
End If
Case Globals.UpgradeStatus.Upgrade
If AutoUpgrade Then
retValue = "~/Install/Install.aspx?mode=upgrade"
Else
CreateUnderConstructionPage(Server)
retValue = "~/Install/UnderConstruction.htm"
End If
Case Globals.UpgradeStatus.Error
CreateUnderConstructionPage(Server)
retValue = "~/Install/UnderConstruction.htm"
End Select
As to the other error message, it's not one I've seen before - though we did a bunch of work in 5.6.1 (and migrated it to 6.0.0) to fix some potentially locking issues under load - if you're not running 5.6.1 or higher that may be what you're seeing for that error -whether it's related to the underconstruction page I have no idea.