Er is een WebApi-ingang geïntroduceerd die interne controles uit kan voeren op basis waarvan de juiste werking en inrichting van DCB kan worden getest: api/v1/maintenance/diagnose Op dit moment voert deze ingang slechts één controle uit, namelijk of de database benaderd kan worden. In de loop der tijd kunnen hier andere controles aan toegevoegd worden. De resultaten komen terug in een soortgelijke vorm als de aanroep naar api/v1/status: [ { "serviceName": "string", "partitionId": "string", "responseStatusCode": 0, "responseBody": {} } ] Dit array bevat het diagnose-resultaat van iedere service op het cluster, bijvoorbeeld RelatieService of ContractService, met uitzondering van TenantWebService. Dit doet hij door het diagnose-verzoek naar ieder van die services door te sturen. responseStatusCode geeft de statuscode aan van de het resultaat van dat verzoek. Als de aanroep gelukt is, dan is de statuscode 200 (Ok). responseBody bevat de body van het resultaat van de aanroep. Voor een gelukte aanroep is dit de volgende structuur: { "IsValid": true, "Errors": [ "Code": "", "Message": "" ] }
Als een probleem wordt gedetecteert, dan heeft IsValid de waarde false, en bevat Errors het gevonden probleem in de vorm van een foutcode, en een specifieke melding. Bijvoorbeeld: "responseBody": { "IsValid": false, "Errors": [ { "Code": "DatabaseVerbindingMislukt", "Message": "Het bereiken van de database is niet gelukt. Hierbij de volgende foutmelding: System.Data.Entity.Core.EntityException: The underlying provider failed on Open. -> System.Net.Sockets.SocketException: Kan geen verbinding maken omdat de doelcomputer de verbinding actief heeft geweigerd 127.0.0.1:1583" } ] } Merk op dat sommige problemen als gevolg kunnen hebben dat niet ingelogd kan worden, en in dat geval kan de diagnose dus juist niet uitgevoerd worden. In dit geval zal responseStatusCode voor de betreffende service de waarde 401 (Unauthorized) bevatten, en de controles zelf kunnen niet uitgevoerd worden. Een voorbeeld hiervan is als er geen toegang meer is tot de database, en de gecachte inlog-gegevens zijn binnen de betreffende service verlopen. Deze ingang is bedoelt als diagnose-gereedschap voor systeembeheerders en supportmedewerkers in geval van problemen. Hij kan daarom alleen aangeroepen worden met het client-id van de systeembeheerder. | ||||