Management Service

Dokumentation > Konfiguration > Management Service

Der Management Service führt Hintergrundaufgaben aus, welche regelmässig durchgeführt werden müssen wie beispielsweise Backups, oder eine längere Ausführungszeit in Anspruch nehmen.

Die nachfolgend besprochenen Aufgaben stellen den Funktionsumfang aller unserer Lösungen dar. Projekt- und kundenspezifische Aufgaben sind hier nicht beschrieben.

Die Konfiguration des Services und seiner Tasks befinden sich unterhalb des Konfigurationsverzeichnisses der Applikation in der Datei FrameworkSettings\service_config.xml.

Alle Tasks werden innerhalb des Services als Threads gestartet und werden unabhängig voneinander ausgeführt.

Logging

Der Serviceprozess schreibt seine Log-Informationen in ein eigenes File.

Der Dateiname hat folgenden Aufbau:

JJJJMMDD_Service.log
  • JJJJMMDD, Jahr Monat Tag

Beispiel:

  • 20220702_ServiceLog.log
    Das Datum bezieht sich auf den Start des Dienstes.

Alte Logfiles werden automatisch entfernt, mehr dazu auf der Seite Generelle Datenbereinigung

Jeder Servicetask schreibt seine Informationen ebenfalls in ein eigenes File.

Die Dateinamen haben folgenden Aufbau:

JJJJMMDD_Tnnn_Name.log
  • JJJJMMDD, Jahr Monat Tag
  • Tnnn, Taskummer
    Entspricht der Reihenfolge der Tasks in der Konfiguration
  • Name, Name aus der Konfiguration oder Klassenname

Beispiel:

  • 20251101_T002_ANTRAS.Common.serviceTasks.TaskDbBackup.log
    Das Datum bezieht sich auf den Start des Dienstes.

Konfiguration einzelner Tasks

FrameworkSettings\service_config.xml.

Alle Tasks werden als einzelne Knoten unterhalb root/service eingetragen und weisen mindestens die folgenden Attribute auf:

  • Sprechender Name des Tasks
  • run-each-seconds
    Wiederholtes Ausführen der Aufgabe, Wartezeit bis zu nächsten Ausführung in Sekunden
  • active
    yes | no
  • fqcn
    Vollqualifizierter Name der ausführenden Klasse
  • restricted-timerange
    Optionale Einschräkung innerhalb zur Ausführung. Im Nebenstehenden Beispiel wird die Aufgabe nur zwischen 00:00 Uhr und 22:00 gestartet.
  • guid
    Eindeutige ID. Diese kann beispielsweise unter https://www.guidgenerator.com/ erstellt werden. Diese ist nur zwingend notwendig, wenn mehrere Konfiguration des selben Types verwendet werden
  • delay-on-service-start
    Damit nicht alle Aufgabe gleichzeitig starten und eine hohe Last verursachen, kann eine Startverzögerung in Sekunden definiert werden.

Attribute aller Task Konfigurationen

<TasknameConfig
  run-each-seconds="3600"
  active="yes"
  delay-on-service-start="60"
  fqcn="namespace.Taskname"
  name="Name des Tasks"
  restricted-timerange="00:00;22:00"
  guid="f40ef986-10ea-41d4-bf4b-3cabc7796674"
/>
Optionale Attribute:
- name
- restricted-timerange
- delay-on-service-start

Nach einer Änderung der Konfiguration muss der Dienst neu gestartet werden.

Log Files

Für den Service und jeden Task wird ein eigenes Logfile geführt.

Datenbank Maintenance - TaskDbBackup

Führt Wartungsaufgaben in der Datenbank durch. Backups sind nur möglich, wenn die Datenbank auf dem Applikationsserver betrieben wird. Andernfalls erstellen Sie bitte einen entsprechenden Wartungsplan auf dem SQL-Server.

Pro Kalendertag wird nur ein Backup erstellt und anschliessend allenfalls die Verkleinerung ausgeführt, die Indizes werden bei jedem Start gepflegt.

Backup

  • execute-backup
    yes | no. Nur möglich, wenn die Datenbank auf dem Applikationsserver betrieben wird.
  • storebackups-in-path
    Speicherort der Backupdateien. Die Daten werden in einer ZIP-Datei gespeichert
  • delete-old-files-after-days
    Löschen bestehender Backupdateien nach n Tagen

Index Pflege

Reorg oder Rebuild wird nur für Indizes ausgeführt, welche einen PageCount>= 100 (Datenbankseiten ) aufweisen.

  • rebuild-and-reorg-indices
    yes | no
  • reorg-threshold
    Reorganisert Indizes falls dieser Fragmentierungsschwellwert überschritten wurde
  • rebuild-threshold
    Erstellt die Indizes neu, falls dieser Fragmentierungsschwellwert überschritten wurde

Verkleinern der Datenbank

  • shrink-database
    yes | no
  • shrink-target-percent-left
    Lässt am Ende der Daten einen entsprechenden Anteil Platz frei

Konfigurationsbeispiel zur Datenbank Wartung

<TaskDbBackupConfig
  run-each-seconds="3600"
  active="yes" fqcn="ANTRAS.Common.serviceTasks.TaskDbBackup"
  name="Database Backup"
  execute-backup="yes"
  storebackups-in-path="x:\App\DbBackups\COMAPNY.app.cms"
  delete-old-files-after-days="7"
  rebuild-and-reorg-indices="yes"
  reorg-threshold="20"
  rebuild-threshold="30"
  shrink-database="yes"
  shrink-target-percent-left="10"
  restricted-timerange="23:00;23:59"
  guid="ae76bed2-21fb-4763-9195-39d4741936be"
/>
Optionale Attribute, Defaultwert in Klammern :
- execute-backup (true)
- delete-old-files-after-days (7)
- rebuild-and-reorg-indices (yes)
- reorg-threshold (15)
- rebuild-threshold (30)
- shrink-database (false)
- shrink-target-percent-left (5)

Log Auszug zur Indexpflege

* Starting reorganize/rebuild indices of database OP.cms
- Reorganize index: OP.cms.s_event.IX_s_event_02, 27.41% fragmented
     pageCount=135, fillFactor=0:
  use [OP.cms];
  alter index IX_s_event_02 on s_event reorganize ;
- Rebuild index: OP.cms.s_session.IX_s_session_01, 32.17% fragmented
    pageCount=143, fillFactor=95:
  use [OP.cms];
  alter index IX_s_session_01 on s_session rebuild ;
+ Reorganize/rebuild of indices ended for database OP.cms

Freigabe gesperrter Benutzerkonten - TaskSelfServiceRelease

Gibt Benutzerkonten automatisch frei, nachdem eine Anfrage zur Freigabe eines gesperrten Kontos über das Onlineformular erfolgt ist.

Detailierte Informationen zum Ablauf und der Konfiguration dieser Funktion finden Sie unter «Selfservice» Anfrage zur Freigabe gesperrter Konten.

Dieser Task wird ohne explizite Konfiguration gestartet und muss daher nicht konfiguriert werden.

Konfigurationsbeispiel zur Selfservice Freigabe

<TaskFraudProtectionCleanUpConfig
  name="Selfservice Release"
  run-each-seconds="20"
  active="yes"
  delay-on-service-start="30"
  fqcn="ANTRAS.Common.serviceTasks.TaskSelfServiceRelease"
  guid="67584467-8f29-47f7-8887-c192cb8e91af"
/>

Versand von Formularen - TaskCmsFormMailer

Versand von Benutzern manuell erstellten Formulare wie Kontaktanfragen, oder automatisch erstellter Formulare wie beispielsweise Auftragsbestätigungen per E-Mail.

  • form-def-ids
    Optionals Einschränke auf Formulare dieser Formulardefinitionen. Erwartet Komma separierte IDs

Konfigurationsbeispiel für den Formularversand

<TaskCmsFormMailerConfig
  name="Konvertierung ausgefüllter Formulare unda Versand als EMail"
  run-each-seconds="20"
  active="yes"
  form-def-ids=""
  fqcn="ANTRAS.cms.service.TaskCmsFormMailer"
  guid="9484e67b-6ce7-4202-b704-7bf70c997be3"
/>

Generelle Bereinigungsaufgaben - TaskCommonCleanUp

Bereinigung von Daten, welche aus Platz- oder datenschutzrechtlichen Gründen regelmässig entfernt werden müssen:

  • Informationen zu Adresssperrungen
  • Anträge und Informationen zur Freigabe gesperrter Benutzerkonten
  • Daten von Benutzersitzungen
  • Systemüberwachungsinformationen
  • Batschjob Artefakte
  • Logdateien der Applikation und des Webservers
  • Obsolete Stammdaten von Adressbereichen
  • Temporäre Dateien
  • Druckaufträge
  • Exportdateien
  • Serverseitiger Cachefiles

Dieser Task wird ohne explizite Konfiguration gestartet und muss daher nicht konfiguriert werden. Sämtliche Einstellungen sind über die Benutzeroberfläche erreichbar.

Konfigurationsbeispiel genereller Bereinigungsaufgaben

<TaskCommonCleanUpConfig  
  name="Perfom common cleanup tasks"
  run-each-seconds="43200"
  active="yes"
  fqcn="ANTRAS.Common.serviceTasks.TaskCommonCleanUp"
  guid="21800c3c-4cfd-4cb4-b771-790d6ea51631"
/>

Details zur konfiguration finden Sie auf der Seite Generelle Datenbereinigung.

Automatischer Stammdaten Update

Die Aktualisierung von Stamdaten, beispielsweise aktualisierten MwSt. Sätzen oder standardisierten Formulardefinitionen, wird durch drei Tasks erledigt.

Weitere Informationen zum Thema finden Sie auf der Seite Autom. Update zentraler Stammdaten.

 

TaskDeployMasterDataCheck

Prüft, ob unter license.antras.ch neue oder aktualisierte Stammdaten verfügbar sind.

 

TaskDeployMasterDataDownload

Lädt neue oder aktualisierte Stammdaten auf das System herunter.

 

TaskDeployMasterDataInstall

Installiert die heruntergeladenen Daten in Abhängigkeit der Voreinstellung.

 


Diese Tasks werden ohne explizite Konfigurationen gestartet und müssen daher nicht konfiguriert werden.

Automatischer Stammdaten Update

<TaskDefaultConfig
  name="Prüfen auf aktualisierte Stammdaten"
  run-each-seconds="3600"
  active="yes"
  delay-on-service-start="20"
  fqcn="ANTRAS.Common.serviceTasks.TaskDeployMasterDataCheck"
  restricted-timerange="06:00;23:00"
  guid="cfd261b5-f5b8-4810-ae86-fdc1c9adebde"
/>

<TaskDefaultConfig
  name="Download aktualisierter Stammdaten"
  run-each-seconds="3600"
  active="yes"
  delay-on-service-start="40"
  fqcn="ANTRAS.Common.serviceTasks.TaskDeployMasterDataDownload"
  restricted-timerange="06:00;23:00"
  guid="b0685450-cb22-4f80-b3a4-4e6b995efffd"
/>

<TaskDefaultConfig
  name="Installation heruntergeladener Stammdaten"
  run-each-seconds="3600"
  active="yes"
  delay-on-service-start="60"
  fqcn="ANTRAS.Common.serviceTasks.TaskDeployMasterDataInstall"
  restricted-timerange="06:00;23:00"
  guid="89d117bf-6f64-41f0-a1c0-2b13b021652f"
/>

Freigabe gesperrter IP Adressen - TaskFraudProtectionCleanUp

Gibt gesperrte IP Adressen wieder frei.

Die zur Sperrung und Freigabe angewandten Regeln finden Sie auf der Seite zur Konfiguration der Betrugsabwehr.

Konfigurationsbeispiel zur Freigabe gesperrter IP Adressen

<TaskFraudProtectionCleanUpConfig
  name="Autorelease locked IP adresses"
  run-each-seconds="120"
  active="yes"
  delay-on-service-start="60"
  fqcn="ANTRAS.Common.serviceTasks.TaskFraudProtectionCleanUp"
  guid="8413bbad-3e34-4728-b2c6-dc67308bc1c6"
/>

Keep Alive - TaskAppKeepAlive

Ruft im konfigurierten Zeitabstand die Webadresse der Applikation auf. Damit kann ohne zusätzliche Konfiguration im Webserver verhindert werden, dass die Applikation nach längerer Nichtbenutzung beendet wird und dadurch beim nächsten Zugriff wieder gestartet werden muss, was eine etwas längere Wartezeit bedeutet.

Im nebenstehenden Beispiel wird zudem eine E-Mail versandt, sollte die Applikation nicht erreichbar sein. Ausserdem lässt man es zu, dass die Applikation zwischen 23:00 und 05:00 beendet werden kann. In diesem Zeitraum wird auch keine E-Mail versandt.

  • url
    Die Webadresse der Applikation oder weiitere durch Kommata getrennte Webadressen
  • send-alert-email
    yes | no
  • alert-email-receipient
    Eine oder mehrere durch Kommata getrennte E-Mail Adressen
  • http-statuscode-successlist
    Eine oder mehrere durch Kommata getrennte HTTP Statuscode, welche einen Erfolg indizieren

Konfigurationsbeispiel Keep Alive

<TaskAppKeepAliveConfig
  name="Keep the website alive"
  run-each-seconds="1200"
  active="yes"
  url="https://www.somewhere.com"
  http-statuscode-successlist="200"
  delay-on-service-start="10"
  fqcn="ANTRAS.Common.serviceTasks.TaskAppKeepAlive"
  send-alert-email="yes"
  alert-email-receipient="ticket@monitoring.com"
  restricted-timerange="05:00;23:00"
  guid="7d1434b5-aa55-464c-bf11-d4df5b7ac4ee"
/>
Optionale Attribute, Defaultwert in Klammern:
- run-each-seconds (1200)
- url (Standard Adresse der Applikation)
- delay-on-service-start (20)
- send-alert-email (no)
- http-statuscode-successlist (200)

Dieser Task wird ohne explizite Konfiguration gestartet und muss daher nicht konfiguriert werden.

E-Mails aus einem Postfach zur Weiterverarbeitung abholen - TaskImapFetcher

Holt E-Mails eines IMAP Postfaches regelmässig ab und speichert diese wahlweise als standardisierte EML- oder XML Datei ab. Attachments lassen sich abtrennen und ebenfalls speichern.

  • mark-mails-as-deleted
    yes | no. Markiert heruntergeladene E-Mails als gelöscht in der IMAP Mailbox
  • mark-mails-as-read
    yes | no. Markiert heruntergeladene E-Mails als gelesen in der IMAP Mailbox
  • fetch-mails-marked-as-read
    yes | no. Legt fest, ob als bereits als gelesene markierte E-Mails heruntergeladen werden sollen.
    Als gelöscht markierte E-Mails werden nie heruntergeladen
  • remove-marked-as-deleted-on-servicestart
    yes | no. Legt fest, ob jeweils nach dem Start des Services als gelöscht markierte E-Mails gelöscht werden sollen
  • save-eml-dir
    Ordner im Dateisystem. Wenn gesetzt, wird die Mail im standardisierten EML Format gespeichert
  • save-xml-dir
  • Ordner im Dateisystem. Wenn gesetzt, wird die Mail im XML Format gespeichert
  • save-attachments-dir
    Ordner im Dateisystem. Wenn gesetzt, wird alle Attachments gespeichert

Falls Sie diese Funktion für Ihre Prozesse benötigen und auf Ihrer Mail Infrastrukur keinen IMAP Zugriff bereitstellen können oder wollen, stellen wir Ihnen gerne ein entsprechendes Postfach bei uns zur Verfügung, beispielsweise customer.purpose@antras.ch.

Konfigurationsbeispiel E-Mailabruf. Kann mehrfach eingesetzt werden

<TaskImapFetcherConfig
  run-each-seconds="120"
  active="yes"
  fqcn="ANTRAS.Common.serviceTasks.TaskImapFetcher"
  name="Mails aus einem Postfach zur Weiterverarbeitung abholen"
  imap-serveraddress="host.domain.com"
  imap-port="993"
  imap-user="username@domain.com"
  imap-password="password0815"
  imap-use-ssl="yes"
  fetch-mails-marked-as-read="yes"
  mark-mails-as-deleted="yes"
  mark-mails-as-read="yes"
  remove-marked-as-deleted-on-servicestart="no"
  save-eml-dir="x:\processing\emailfetched"
  save-attachments-dir="x:\processing\emailfetched\att"
  save-xml-dir="x:\processing\emailfetched\xml"
  guid="7e1aa105-4f37-4811-99d7-5063d5ccdbd4"
/>

E-Mails aus einem Postfach zur Weiterverarbeitung abholen - TaskPop3Fetcher

Holt E-Mails regelmässig via POP3 ab und speichert diese wahlweise als standardisierte EML- oder XML Datei ab. Attachments lassen sich abtrennen und ebenfalls speichern.

  • remove-mails-from-pop
    yes | no. Entfernen bezogener E-Mails vom Mailserver
  • save-eml-dir
    Ordner im Dateisystem. Wenn gesetzt, wird die Mail im standardisierten EML Format gespeichert
  • save-xml-dir
    Ordner im Dateisystem. Wenn gesetzt, wird die Mail im XML Format gespeichert
  • save-attachments-dir
    Ordner im Dateisystem. Wenn gesetzt, wird alle Attachments gespeichert

Falls Sie diese Funktion für Ihre Prozesse benötigen und auf Ihrer Mail Infrastrukur keinen POP3 Zugriff bereitstellen können oder wollen, stellen wir Ihnen gerne ein entsprechendes Postfach bei uns zur Verfügung, beispielsweise customer.purpose@antras.ch.

Konfigurationsbeispiel E-Mailabruf. Kann mehrfach eingesetzt werden

<TaskPop3FetcherConfig
  run-each-seconds="120"
  active="yes"
  fqcn="ANTRAS.Common.serviceTasks.TaskPop3Fetcher"
  name="Mails aus einem Postfach zur Weiterverarbeitung abholen"
  pop3-serveraddress="pop.domain.com"
  pop3-port="110"
  pop3-user="username@domain.com"
  pop3-password="password0815"
  remove-mails-from-pop="yes"
  save-eml-dir="x:\processing\emailfetched"
  save-attachments-dir="x:\processing\emailfetched\att"
  save-xml-dir="x:\processing\emailfetched\xml"
  guid="75a9eaeb-68f5-4242-9b75-223adb8202e8"
/>

Transfer von Dateien per FTP

Für den Fall, dass einer Ihrer Partner Daten auf einem FTP Server empfangen möchte, steht der Task TaskFtpSendFiles zur Verfügung.

Dabei wird ein Verzeichnis regelmässig auf neue Dateien überprüft, diese werden per FTP transferiert und anschliessend verschoben.

Steuerung des Prozesses

  • behaviour-when-file-exists
    Overwrite | Skip | Append, Überschreiben der bestehenden Datei, Überspringen, Daten an dies bestehende Datei anfügen
  • watch-dir
    Verzeichnis mit zu transferierenden Dateien
  • search-pattern
    Optional zur Filterung zu übertragender Dateien
  • processed-dir
    Verzeichnis zur Ablage der Dateien nach erfolgreichem Transfer
  • failed-dir
    Verzeichnis zur Ablage der Dateien nach fehlgeschlagenem Transfer

FTP Konfiguration

  • ftp-server
  • ftp-port
  • ftp-user
  • ftp-password
  • ftp-autodiscover
    yes | no. Wenn aktiviert, wird versucht, eine Verbindung aufzubauen. Die nachfolgenden Settings sind dann wirkungslos
  • data-connection-type
    AutoPassive | EPSV | PASV | PASVEX, AutoPassive wird empfohlen
  • ftp-encryption-mode
    Implicit (Port 990) | Explicit (Plain => FTPS) | Auto, Auto wird empfohlen

Konfigurationsbeispiel einer FTP Konfiguration. Kann mehrfach eingesetzt werden

<TaskFtpSendFilesConfig
  run-each-seconds="120"
  active="yes"
  fqcn="ANTRAS.Common.serviceTasks.TaskFtpSendFiles"
  name="Dateien per FTP auf entferntem Server ablegen"
  ftp-server="ftp.domain.com"
  ftp-port="21"   
  ftp-user="username@domain.com"
  ftp-password="pass0815"
  ftp-autodiscover="no"
  data-connection-type="AutoPassive"
  ftp-encryption-mode="Auto"
  behaviour-when-file-exists="Overwrite"
  watch-dir="x:\processing\ftpout\pending"
  processed-dir="x:\processing\ftpout\processed"
  failed-dir="x:\processing\ftpout\failed"
  search-pattern="*.xml"
  guid="7001dbe6-954e-4bbe-897c-ad8a9d311a40"
/>

Download und Installation von Lizenzen

Prüft in regelmässigen Abständen, ob für die Installation eine aktualisierte Lizenz vorhanden ist, führt einen Download durch und installiert die neue Lizenz auf dem System.

Das Lizenzfile wird im Konfigurationsverzeichnis der Applikation im Unterverzeichnis /License abgelegt.
Ein bestehendes Lizenzfile wird in das Unterverzeichnis /License/Archive verschoben.

Die Installation eines Lizenzfiles wird auf license.antras.ch bestätigt. Dabei werden aktuelle Telemetriedaten übermittelt, siehe dazu auch detaillierte Informationen auf der Seite Telemetrie.

Der Dateinamen eines Lizenzfiles folgt folgendem Schema:
DATUMTZeit_SPRACHE_Id_KundeZweck_Lizenznummer.Lizenzart.license

Beispiel
20210304T134645_DE_25105_ANTRAS_GmbH_GmbH_Website_484.486.25105.Productive.license

Konfigurationsbeispiel für den Download und der Installation von Lizenzen

<TaskLicenseCheckConfig
  run-each-seconds="7200"
  delay-on-service-start="20"
  active="yes"
  restricted-timerange="04:00;22:59"
  fqcn="ANTRAS.Common.serviceTasks.TaskLicenseCheck"
  name="Bezieht und installiert aktualisierte Lizenzen"
  guid="86a22adc-d6ea-4064-91d1-e6c37107aff5"
/>