Applikations-Pool

Notiz
Notiz
Beachten Sie bezüglich Konfigurieren und Ausführen von Applikationspools unbedingt auch die Beschreibung des BC 98600 - Verarbeitungen.

Applikationspool starten

Das Starten des Applikations-Pools erfolgt mit OOAPPOOL.BAT
Dieser Batch befindet sich direkt im Verzeichnis \insyde

Login

Für das Starten des Applikations-Pools ist eine Anmeldung in OpaccERP notwendig.
Beim Ausführen von OOAPPOOL muss die Mandanten-Nummer, die Mitarbeiter-Nummer und das verschlüsselte Passwort mitgegeben werden. Falls der Applikationspool via Konsole (cmd) gestartet wird, (z.B. um etwas zu testen) kann das Passwort auch unverschlüsselt als Parameter mitgegeben werden. (siehe auch Startparameter OOAPPOOL)
Achtung
Achtung
Damit der Applikations-Pool verarbeitet werden kann, muss der Benutzer (bzw. die Benutzergruppe) unter dessen Account die Verarbeitung läuft, über Vollzugriff auf den Service AppPool_Process verfügen.
tech_notes_98210.jpg
Notiz
Notiz
Bei ungenügenden Zugriffsrechten wird der Applikations-Pool nicht gestartet. Der entsprechende Eintrag ist dann im BC 98801 unter dem Status Nicht gestartet zu sehen.

Mehrere Mandanten/Installationen

Auf demselben Client können mehrere Mandanten, aber auch mehrere Installationen bedient werden.

Automatisch beenden

Wird der Applikation-Pool automatisch beendet, werden auch alle Instanzen geschlossen. Dies jedoch nur, wenn der Applikations-Pool im Workstation-Mode betrieben wird.

Manuell beenden

Der Applikations-Pool bzw. der aktuelle Job/Schritt kann über den AppPool-Controller manuell beendet werden. Im AppPool-Controller stehen dafür die Buttons Verarbeitung abbrechen und Job abbrechen zur Verfügung. Voraussetzung für diese Funktionalität ist jedoch, dass die laufende Verarbeitung einen Abbruch zulässt.
Auch beim manuellen Beenden werden alle Instanzen geschlossen. Dies jedoch nur, wenn der Applikations-Pool im Workstation-Mode betrieben wird.

OOAPPOOL [Argumente]

Beispiel
ooappool -AppPoolNo:"-100,-200" -Client:99 -User:1000 -Password:"Verschlüsseltes Passwort"
Verarbeitung
   
-ShowGui:on | off
OPTIONAL
Default: off
Anzeige (UI) zur Visualisierung des AppPool-Controller.
-WaitUntilCompletion:on | off
OPTIONAL
Default: on
WaitUntilCompletion:on (Default) - Die Verarbeitung wird gestartet und der AppPool-Controller wird erst beendet, wenn die Verarbeitung beendet ist. Diese Einstellung wird benötigt, wenn ohne UI (-ShowGui:off) gearbeitet wird, Applikationspool-Aufrufe via Batch aber sequentiell abgearbeitet werden sollen.
WaitUntilCompletion:off - Die Verarbeitung wird gestartet und der AppPool-Controller wird sofort wieder beendet.
-AppPoolNo:"[Pool Nr.]"
REQUIRED
Zu verarbeitende Applikationspools. Sollen mehrere Pools verarbeitet werden, muss zwischen den Pool Nr. ein Komma stehen. Ein vorangestelltes "Minus" stellt den Pool vor der Verarbeitung von Status "F" auf "V".
100 = Startet den Applikations-Pool 100 mit allen Einträgen
100.1 = Startet im Applikations-Pool 100 den Eintrag mit der Laufnummer 1
- (Minus) = Setzt den zu startenden Applikations-Pool zuerst auf Status "V". Jedoch nur wenn kein Job dieses Pools auf Status "I" (In Verarbeitung) oder "F err" (Fertig mit Fehler) steht.
Achtung
Achtung
Beachten sie, dass beim Starten eines einzelnen Applikationspool-Eintrages kein - (Minus) vorangestellt werden darf.
Wird ein einzelner Applikations-Pool-Eintrag gestartet (z.B. mit 100.1) dann wird dieser Eintrag in jedem Fall gestartet. Unabhängig davon ob der Status des Eintrages "V", "I", "F err", "F" oder "P" ist. Ausserdem wird eine mitgegebene End-Time nicht berücksichtigt!
Das Starten von einzelnen Applikations-Pool-Einträgen sollte nur zu Testzwecken erfolgen!
-EndTime:"[hh.mm]"
OPTIONAL
Default: ""
Uhrzeit bis wann der Applikations-Pool laufen soll. Beispiel: -EndTime:"22.30"
Notiz
Notiz
Das Zeit-Argument im OpaccOXAS Studio BC 98260 wird durch diesen Parameter übersteuert. Das funktioniert aber nur dann, wenn im BC 98260 auch tatsächlich eine Zeitbegrenzung (als Platzhalter) erfasst wurde.
Zu beachten ist auch, dass Folgeschritte in einem Applikationspool nicht abgearbeitet werden wenn beim Aufruf (ooappool.bat) eine Zeit mitgegeben wird. Bei erreichen dieser Zeit wird die gesamte Verarbeitung beendet.
Beispiel
"Verarbeiten bis" im OpaccOXAS Studio BC 98260: 21.30
"Verarbeiten bis" beim Aufruf von ooappool.bat: 22.00
Der Abbruch der Verarbeitung erfolgt um 22.00
-ParallelProcessing:on | off
OPTIONAL
Default: off
on - Paralleles Verarbeiten wenn mehrere Applikationspools miteinander gestartet werden.
off - Serielles Verarbeiten wenn mehrere Applikationspools miteinander gestartet werden.
Beispiel
Applikationspool 100 enthält Eintrag 1 und 2. Applikationspool 200 enthält Eintrag 1 und 2.
Nun werden die beiden Applikationspools mit "ParallelProcessing:on" gestartet.
ooappool ... "-100,-200".... -ParallelProcessing:on....
Die Verarbeitung läuft nun so:
Pool 100 Eintrag 1
Pool 200 Eintrag 1
Pool 100 Eintrag 2
Pool 200 Eintrag 2
-ProcessingName:"Name"
OPTIONAL
Default: aut.
Name welcher dem zu verarbeitenden Monitor-Objekt zugeordnet wird. Ohne die Angabe eines Namens, wird ein automatisch ermittelter Name verwendet der von "AppPoolNo" abgeleitet ist.
-CloseAfterCompletion:on | off
OPTIONAL
Default: on
on - Der AppPool-Controller wird nach Abschluss der Verarbeitung geschlossen.
off - Der AppPool-Controller wird nach Abschluss der Verarbeitung nicht geschlossen. Damit kann z.B. der Status (Fehler, Normal) kontrolliert werden.
-AsyncProcessing:on | off
OPTIONAL
Default: off
Möglichkeit Applikationspools via Kommandozeile asynchron zu starten. Wenn asynchron gestartet wird, kommt u.a. automatisch die Logik zum Adressieren des richtigen Clusters gemäss der konfigurierten CohortId zum Zug.
Weitere Informationen zum asynchronen Starten von Applikationspool finden Sie in der Einleitung.
Notiz
Notiz
Das gleichzeitige Ausführen mehrerer Applikationspools mit unterschiedlichen Benutzern und unterschiedlicher CohortId ist nicht erlaubt. Das gilt für den Fall, dass mehrere Applikationspools über einen einzigen Aufruf gestartet werden. In diesem Fall müssen für alle Applikationspools sowohl der Benutzer, als auch die CohortId übereinstimmen.
Zugriff ServiceBus / Login OpaccERP
   
-ServiceBus:"[IP-Addr.]:[Port]"
-ServiceBus:"[Host]:[Port]"
OPTIONAL
Hier kann ein ServiceBus spezifiziert werden mit welchem sich der Applikationspool verbindet.
Wird kein ServiceBus spezifiziert, wird eine Instanz gemäss Konfiguration (OpaccOneInstallation.xml) gesucht oder allenfalls auch neu gestartet.
Die Angabe einer Port-Nummer ist nicht notwendig. Dies ist eine interne Funktionalität welche beim Starten eines Applikationspools im BC 98260 verwendet wird.
Beispiel
-ServiceBus:"192.168.168.100" -ServiceBus:"Opacc_DB_Server"
-Client:[Mandant Nr.]
REQUIRED
OpaccERP Mandanten Nr.
Beispiel
-Client:99
-User:[Mitarbeiter Nr.]
REQUIRED
OpaccERP Mitarbeiter Nr. Unter dieser Anmeldung läuft die Applikationspool Verarbeitung.
Beispiel
-User:1000
-Password:"Passwort-String"
REQUIRED
Verschlüsseltes Passwort des obigen Benutzers.
Die Verschlüsselung erfolgt für das Assembly: Opacc.Management.AppPoolController.exe
Beispiel
-Password:"02495/Atr5Lo.....F0a41w=="
Notiz
Notiz
Wird der Applikationspool (z.B. für Tests) in der Konsole gestartet, so kann das Passwort auch im Klartext mitgegeben werden. -Password:"Mein_Klartextpasswort"
Konsole und Log
   
-ShowConsole:on | off
OPTIONAL
Default: off
Anzeige der Konsole.
-InheritConsole:on | off
OPTIONAL
Default: on
on - Die Konsole wird nach Möglichkeit vom "Parent" geerbt.
off - Eigene Konsole.
-LogChannelPort:[Port]
OPTIONAL
Default: -1
-1 - Keine Ausgabe.
TCP-Port Nr. - Ausgabe von Log-Meldungen in einen TCP-Kanal.
Beispiel
-LogChannelPort:60060
Monitoring
   
-ProgressRetainTimeInHours:[h]
OPTIONAL
Default: 72
Zeitspanne in Stunden während der ein Monitor-Objekt vor dem Start bzw. nach dem Beenden "aufbewahrt" und dadurch im BC 98801 angezeigt wird.
-ProgressNotRespondingTimeoutInMinutes:[m]
OPTIONAL
Default: 5
Zeitspanne in Minuten nach deren Ablauf ein Monitor-Objekt in den Status "Not-Responding" gesetzt wird.
Soll dies nie passieren, muss 0 als Wert angegeben werden.

Passwort verschlüsseln

Die Verschlüsselung des OpaccERP Passwortes erfolgt mit dem Tool Opacc.Commons.Encryption.exe aus dem Verzeichnis \insyde\ServiceBus\
Setzen sie den Radio-Button auf For Application/Assembly.
Wählen sie das Assembly Opacc.Management.AppPoolController.exe aus dem Verzeichnis \insyde\Management\
Geben sie ihr Passwort im Klartext ein.
OpaccOne_Encryption_1.jpg
Mit Klick auf den Button Encrypt wird ihre Eingabe verschlüsselt.
OpaccOne_Encryption_2.jpg
Diesen verschlüsselten Passwort-String können sie nun in die Zwischenablage kopieren und für den Aufruf von ooappool.bat verwenden.

Meldung wenn auf Status "I"

Wird ein Applikationspool gestartet, welcher auf Status "I" (In Verarbeitung) steht, wird die folgende Meldung ausgegeben: Bitte kontrollieren Sie den Applikations-Pool nn.
Diese Meldung sehen sie auch im BC 98801 (im Status Abgeschlossen) beim entsprechenden Applikationspool-Eintrag.

Verwendung von ooappool in eigenen Batch-Programmen

Wenn sie den Aufruf ooappool in eigenen Batch-Programmen verwenden, ist folgendes zu beachten:
Setzen sie vor jeden Aufruf den Befehl Call.
Beispiel
Sie möchten via Batch-Programm die Applikationspools 501, 502 und 503 nacheinander verarbeiten.
In der Batch-Datei (sofern sie sich im Verzeichnis \Insyde\Ip\ befindet) werden die Applikationspools dann folgendermassen aufgerufen:
@echo off

Call %~dp0\..\ooappool.bat -ShowGui:off -WaitUntilCompletion:on -ShowConsole:off -CloseAfterCompletion:on -AppPoolNo:"-501" -Client:99 -User:123456 -Password:"02495/Atr5Lo.....F0a41w=="
Call %~dp0\..\ooappool.bat -ShowGui:off -WaitUntilCompletion:on -ShowConsole:off -CloseAfterCompletion:on -AppPoolNo:"-502" -Client:99 -User:123456 -Password:"02495/Atr5Lo.....F0a41w=="
Call %~dp0\..\ooappool.bat -ShowGui:off -WaitUntilCompletion:on -ShowConsole:off -CloseAfterCompletion:on -AppPoolNo:"-503" -Client:99 -User:123456 -Password:"02495/Atr5Lo.....F0a41w=="

exit
Notiz
Notiz
Hinweise zu den DOS-Befehlen CALL und START in eigenen Batch-Dateien.
Ein Aufruf mit CALL (z.B. Call ..... ooappool.bat...) bewirkt, dass an dieser Stelle gewartet wird, bis die aufgerufene Anwendung bzw. der aufgerufenen Batch beendet ist. Erst dann wird die nächste Zeile ausgeführt.
Ein Aufruf mit START (z.B. Start ..... ooappool.bat...) bewirkt, dass die aufgerufene Anwendung bzw. der aufgerufene Batch in einer separaten Konsole (cmd) ausgeführt wird. Es wird sofort mit der nächsten Zeile weitergefahren. Wichtig ist, dass in diesem Fall der aufgerufene Batch auf der letzten Zeile den Befehl exit enthält. Ansonsten bleibt der Prozess (cmd) nach der Batch-Ausführung stehen, was unerwünscht ist.
Ein Aufruf mit START /WAIT bewirkt dasselbe wie der Aufruf mit CALL. Wichtig ist, dass in diesem Fall der aufgerufene Batch auf der letzten Zeile den Befehl exit enthält. Ansonsten bleibt der Prozess (cmd) nach der Batch-Ausführung stehen, was unerwünscht ist.
@ECHO OFF

ECHO **************************************************************************************
ECHO V1 - Start externen Batch mit CALL...warte auf Rückkehr bevor die nächste Linie ausgeführt wird
ECHO **************************************************************************************
CALL %~dp0AppPoolWorker_9001_M98.bat
CALL %~dp0AppPoolWorker_9002_M98.bat
CALL %~dp0AppPoolWorker_9003_M98.bat
CALL %~dp0AppPoolWorker_9004_M98.bat
ECHO V1 - Ende
ECHO **************************************************************************************
ECHO V3 - Start externen Batch mit START...warte auf Rückkehr bevor die nächste Linie ausgeführt wird
ECHO      Die Ziel-Scripts benötigen einen EXIT-Befehl am Ende, sonst bleiben sie stehen
ECHO **************************************************************************************
START /WAIT %~dp0AppPoolWorker_9001_M98_mitExit.bat
START /WAIT %~dp0AppPoolWorker_9002_M98_mitExit.bat
START /WAIT %~dp0AppPoolWorker_9003_M98_mitExit.bat
START /WAIT %~dp0AppPoolWorker_9004_M98_mitExit.bat
ECHO V3 - Ende
ECHO **************************************************************************************
ECHO V4 - Start externen Batch ...warte nicht auf Rückker, fahre sofort weiter bei der nächsten Linie
ECHO      Die Ziel-Scripts benötigen einen EXIT-Befehl am Ende, sonst bleiben sie stehen
ECHO **************************************************************************************
START %~dp0AppPoolWorker_9001_M98_mitExit.bat
START %~dp0AppPoolWorker_9002_M98_mitExit.bat
START %~dp0AppPoolWorker_9003_M98_mitExit.bat
START %~dp0AppPoolWorker_9004_M98_mitExit.bat
ECHO V4 - Ende