60.1 Hintergrundverarbeitung und Autostart

60.1.1 Architektur

Die eigentliche Verarbeitung übernimmt ein eigener Hintergrundprozess (AXPProcessor), den das Hauptprogramm startet und überwacht. Das hat zwei praktische Konsequenzen:

  • Die Oberfläche bleibt auch während großer Verarbeitungsläufe flüssig bedienbar.
  • Das Hauptfenster muss nicht sichtbar sein - minimiert oder in den Infobereich verschoben läuft die Verarbeitung normal weiter.

Ein Watchdog überwacht den Hintergrundprozess und startet ihn bei Bedarf neu. Bleibt die Verarbeitung ungewöhnlich lange ohne Lebenszeichen, meldet das Programm eine Störung.

Für den Betrieb ohne angemeldeten Benutzer (Server, Dauerbetrieb) kann die Verarbeitung stattdessen ein Windows-Dienst übernehmen - siehe Abschnitt 60.1.4.

60.1.2 Wann wird verarbeitet?

Zustand Verarbeitung
Hauptfenster sichtbar, minimiert oder im Infobereich Läuft (im konfigurierten Prüfintervall, siehe Kapitel 40.6.2)
Programm über Beenden geschlossen Gestoppt - beim nächsten Start werden neue Dateien der überwachten Ordner nachgeholt
Außerhalb des Zeitfensters (siehe Kapitel 40.6.3) Pausiert bis zum nächsten Fenster

Empfehlung für Dauerbetrieb: Aktivieren Sie in den Programmoptionen Programm mit Windows starten sowie Beim Start/Schließen in den Infobereich verschieben (siehe Kapitel 40.5.3) - so läuft die Verarbeitung unauffällig ständig mit.

60.1.3 Verhalten nach Pausen

Nach einem Neustart, Rechner-Standby oder Zeitfenster-Ende verarbeitet das Programm neu eingetroffene Dateien der überwachten Ordner automatisch - Dateien gehen durch Pausen nicht verloren. Nur der vorbestehende Altbestand eines neu hinzugefügten Ordners wird bewusst nicht automatisch verarbeitet (siehe Kapitel 8.8.4); dafür gibt es das Nachholen (siehe Kapitel 60.2).

60.1.4 Betrieb als Windows-Dienst (Externer Prozessor)

Für Server und Dauerbetrieb ohne angemeldeten Benutzer kann die Verarbeitung ein Windows-Dienst übernehmen. Dazu dient das Programm AXPProcessor.exe im Installationsordner mit dem Parameter --service; das Hauptfenster wird dann nur noch zur Konfiguration und zum Prüfen der Protokolle geöffnet.

Wichtig - gleiches Benutzerkonto: Richten Sie den Dienst mit dem Benutzerkonto ein, unter dem Sie auch das Hauptprogramm konfigurieren (in der Diensteverwaltung unter “Anmelden als”; nicht “Lokales System”). Einstellungen, Profile, Protokolle und die Statusanzeige sind an das Benutzerkonto gebunden - laufen Hauptfenster und Dienst unter verschiedenen Konten, sehen sie sich gegenseitig nicht.

Einrichtung im Programm (empfohlen): Öffnen Sie Optionen → Windows-Dienst und klicken Sie auf Dienst einrichten… - nach Eingabe von Dienstname, Benutzerkonto und Kennwort legt das Programm den Dienst mit einer einzigen Administrator-Bestätigung an, samt automatischem Start (verzögert), Wiederherstellung nach einem Absturz und dem Recht “Als Dienst anmelden” (siehe Kapitel 40.7).

Einrichtung von Hand (Eingabeaufforderung als Administrator; Pfad und Konto anpassen - nach binPath=, obj= und password= verlangt sc.exe jeweils ein Leerzeichen):

sc.exe create "AXP2Service" binPath= "\"C:\Program Files\Automatic X-Invoice Processor 2\AXPProcessor.exe\" --service"
sc.exe config "AXP2Service" obj= ".\IhrKonto" password= "IhrPasswort"

Aktivieren Sie anschließend in Optionen → Windows-Dienst die Option Hintergrundprozessor wird extern verwaltet (z. B. als Windows-Dienst) (siehe Kapitel 40.7). Dieselbe Seite zeigt den Live-Status des Dienstes und bietet an, ihn direkt zu starten und auf automatischen Start (verzögert) zu setzen - inklusive automatischer Wiederherstellung nach einem Dienst-Absturz; das erledigt eine einzige Administrator-Bestätigung. Zeigt ein von Hand angelegter Dienst auf die falsche Programmdatei, meldet die Seite das und stellt es über Korrigieren richtig.

Zwei Prozesse sind normal: Im Dienst-Betrieb laufen planmäßig zwei AXPProcessor.exe-Prozesse - ein Überwacher (der eigentliche Dienst) und ein Arbeitsprozess, der die Verarbeitung ausführt. Bleibt eine Datei dauerhaft hängen (siehe Kapitel 40.6.2), wird nur der Arbeitsprozess ersetzt und die Verarbeitung läuft ohne Eingriff weiter; die betroffene Datei wird als Fehler protokolliert.

Nur ein Prozessor zur Zeit: Läuft ein Verarbeitungsdienst, verarbeitet kein Programmfenster mit - auch nicht in einer anderen Sitzung, unter einem anderen Benutzer (etwa auf einem Terminalserver) oder ohne gesetzte Option “Hintergrundprozessor wird extern verwaltet”; ein Programmfenster ohne die Option zeigt dann in der Statusleiste “Verarbeitung durch den Windows-Dienst”. Ohne Dienst verarbeitet je Windows-Benutzer nur ein Programmfenster; eine zweite Sitzung desselben Benutzers zeigt “Verarbeitung in einer anderen Sitzung dieses Benutzers”. Ebenso verarbeitet auf einem Rechner immer nur ein Dienst- oder Headless-Prozessor: Ein zweiter, etwa ein weiterer Dienst unter einem anderen Benutzerkonto, wartet und übernimmt erst, wenn der erste endet - das gilt auch beim Neustart des Dienstes, solange der vorherige Dienstprozess noch ausläuft.

Netzlaufwerke im Dienst: Ein Windows-Dienst sieht die mit Laufwerksbuchstaben verbundenen Netzlaufwerke eines Benutzers nicht. Das Programmfenster merkt sich deshalb beim Start und danach regelmäßig, welcher Netzwerkpfad hinter jedem verbundenen Laufwerksbuchstaben steht, und der Dienst setzt für Pfade wie Y:\Belege den gemerkten Netzwerkpfad ein - für überwachte Ordner und Speicherorte ebenso wie für Nachschlagetabellen, Empfängerlisten oder die zentral verwaltete Profildatei. Das klappt nur, wenn das Laufwerk unter dem Dienstkonto auf diesem Rechner verbunden ist und das Programmfenster dort gelaufen ist. Nach einem Profil-Import von einem anderen Rechner ist das oft nicht der Fall: Tragen Sie dann in den Profilen den Netzwerkpfad (\\Server\Freigabe\...) statt des Laufwerksbuchstabens ein, oder verbinden Sie das Laufwerk unter dem Dienstkonto (mit “Verbindung bei Anmeldung wiederherstellen”) und starten Sie dort einmal das Programmfenster.

Diagnose: Startmeldungen und Betriebsereignisse stehen in der Datei ServiceDiagnostics.log im Anwendungsdaten-Ordner des Dienst-Kontos (%AppData%\Automatic X-Invoice Processor 2\). Beim Start protokolliert der Dienst dort Version, Betriebsart, Datenordner und die Profil-Umgebung (Benutzer, Profilpfad, Sitzung, erkannte FSLogix- bzw. UPD-Profilcontainer), dazu eine Warnung, falls er unter “Lokales System” läuft; nach einem Absturz steht dort der vollständige Fehlerverlauf. Die regulären Verarbeitungs- und Fehlerprotokolle erscheinen wie gewohnt im Hauptfenster.

Empfohlen - Störungsmeldung: Aktivieren Sie für den unbeaufsichtigten Betrieb die Störungsmeldung (Optionen → Verarbeitung, siehe Kapitel 40.6.6) - der Überwacher-Prozess sendet dann eine E-Mail, sobald die Verarbeitung länger als die eingestellte Zeitspanne stillsteht; zusätzlich landet die Meldung im Fehlerprotokoll und in der Windows-Ereignisanzeige.

Alternative ohne Dienst: AXPProcessor.exe --headless startet die Verarbeitung als eigenständigen Konsolenprozess (z. B. über die Windows-Aufgabenplanung). Weitere Parameter: --profile "Name" beschränkt die Verarbeitung auf einzelne Profile (mehrfach angebbar), --quit beendet laufende Instanzen. Für die Verarbeitungssperren gilt ein Headless-Prozessor wie ein Dienst (siehe oben).

60.1.5 Terminalserver und Benutzerprofil-Container

Auf einem Terminalserver ohne Windows-Dienst verarbeitet das Programm in jeder Sitzung die Profile des dort angemeldeten Windows-Benutzers; jeder Benutzer hat eigene Profile, Optionen und Protokolle. Zwei Sitzungen desselben Benutzers verarbeiten nicht gleichzeitig. Läuft auf dem Server ein Verarbeitungsdienst, verarbeitet nur der Dienst - mit den Profilen seines Dienstkontos (siehe 60.1.4).

Werden die Benutzerprofile als Container bereitgestellt (FSLogix Profile Container oder Benutzerprofil-Datenträger/UPD der Remotedesktopdienste), verträgt sich das nicht ohne Weiteres mit einem Dienst unter einem Benutzerkonto:

  • Ein Windows-Dienst unter einem Benutzerkonto hält dessen Profil dauerhaft geladen; der Profilcontainer bleibt gesperrt, solange der Dienst läuft.
  • Meldet sich anschließend jemand interaktiv mit demselben Konto an, kann der Container nicht eingehängt werden - Windows legt dann ein temporäres Profil an (Benutzerprofildienst-Ereignisse 1511/1515), und persönliche Einstellungen erscheinen “verschwunden”.

Empfehlungen für solche Umgebungen:

  • Für den Dienst ein eigenes Dienstkonto verwenden und dieses Konto in der FSLogix- bzw. UPD-Konfiguration von der Profilverwaltung ausnehmen (klassisches lokales Profil). FSLogix bietet dafür die Gruppe “FSLogix Profile Exclude List”.
  • Mit dem Dienstkonto nicht dauerhaft interaktiv arbeiten - nur zur Einrichtung und für Profiländerungen kurz anmelden.
  • Ob der Dienst in einer Container-Umgebung läuft, zeigt die Zeile Profil-Umgebung in der Datei ServiceDiagnostics.log (siehe 60.1.4).