Installation
Som vi såg tidigare är det viktigt att starta/stoppa eNovaservicar i rätt ordning. När man gör detta programmatiskt, tex i script, krävs det då att man underhåller ordningen själv på alla möjliga eNovaservicar för att starta/stoppa dem i rätt ordning?
Nej faktiskt inte, det finns redan färdig funktionalitet i Windows som man kan och bör använda sig av.
Först och främst behöver man sätta upp beroenden mellan eNovaservicar. Grundregeln är att alla servicar är beroende av businessservicen. Enklast anger man detta med sc-kommandot i cmd. Exempel nedan.
sc config "Wipcore eNova 4See" depend= "Wipcore eNova BS" sc config "Wipcore eNova Integration" depend= "Wipcore eNova BS" sc config "Wipcore eNova Newsletter" depend= "Wipcore eNova BS" sc config "Wipcore eNova Publishing" depend= "Wipcore eNova BS" sc config "Wipcore eNova Search" depend= "Wipcore eNova BS"
Dessa kommandon är förstås beroende av vad servicarna heter, titta i Windows servicehanterare om du är osäker. Det går utmärkt att uppdatera dependencies under drift. Observera att Windows inte gör någon validering på servicenamnen, se till att stava rätt!
Stoppa servicar
Då var det färdigkonfigurerat. Hur stoppar vi servicar då?
I Powershell kör man:
Stop-Service -Force *eNova*
-Force innebär att angivna servicar, inklusive alla dess dependencies stoppas. Detta kommando är robust, stoppar alla eNovaservicar rekursivt i rätt ordning enligt de dependencies man tidigare satt upp. Dvs under förutsättning att ingen watchdog (övervakningsprogramvara) försöker starta upp dem under tiden.
Starta servicar
Hur startar man alla eNovaservicarna med Powershell då?
Start-Service *eNova*
Detta kommando startar alla servicar i rätt ordning, inklusive nestlade dependencies. Det går alltså inte att starta en service utan att Windows automatiskt först startar alla dess dependencies. Men läs vidare!
Värt att veta
Det servicedependencies inte löser är följande 2 problem:
- När servicar är utspridda på olika servrar måste man fortfarande själv manuellt underhålla script som startar servicar i rätt ordning, det går inte att sätta dependencies som sträcker sig mellan olika servrar. Men servicedependencies brukar ändå kunna underlätta en hel del.
- eNova business service behöver oftast lite extra tid på sig att starta innan övriga servicar startas. Därför bör man i stället använda tex följande Powershellkod för att starta eNovaservicarna:
Start-Service *eNova*BS Start-Sleep 60 Start-Service *eNova*
Ytterligare tips, i vissa fall är servicar döpta så att det ej går att matcha med något vettigt enskilt wildcardnamn. Men det fixar Powershell utmärkt ändå, det går enkelt att ange en array av wildcardsträngar.
Stop-Service -f *enova*,*other*,*matching*,*texts*
Och -Force går alltså korta ner till -f om man vill.
Postat i:Tips & Verktyg
