wiki:Documentatie/Beheerder/Installeren/Server

Version 36 (modified by bob, 8 years ago) (diff)

--

OpenAC 3 Server installatie

Systeemeisen

OpenAC 3 is beschikbaar in twee varianten:

  • win7-x64​ (Windows Server 2008 R2, 64-bit)
  • win81-x64​ (Windows Server 2012, 64-bit)

Een zip-bestand van één van deze varianten kan worden gedownload op de Server releases pagina.

De OpenAC webapplicatie werkt goed met de browsers Google Chrome, Mozilla Firefox en Microsoft Edge. Microsoft Internet Explorer doet het grotendeels maar is veel trager en correcte werking is niet gegarandeerd.

De installatie van OpenAC 3 kan pas worden gestart nadat .NET 4.6.1 of hoger is geïnstalleerd op de server. Deze versie van .NET is voor Windows Server 2012 en hoger beschikbaar als Service Pack. Als .NET niet beschikbaar is als Service Pack dan kun je het downloaden bij Microsoft.

Installatie

Het installeren van OpenAC bestaat uit de volgende stappen:

  • Uitpakken van het zip-bestand
  • Configuratie
  • Eerste keer starten
  • Controle logbestanden
  • Testen werking Message Queue (agendaserver)
  • (optioneel) Installeren Windows service

Uitpakken van het zip-bestand

Maak een map aan en pak het zip-bestand hierin uit. Na de installatie moet OpenAC worden geconfigureerd voordat het kan worden gestart.

Configuratie

OpenAC kent een viertal configuratiebestanden. Ze zijn te vinden in de root van de installatiemap en kunnen de eerste keer hier worden geconfigureerd. OpenAC zal de bestanden bij de eerste start kopiëren naar de ProgramData\OpenACWeb map. In het vervolg moeten ze op die locatie worden gewijzigd. De volledige locatie kun je opzoeken in het OpenAC statusscherm.

appsettings.jsonConfiguratie van database- en applicatie-specifieke instellingen
hosting.jsonConfiguratie van de OpenAC webserver
messagequeue.jsonConfiguratie van de OpenAC Message Queue (agendaserver)
nlog.configConfiguratie van de logbestanden

Zie het kopje Configuratiebestanden voor meer informatie over het configureren van OpenAC.

Eerste keer starten

Test de configuratie door OpenAC te starten in de console. Open een command prompt en ga naar de installatiemap. Start de server op met:

OpenACWeb.exe

Navigeer met een browser naar de homepage op http://localhost:<poort>/ en kijk of je kunt inloggen. Als je kunt inloggen dan is de database correct geconfigureerd. Op de statuspagina, bereikbaar via Beheer -> Status kun je o.a. zien wat de data- en configuratie directory is die OpenAC gebruikt.

Hier zie je een sectie van de database van de statuspagina.

No image "succesvol_connection_mssql_instance.png" attached to Documentatie/Beheerder/Installeren/Server

Controle logbestanden

In de standaardconfiguratie maakt OpenAC twee logbestanden aan:

openac-alles-<datum>.logDe meest uitgebreide logging, inclusief alle binnenkomende request
openac-applicatie-<datum>.logOpenAC-specifieke logging, inclusief eventuele foutmeldingen. Als ontwikkelaars een logbestand opvragen gaat het bijna altijd om dit bestand

De logdirectory, het aantal logbestanden en de inhoud hiervan kan worden geconfigureerd met nlog.config. Controleer na de eerste keer starten of de logbestanden zijn aangemaakt en dat de inhoud overeenkomt met wat je verwacht.

Testen werking Message Queue (agendaserver)

De OpenAC Message Queue wordt hoofdzakelijk gebruikt om de agenda's te synchroniseren. Als iemand iets wijzigt in een agenda dan wordt dit via de Message Queue doorgegeven aan alle OpenAC werkstations die een verbinding hebben met de OpenAC 3 server. Als de server is gestart dan kun je de werking van de Message Queue testen.

In het instellingenscherm van OpenAC 2 moet onder het kopje "OpenAC Server" het vinkje voor "Start client" aanstaan. De instellingen achter "Server" en "MessageQueue? Poort" moeten overeenkomen met de instellingen in messagequeue.json.

Zorg er ook voor dat bovengenoemde instellingen zijn aangevinkt bij "Instelling voor alle gebruikers" zodat ze in de database worden opgeslagen en daardoor voor iedereen gelijk zijn.

De Message Queue kan worden getest door twee instanties van OpenAC 2 op te starten. Wijzigingen die je in de agenda van de één doet moeten na een korte vertraging automatisch verschijnen in de agenda van de ander. Let er wel op dat de agendalocatie voor beide instanties van OpenAC gelijk is.

(optioneel) Installeren Windows service

Voor het installeren of de-installeren van een service zijn Administrator bevoegdheden nodig.

de-installeren oude service

Als de oude agendaserver nog in gebruik is dan moet je deze allereerst verwijderen.

Voor OpenAC 3 gebruikten we een stand-alone Message Queue (agendaserver) om de agenda's te synchroniseren. Deze agendaserver kon als Windows service worden geïnstalleerd en is herkenbaar aan de executable "openac-server.exe". In het overzicht met Windows services heet de service "OpenACService".

Als deze service nog in gebruik is dan dien je hem te verwijderen voordat je de OpenAC 3 service kunt installeren. Ga eerst naar het services scherm en stop de oude service. Zet voor de zekerheid opstarttype op handmatig om te voorkomen dat de oude service automatisch wordt gestart als het verwijderen zou mislukken. Om de service te verwijderen open je een command prompt als administrator. Voer het volgende commando uit:

sc delete OpenACService

Als de oude service met een andere dan de default naam is geïnstalleerd dan de default naam, voer dan bovenstaand commando uit met de overeenkomstige naam.

installeren nieuwe service

De server kan als service worden geïnstalleerd door de executable te starten met parameter --install-service. Open een command prompt als adminstrator en ga naar de installatiemap. Installeer de service met:

openacweb.exe --install-service

Als het installeren van de service is gelukt volgt de melding:

De OpenAC service is met succes ge-installeerd.

Als het installeren van de service gelukt is dan moet hij de eerste keer handmatig worden gestart vanuit het services scherm.

de-installeren nieuwe service

Om de service te verwijderen ga eerst naar het services scherm en stop de service. Open daarna een command prompt als administrator. Voer het volgende commando uit:

sc delete OpenAC-Service

Voor het installeren van een nieuwe versie van OpenAC 3 is het niet nodig om de service te de-installeren. De service stoppen en na de upgrade opnieuw starten is voldoende.

Configuratiebestanden

appsettings.json

Configuratie van database- en applicatie-specifieke instellingen. Voordat de server kan worden getest moet eerst de database worden geconfigureerd. Dat kan in appsettings.json. Voorbeeld voor MySQL:

 /*
   * De database verbinding wordt geregeld door een database provider;
   * voor de provider geldt een connection string om de verbinding te
   * configureren.
   *
   * Geldige waarden voor ProviderName zijn: MySql, MSSql (niet-case-sensitive).
   * Geldige waarden voor ConnectionString hangen af van de gekozen provider.
   */
  "Database": {
    "ProviderName": "MySql",
    "ConnectionString": "server=127.0.0.1;userid=userid;password=password;database=database;SslMode=none"
  }

Voorbeeld voor SQL Server met gebruikersnaam en wachtwoord:

"Database": {
    "ProviderName": "MSSql",
    "ConnectionString": "Server=server\instance;Database=database;User Id=userid;Password=password;"
}

In plaats van server\instance is het ook mogelijk een adres te gebruiken. Let op, server authentication moet zijn ingesteld op "SQL Server and Windows Authentication mode" (mixed mode), anders werkt inloggen met gebruikersnaam en wachtwoord niet.

Voorbeeld voor SQL Server met Windows Integrated Security:

"Database": {
    "ProviderName": "MSSql",
    "ConnectionString": "Server=server\instance;Trusted_Connection=True;"
}

In plaats van server\instance is het ook mogelijk een adres te gebruiken. De datatabase wordt nu benaderd met de identity waarmee de windows sessie is gestart. Deze zal dus voldoende rechten op de database moeten hebben.

Configureren serieprefix

Keys in OpenAC tabellen bevatten vaak een zogenaamde serieprefix. In de key ACH-17H12345 is "ACH" de centrumprefix en "17H" de serieprefix. Configureer serieprefixen door in appsettings.json een sectie "Serieprefix" toe te voegen aan de sectie "Agb".

Voor elke tabel/locatie-combinatie kan een eigen serieprefix worden opgegeven. De locatiecomponent is optioneel, je zou kunnen volstaan met alleen een "default"-clausule.

In de prefixspecificatie kunnen de volgende variabelen worden gebruikt:

locatiecodeDe locatiecode
jaarDe vier cijfers van het jaar
jaar2De laatste twee cijfers van het jaar
jaarletterHet jaar geconverteerd naar een letter
maandDe maand in twee cijfers

Variabelen moeten tussen accolades staan.

Als achter "default" de specificatie "{jaar2}{locatiecode}" staat dan wordt dit vertaald naar bijvoorbeeld "17H".

    "Serieprefix": {
      "patient": {
        "F": "AM3",
        "U": "AM7",
        "H": "AM9",
        "S": "AM0",
        "A": "AM0",
        "Q": "H{jaar2}-",
        "default": "OA"
      }
    },

De serie-prefix sectie komt overeen met de serieprefix-functie in de eigen adaptatie van OpenAC 2, maar dan configuratie-gestuurd.

hosting.json

Configuratie van de OpenAC webserver. De interface:poort combinatie waarop de server luistert.

/*
  puntkomma gescheiden lijst met <server>:<poort> combinaties
*/
{
  "server.urls": "http://0.0.0.0:5000"
}

0.0.0.0 betekent dat de server op elke netwerk interface luistert. Dit is de geadviseerde instelling. Het poortnummer moet overeenkomen met nummer achter "Webserver Poort" in de sectie "OpenAC Server" van het instellingenscherm van OpenAC 2.

messagequeue.json

Configuratie van de OpenAC Message Queue (agendaserver). De OpenAC Message Queue is belangrijk voor optimaal functioneren van OpenAC 2 waarvoor het ondermeer het synchroniseren van de agenda's verzorgt.

{
  "MessageQueue": {
    "Port": 2200,
    "Start": true
  }
}

Het nummer achter "Port" moet overeenkomen met het nummer achter "MessageQueue Poort" in de sectie "OpenAC Server" van het instellingenscherm van OpenAC 2. Door "Start" op false te zetten wordt de MessageQueue niet gestart.

nlog.config

Configuratie van de logbestanden.

Voor het aanmaken van logbestanden gebruikt OpenAC de logmodule NLog. NLog moet worden geconfigureerd met het configuratiebestand nlog.config waarvan hieronder een voorbeeld te zien is:

 <targets>
    <!-- write logs to file -->
    <target xsi:type="File" name="allfile" fileName="c:\temp\openac-alles-${shortdate}.log"
                 layout="${longdate}|${uppercase:${level}}|${event-properties:item=EventId.Id}|${logger}|${message} ${exception}" />

   
    <target xsi:type="File" name="ownFile-web" fileName="c:\temp\openac-applicatie-${shortdate}.log"
             layout="${longdate}|${uppercase:${level}}|${event-properties:item=EventId.Id}|${aspnet-Request-IP}|${logger}|${message} ${exception}" />

    <target xsi:type="Null" name="blackhole" />
  </targets>

  <rules>
    <!--All logs, including from Microsoft-->
    <logger name="*" minlevel="Debug" writeTo="allfile" />

    <!--Skip Microsoft logs and so log only own logs-->
    <logger name="Microsoft.*" minlevel="Debug" writeTo="blackhole" final="true" />
    <logger name="*" minlevel="Debug" writeTo="ownFile-web" />
  </rules>

Begin met het instellen van de gewenste logdirectory. Standaard staat deze ingesteld op c:\temp. Vergeet niet dat de logdirectory moet bestaan en dat OpenAC moet kunnen schrijven naar deze directory.

De volgende stap is het instellen van het minimum loglevel. NLog kent een aantal loglevels en alles wat OpenAC logt met het minimum level en hoger komt in de logbestanden terecht. Dus hoe hoger het minimum loglevel, hoe minder er in de logbestanden komt.

De loglevels zijn in aflopende volgorde:

FatalAlleen fatale fouten
ErrorFouten en hoger
WarnWaarschuwingen en hoger
InfoMeldingen en hoger
DebugDebug-meldingen en hoger. Bedoeld om fouten op te sporen
TraceTrace-meldingen en hoger. Logt het begin en einde van elke functie-aanroep. Genereert extreem veel logmeldingen

We adviseren om minlevel in te stellen op "Info". Bij het oplossen van problemen zal de FENAC soms vragen om minlevel tijdelijk op "Debug" of "Trace" te zetten.

Ook het formaat van elke logregel kan worden geconfigureerd met nlog.config. Hiervoor kun je een regel-template opgeven achter het keyword "layout". De variabelen die je in de regel-template kunt gebruiken kun je terugvinden in de NLog-documentatie op https://github.com/nlog/nlog/wiki/Layout-Renderers. Let wel dat het mogelijk is dat de versie van NLog die OpenAC gebruikt niet alle variabelen ondersteunt die in de documentatie zijn terug te vinden.

We adviseren om ${longdate}|${uppercase:${level}}| aan het begin van elke logregel te zetten. Ook kan het handig zijn om ${aspnet-Request-IP} op te nemen zodat het IP-adres van elke client wordt gelogd.

Met de url http://<openac3-server>:<poort>/logleveltest kan de logconfiguratie worden getest. Dit genereert entries in het log die er afhankelijk van de configuratie ongeveer als volgt uitzien:

2018-02-19 13:54:31.0369|FATAL||192.168.0.234|OpenACLogica.Controllers.StatusController|Here is a Fatal message. 
2018-02-19 13:54:31.0539|ERROR||192.168.0.234|OpenACLogica.Controllers.StatusController|Here is a Error message 
2018-02-19 13:54:31.0539|WARN||192.168.0.234|OpenACLogica.Controllers.StatusController|Here is a Warning message 
2018-02-19 13:54:31.0769|INFO||192.168.0.234|OpenACLogica.Controllers.StatusController|Here is a Information message 
2018-02-19 13:54:31.0879|DEBUG||192.168.0.234|OpenACLogica.Controllers.StatusController|Here is a Debug message. 
2018-02-19 13:54:31.1013|DEBUG||192.168.0.234|OpenACLogica.Controllers.StatusController|Here is a DebugInfo message. 

Attachments (4)

Download all attachments as: .zip