die beim Stoppen des Dienstes im Windows zu einem Fehler führen kann.
was ist neu:
-pipemgr wartet bis alle Prozesse beendet sind
-soapmgr stoppt mit dem comm
-Zeit zwischen dem Versenden von T0, T1, T2 Sätzen an alle Terminal ist einstellbar
Beim Stoppen sendet der tmgr an alle Terminal ein T2, per Default alle 100ms.
Bei mehr als ~240 Terminal braucht der tmgr mehr als 30sec damit meldet der Windows-Service-Manager einen Fehler. Ein Verlängern der Wartezeit geht nur in der Registry, leider nicht im Programmcode. Mit einem neuen Parameter kann man die Wartezeit verringern, ich kann allerdings nicht testen, was das Verkürzen dieses Wertes auf einem System mit echten Terminal für Nebeneffekte hat.
In der Datei ~/ini.d/terminal.ini, Sektion:
# SleepBetweenTerms=100 (default) Wertebereich: 1-500
SleepBetweenTerms=20
Mit einem Wert von 20ms und 260 Terminal hatte ich in der Emulation keine Probleme.
An alle, die T2-Sätze nachzählen wollen:
Beim Stoppen sendet der tmgr für jedes 'Terminal' eine T2-Satz, allerdings filtert der iomgr alle T2-Sätze, die an einen Leser gehen heraus, daher gehen nur an Standalone-Terminals und an Zutrittsmanager T2-Sätze.
Der soapmgr hatte im Windows ein Bug, hier wurde eine Semaphore nicht wieder freigegeben, daher hat er sich nicht immer beendet.