# Underhålla GKS3

## Vanliga IT-driftsuppgifter

### Övervakning

1. Kontrollera att backup finns tillgänglig och är återställningsbar.\
   Mappen `c:\gks3` på servern bör säkerhetskopieras dagligen och sparas i upp till ett år.
2. Kontrollera att tjänster för GKS är startade.
3. Kontrollera felloggar (Event Viewer) för fel.
4. Kontrollera ledigt hårddiskutrymme.
5. Föra en förteckning över miljöer (produktion, test) med installerade programvaror, tjänster och eventuellt skräddarsydda lösningar.\
   Det är speciellt användbart om dessa över installerade över fler serverdatorer.

### Administrativt underhåll av SQL Server

Följande uppgifter ska utföras kontinuerligt och bör med fördel automatiseras genom exempelvis *SQL Maintenance Plans*.

1. Skapa fullständig (`Backup type: Full`) databasbackup till fil (.bak). Detta bör ske varje natt. En backupfil bör sparas i minst ett år.
2. Skapa eventuellt *Differential* backup (`Backup type: Differential`) med den frekvens som det ska kunna gå att återskapa till. T.ex. en gång i timmen.
3. Bygg om alla index för databas GKS.
4. Uppdatera statistik för databas GKS.
5. Kontrollera storlek på databas och transaktionslogg.\
   Minska storlek (shrink) på databas och transaktionsloggar vid behov.\
   För att storlek på transaktionslogg ska gå att minimera kan det krävas att det tas en backup på transaktionsloggen först (`Backup type: Transaction Log`).

## Windows-tjänster

| Modul                     | Tjänst                                              |
| ------------------------- | --------------------------------------------------- |
| GKS3 Kalkyl               | GKS Licenshanterare                                 |
| GKS3 Kalkyl               | GKS Legoservice                                     |
| GKS3 Lager                | GKS Reservationserver                               |
| GKS3 Plan                 | GKS Plan Server                                     |
| GKS3 Plan                 | GKS Synchronizer                                    |
| GKS3 E-handel             | GKS Server                                          |
| GKS3 Distribution         | LogTrade Integrated Printing                        |
| GKS3 PlaceSimpleOrder API | PlaceSimpleOrderService (skapar tillverkningsorder) |

## Webbapplikationer

| Modul                        | URL / Mapp                                                                                                             |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| GKS Plan                     | <p><http://server/gksweb><br>c:\inetpub\wwwroot\gksweb</p>                                                             |
| GKS CRM                      | <p><http://server/gkscrm><br>c:\inetpub\wwwroot\gkscrm</p>                                                             |
| GKS API (E-handel)           | <p><http://server/SystemECommerceService/SystemECommerceService.asmx><br>c:\inetpub\wwwroot\SystemECommerceService</p> |
| GKS API (Place simple order) | <http://server/GKS.External.PlaceSimpleOrder/PlaceSimpleOrder.asmx> c:\inetpub\wwwroot\GKS.External.PlaceSimpleOrder   |

## Windows-applikationer

| Program           | Standard sökväg                                             |
| ----------------- | ----------------------------------------------------------- |
| GKS3 Kalkyl       | \\\server\gks3\gks.exe                                      |
| GKS3 BGC          | \\\server\gks3\bgc\Simutek.BGC.UI.exe                       |
| GKS3 Distribution | \\\server\gks3\distribution\Simutek.GKS.UI.Distribution.exe |
| GKS3 E-handel     | \\\server\gks3\ehandel\gks.exe                              |
| GKS3 Plan         | c:\program files (x86)\simutek ab\gks plan\GKS.Plan.exe     |

## Loggfiler

| Program/tjänst        | Loggmål                           |
| --------------------- | --------------------------------- |
| GKS3 Kalkyl           | c:\gks3\loggfiler                 |
| GKS Licenshanterare   | Event log: Application            |
| GKS Reservationserver | Event log: Application            |
| GKS Plan Server       | Event log: GKS.ProductionPlanning |
| GKS Synchronizer      | Event log: GKS.Sync               |

## Konfigurationsfiler

#### Klient

| Program/tjänst     | Sökväg                                                         | Mål        |
| ------------------ | -------------------------------------------------------------- | ---------- |
| GKS3 Plan          | c:\Program Files (x86)\Simutek AB\GKS Plan\GKS.Plan.exe.config | App-server |
| GKS3 Outlook Addin | (via programmeny)                                              | Databas    |

#### Server

| Program/tjänst            | Sökväg                                                                              | Mål        |
| ------------------------- | ----------------------------------------------------------------------------------- | ---------- |
| GKS3 Kalkyl               | c:\gks3\gks.ini                                                                     | Databas    |
| GKS3 Distribution         | c:\gks3\gks.ini                                                                     | Databas    |
| GKS3 BGC                  | c:\gks3\bgc\Simutek.BGC.UI.exe.config                                               | Databas    |
| GKS3 Planning Server      | c:\Program Files (x86)\Simutek AB\GKS Planning Server\GKS.PlanningServer.exe.config | Databas    |
| GKS3 Synchronizer         | c:\Program Files (x86)\Simutek AB\GKS Synchronizer\GKS.Synchronizer.exe.config      | Databas    |
| GKS3 Web                  | c:\inetpub\wwwroot\GKSWeb\web.config                                                | App-server |
| GKS3 Ehandel              | c:\Program Files (x86)\Simutek AB\GKS Server\Simutek.GKS.Server.exe.config          | Databas    |
| GKS3 CRM                  | c:\inetpub\wwwroot\GKSCRM\web.config                                                | Databas    |
| GKS3 Ehandel API          | c:\inetpub\wwwroot\SystemECommerceService\web.config                                | Databas    |
| GKS3 PlaceSimpleOrder API | c:\inetpub\wwwroot\GKS.External.PlaceSimpleOrder\web.config                         | Databas    |

## Portar

| Program/tjänst                               | Port        |
| -------------------------------------------- | ----------- |
| SQL Server (sqlservr.exe)                    | TCP 1433    |
| GKS Nyckelserver (Nyckelserver.exe)          | TCP 47007   |
| GKS Plan Server (GKS.PlanningServer.exe)     | TCP 50002   |
| GKS E-handel Server (Simutek.GKS.Server.exe) | TCP 50004   |
| GKS Plan (GKS.Plan.exe)                      | (dynamisk)¹ |

1. GKS Plan (GKS.Plan.exe) är normalt konfigurerad att erhålla en dynamisk port som tilldelas av Windows.\
   \
   För att se det portintervall som används kan följande kommando köras på servern: \
   `netsh int ipv4 show dynamicport tcp`\
   \
   För mer information om dynamiska portar och administration av dessa:\
   <https://learn.microsoft.com/en-us/troubleshoot/windows-server/networking/default-dynamic-port-range-tcpip-chang>

## Extern kommunikation

| Tjänst    | Driftstatus                                                        | URL                                                                                                              |
| --------- | ------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
| Bankgirot | N/A                                                                | <https://bankgirolinkws.bgc.se/>                                                                                 |
| Logtrade  | <https://logtrade.se/internet-of-logistics/#operating-information> | [http://webservices.logtrade.info/](http://webservices.logtrade.info/distribution/logtrade.distribution.v3.asmx) |

## Testmiljö

Genom att sätta upp en testmiljö går det att minska risken för störningar i produktionsmiljön.

I testmiljön kan nya versioner testas av innan de tas i bruk. Det går även att testa större planerade förändringar i konfiguration såsom att lägga upp nya prislistor och andra genomgripande förändringar inom GKS.

### Testdatabas

Första steget för att sätta upp en testmiljö är att skapa en kopia av databasen.

{% hint style="info" %}
**Behövs en ny server?** Nej, det behövs ingen ny server. Det enklaste är att lägga upp testdatabasen på samma SQL Server som används i produktion.\
Enbart om det finns något specifikt skäl att helt isolera miljöerna åt behövs en ny serverdator.
{% endhint %}

Gör såhär för att skapa testdatabasen:

1. Ta en fullständig backup av databasen `GKS` till en .BAK-fil.
2. Återställ denna backup till databas med nytt namn, t.ex. `GKS-TEST`.
3. Kör databasscriptet nedan som stänger av viss funktionalitet som inte är lämplig i testmiljö.\
   Detta gäller t.ex. funktioner för automatiska utskick av e-post mm.

{% file src="<https://2294969563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M3QX94FdV_9Xy4tUPHP%2Fuploads%2FM7Np26jqeR4nAJazr0d1%2FProduction2Test.sql?alt=media&token=769160a9-e7e6-4e24-9051-54adffde97fd>" %}
Ett databasscript för att konvertera en produktionsdatabas till en testdatabas.
{% endfile %}

### Köra GKS3 Kalkyl mot testdatabasen

Starta GKS mot testmiljön från en kommandoprompt eller lägg upp en ny genväg:\
`gks.exe -database GKS-TEST`

När GKS har startats, kontroller att det står testdatabasens namn i statusfältet.

### Isolerad testmiljö

För att kunna testa av tilläggsmoduler krävs en ny separat applikationsserver avsedd för test. På denna server installeras GKS3 Kalkyl plus samtliga tilläggsmoduler.

Till skillnad från i produktion ska namnet på testdatabasen uppges vid installation och konfiguration.

Vid installation av *GKS Plan*-klienten och *GKS Web* ska testserverns namn uppges.
