Servererreichbarkeit prüfen
ecm.check_connections() prüft jeden im Pool konfigurierten Server einzeln und meldet pro Server, ob er erreichbar ist, ob der Login gelingt und welche enaio-Serverinformationen (z. B. Produktversion) er liefert.
|
Dies ist kein Aufruf des Serverjobs |
1. Abgrenzung zu ecm.system.info()
|
Spiegelt nur die aktuell offenen Pool-Verbindungen wider (eine pro lebender Verbindung). Sagt nichts über konfigurierte, aber gerade nicht verbundene Server. |
|
Prüft alle konfigurierten Server aus der Pool-Konfiguration aktiv, unabhängig davon, ob aktuell eine Verbindung dorthin besteht. Die Probe-Verbindungen landen nie im Pool und verändern die Pool-Statistik nicht. |
2. Verbindung
from ecmind_blue_client.ecm import ECM
from ecmind_blue_client.pool import SyncPoolClient
# Mehrere Server im Pool: hostname:port:weight, getrennt durch '#'
ecm = ECM(SyncPoolClient(
servers="server1:4000:1#server2:4000:1",
username="<user>",
password="<pass>",
))
Async (AsyncPoolClient) funktioniert analog mit await vor dem Aufruf.
3. Minimal-Beispiel
for check in ecm.check_connections():
status = "ok" if check.reachable else f"down ({check.error})"
version = check.server_info.product_version if check.server_info else "?"
print(f"{check.hostname}:{check.port} {status} v={version}")
Async:
for check in await ecm.check_connections():
...
4. Rückgabe: ECMServerConnectionCheck
check_connections() liefert eine Liste von ECMServerConnectionCheck — einen Eintrag pro konfiguriertem Server, in Konfigurationsreihenfolge. Ein nicht erreichbarer Server bricht die übrigen nicht ab; Fehler werden im Feld error festgehalten, statt geworfen zu werden.
| Feld | Typ | Bedeutung |
|---|---|---|
|
|
Hostname, gegen den geprüft wurde. |
|
|
TCP-Port, gegen den geprüft wurde. |
|
|
|
|
|
|
|
|
Serverinformationen (Produktversion, Plattform, …), wenn |
|
|
|
5. Semantik der Ergebnisfelder
| Szenario | reachable |
authenticated |
server_info |
error |
|---|---|---|---|---|
Server aus / refused / DNS-Fehler / TCP-Timeout |
|
|
|
|
TLS-Handshake schlägt fehl |
|
|
|
|
TCP+TLS ok, falsche Anmeldedaten |
|
|
|
|
Login ok, |
|
|
|
|
Voller Erfolg |
|
|
|
|
Kurzformel: reachable = Transport (TCP+TLS) steht; authenticated = enaio-Login erfolgreich; server_info vorhanden = GetServerInfoEx lieferte Daten.
|
Die Session-Setup-Jobs verwenden — wie der reguläre Pool — kein Lese-Timeout. Ein Server, der die TCP-Verbindung annimmt, dann aber beim Login hängt, blockiert die Probe für diesen Server. Nur der initiale Verbindungsaufbau ist über |
6. Verwandte Themen
-
info() für die Statistik der aktuell offenen Pool-Verbindungen