selectline-software / selectline-api

Apache License 2.0
24 stars 5 forks source link

Es konnte keine Verbindung zur Backend-Wawi hergestellt werden #296

Closed Logic-Bits closed 1 year ago

Logic-Bits commented 1 year ago

Details

Steps to replicate the behavior:

Sehr geehrte Damen und Herren,

der Kunde benutzt 1x im Monat die API und es ist immer das gleiche ...

"StatusCode": "InternalServerError", "ResponseCode": "42-000", "ResponseId": 0, "ResponseIdDescription": "Undefined", "Message": "Es konnte keine Verbindung zur Backend-Wawi hergestellt werden.\r\nBitte prüfen Sie im Mobile Manager ob der BackendManager aktiv ist.", "Details": null

Dann habe ich Ihn manuell gestartet - immer noch gleiches Problem. Dann beendet und neugestartet - es hat funktioniert.

Logs habt Ihr schon von einem anderen Kunden bekomme, hier konnte man nicht mehr rausfinden (außer Ihr baut mehr Logging ein). Wurde das zu der 22.3.0 schon gemacht?

Wie wollen wir diese Probleme gelöst bekommen? Mir gehen die Ideen aus, der nächste Neustart in der Aufgabenplanung (aus anderem Ticket) ist ja auch keine Lösung.

Vielen Dank

ThePholph commented 1 year ago

Hallo,

wir haben das Problem ebenfalls bei 2 Kunden und bitten um eine Lösung (siehe auch bsp. Verlaufsprotokoll der Aufgabe unten). Das Problem wurde von uns ab der 22.x registriert. Da das Problem nie eindeutig zu verifizieren war, haben wir es auch jetzt erst gemeldet, nachdem der 2. Kunde die gleichen Probleme hat und hier bei GitHub vermehrt Meldungen zu registrieren sind.

Es hat sich nach einiger Recherche ergeben, dass das Problem immer auftritt, wenn die API selten genutzt wird. Andere Kunden und auch wir selbst haben das Problem nicht, da wir täglich mehrere Male die API nutzen.

grafik

Vielen Dank.

Vg Daniel

ThePholph commented 1 year ago

Antwort vom Support zu dem Thema, da das gleiche Problem bei einem Kunden mit MDE auftritt:

... zunächt empfehle ich an der Stelle ein Update auf die aktuelle Version. Im Bezug auf den Backendmanager wurden in den Zwischenversionen einige Optimierungen vorgenommen. Sollte das nicht weiterhelfen, prüfen Sie bitte, dass auf dem System keine "Optimierungsdienste" installiert sind, die den Backendmanager beenden, sobald dieser eine längere Zeit "inaktiv" ist. Die von uns erstellte Windowsaufgabe dient lediglich dazu, dass der Backendmanager bei einem Serverneustart automatisch ausgeführt wird. Es wird darüber nicht überwacht, ob dieser permanent läuft oder dergleichen, d.h. wenn dieser beendet wird, führt dies nicht zur erneuten Ausführung der Aufgabe, sondern benötigt einen manuellen Start. ...

Kommentare spare ich mir an der Stelle lieber.

Vg Daniel

ThePholph commented 1 year ago

Evtl. kommt ja hier eine Lösung #279

Vg Daniel

MatthiasGuse commented 1 year ago

Hallo,

wir konnten auch nach mehreren Tagen Inaktivität das Problem nicht nachstellen.

Um hier weiter nach Informationen suchen zu können, benötigen wir Unterstützung mit detaillierteren Logs. Bitte legen Sie dazu im Installationsverzeichnis unter ...\SelectLine Software\Mobile Anwendungen\LokaleDaten\BackendManager eine Datei SelectLine.API.BackendManager.logini mit folgendem Inhalt an:

[*]
Level=Debug
Trace=Off

Im Anschluss bitte den Backendmanager neustarten. Nach erneutem Auftreten des Problems bitte den ungefähren Zeitpunkt und das gesamte Verzeichnis "Logs" zur Verfügung stellen (falls gewünscht an den Support senden). Dann bitte die Datei wieder entfernen oder umbenennen und den Backendmanager nochmal neustarten.

Unabhängig davon sind wir weiterhin dabei nach möglichen Ursachen zu suchen.

Viele Grüße

ThePholph commented 1 year ago

Hallo Matthias,

dank dir, richte ich die Tage ein. Sobald ich was Neues habe, lasse ich es euch zukommen.

Viele Grüße

Logic-Bits commented 1 year ago

Hallo,

Werden wir auch bei den 3 Kunden machen. Sie meinen aber vermutlich in ProgramData oder?

Installation unter C:\Program Files (x86)\SelectLine Software\Mobile Anwendungen hat keinen LokaleDaten Ordner.

Logic-Bits commented 1 year ago

Auch bieten wir natürlich wieder an dass Sie sich auf die Systeme drauf schalten können wenn es bei Ihnen nicht nachvollziehbar ist.

MatthiasGuse commented 1 year ago

Je nach gewähltem Installationsverzeichnis kann sich das Verzichnis "Lokale Daten" auch unter "ProgramData" befinden.

Danke für das Angebot zum Draufschalten. Das hilft uns leider nur sehr wenig, wenn das Problem nur sporadisch auftritt. Wir müssen den Zeitpunkt des Auftretens protokollieren bzw. bei uns nachstellen können.

Grüße

Logic-Bits commented 1 year ago

Hallo Herr Guse, Email liegt im Support. Vielen Dank

Logic-Bits commented 1 year ago

grafik 22.3.0 => Neuer Kunde / System. Wir können doch nicht die einzigen sein?

Logic-Bits commented 1 year ago

grafik einrichten klappt ohne Fehler, aber Tests zeigt Rot. Starten kann man dann nicht mehr klicken bis neustart. Ändert aber nichts.

ThePholph commented 1 year ago

grafik 22.3.0 => Neuer Kunde / System. Wir können doch nicht die einzigen sein?

Hallo,

seit ihr auch nicht. Da das ein typischer Fehler ist, der einfach schwer 1:1 zu reproduzieren ist, ist die Lösung für SL schwierig. Wir sind auch noch am Daten sammeln, wenn wir dazu kommen, um eine qualifizierten Bericht zu erzeugen.

Wir haben aktuell einen eigenen Windows-Service erstellt, der den Backenmanager überwacht und wenn es Probleme gibt automatisch diesen neu startet (ca. 1 - 2 Sek.). Der Nutzer bekommt aufgrund unserer Middleware davon nichts mit.

Schön ist das alles nicht und solch eine Lösung erwarte ich eig. von SL, was das Monitoring sowie entsprechende Aktionen angeht. Aktuell sehen wir keine andere Lösung als unseren Kunden, kostenfrei, ein eigenes Monitoring für den Backend zur Verfügung zu stellen.

Viele Grüße

Daniel

Logic-Bits commented 1 year ago

Danke Daniel für die Nachricht... bin am überlegen so etwas auch als Service für unsere Kunden zu Entwickeln. Eigentlich sollte das unnötig sein, aber die Wahrscheinlichkeit dass es nach so vielen Jahren jetzt plötzlich in Wochen gelöst ist, ist unwahrscheinlich.

Wie erkennt Ihr dass der Backendmanager "hängt" oder nicht richtig funktioniert? (ohne jedes mal zb. ein Beleg anzulegen)

Danke!!!

PS. vielleicht sollten wir uns hier als Händler auch zusammentun und eine Open Source Lösung anbieten - die Kunden zahlen ja für die API Geld und möchten dass diese funktioniert.

MatthiasGuse commented 1 year ago

@ThePholph Wir haben mit Logic-Bits gemeinsam festgestellt, dass in dem beschriebenen Fall der Backendmanager geschlossen ist. D.h. die Anwendung wird einfach kommentarlos beendet. Könnt ihr das so bestätigen?

Grüße

ThePholph commented 1 year ago

@ThePholph Wir haben mit Logic-Bits gemeinsam festgestellt, dass in dem beschriebenen Fall der Backendmanager geschlossen ist. D.h. die Anwendung wird einfach kommentarlos beendet. Könnt ihr das so bestätigen?

Grüße

Guten Morgen,

@MatthiasGuse ja, das ist korrekt.

Grüße

MatthiasGuse commented 1 year ago

grafik einrichten klappt ohne Fehler, aber Tests zeigt Rot. Starten kann man dann nicht mehr klicken bis neustart. Ändert aber nichts.

Hier stellte sich heraus, dass der angemeldete Administrator selbst nicht ausreichende Berechtigungen hatte die Einrichtung in der Aufgabenplanung vorzunehmen. Leider verrät Windows das nicht wirklich. Die Anlage eines neuen Admin-Benutzers und erneute Installation unter diesem Nutzer brachten Abhilfe.

ThePholph commented 1 year ago

Bei unsere Problematik kann ich dies ausschließen, da wir nur Benutzer mit vollen Adminrechten verwenden, da uns die Thematik mit den Berechtigungen bekannt ist. Die Windowsaufgabe wird auch korrekt ausgeführt und nach einem Neustart funktioniert auch alles. Das Problem ist, dass der Backendmanager einfach beendet ist, ohne erkennbaren Grund. Die Aufgabe kann hier auch nicht helfen, da der Backendmanager nicht überwacht und ggf. neugestartet wird.

Wie bereits mitgeteilt, ist ein manueller Neustart keine Option, bei der Anzahl unserer Kunden und Anwendungsgebiete.

Grüße

Daniel

MatthiasGuse commented 1 year ago

Bei unsere Problematik kann ich dies ausschließen, da wir nur Benutzer mit vollen Adminrechten verwenden, da uns die Thematik mit den Berechtigungen bekannt ist. Die Windowsaufgabe wird auch korrekt ausgeführt und nach einem Neustart funktioniert auch alles. Das Problem ist, dass der Backendmanager einfach beendet ist, ohne erkennbaren Grund. Die Aufgabe kann hier auch nicht helfen, da der Backendmanager nicht überwacht und ggf. neugestartet wird.

Wie bereits mitgeteilt, ist ein manueller Neustart keine Option, bei der Anzahl unserer Kunden und Anwendungsgebiete.

Grüße

Daniel

Das ist mir klar. Das mit dem Admin-User ist ein anderes Problem, was nur in der gleichen Fehlermeldung in der API mündet. Gehört eigentlich nicht hier hinein.

MatthiasGuse commented 1 year ago

Dass der Backenemanager wirklich beendet wird, war uns bis gestern nicht so eindeutig klar. Ich bin immer davon ausgegangen, dass dieser einfach nicht mehr reagiert, also der Prozess einfach hängen bleibt.

Eine Lösung sehe ich momentan ausschließlich darin die Aufgabe in der Aufgabenplanung zu erweitern. Wählen Sie dazu unter der Aufgabe "BackendManager öffnen" auf der Seite Trigger die Aktion "Beim Start" aus und erweitern die Einstellung wie folgt: grafik

Diese Einstellung wird beim erneuten Einrichten der Datenbank über den Mobile Manager überschrieben. Um das zu verhindern, kann der Dialog zur Passworteingabe abgebrochen werden. (Dazu muss man sich aber sicher sein, dass die Aufgabe auch wirklich existiert.)

Wird der Backendmanager über die Aufgabe neugestartet, hat das zur Folge, dass alle Nutzer der mobilen Anwendungen abgemeldet und die LoginIDs ungültig werden. Dann sollte ja wieder der normamale Login Mechanismus greifen.

Unabhängig davon, kann man über die Info Route der API auch abfragen, ob der BackenendManager läuft.

Ich hoffe das hilft ein Stück weiter.

Grüße

ThePholph commented 1 year ago

Dass der Backenemanager wirklich beendet wird, war uns bis gestern nicht so eindeutig klar. Ich bin immer davon ausgegangen, dass dieser einfach nicht mehr reagiert, also der Prozess einfach hängen bleibt.

Eine Lösung sehe ich momentan ausschließlich darin die Aufgabe in der Aufgabenplanung zu erweitern. Wählen Sie dazu unter der Aufgabe "BackendManager öffnen" auf der Seite Trigger die Aktion "Beim Start" aus und erweitern die Einstellung wie folgt: grafik

Diese Einstellung wird beim erneuten Einrichten der Datenbank über den Mobile Manager überschrieben. Um das zu verhindern, kann der Dialog zur Passworteingabe abgebrochen werden. (Dazu muss man sich aber sicher sein, dass die Aufgabe auch wirklich existiert.)

Wird der Backendmanager über die Aufgabe neugestartet, hat das zur Folge, dass alle Nutzer der mobilen Anwendungen abgemeldet und die LoginIDs ungültig werden. Dann sollte ja wieder der normamale Login Mechanismus greifen.

Unabhängig davon, kann man über die Info Route der API auch abfragen, ob der BackenendManager läuft.

Ich hoffe das hilft ein Stück weiter.

Grüße

Hallo,

genau dafür haben wir den erwähnten Dienst entwickelt, der jedoch prüft, ob der Backendmanager noch läuft (via ProzessId) und erst, wenn dieser nicht mehr gestartet ist, starten wir diesen neu. So vermeiden wir den unschönen Nebeneffekt der zyklischen Abmeldung der API-Benutzer.

Trotzdem danke für die Informationen.

Grüße

Daniel

MatthiasGuse commented 1 year ago

Hallo,

genau dafür haben wir den erwähnten Dienst entwickelt, der jedoch prüft, ob der Backendmanager noch läuft (via ProzessId) und erst, wenn dieser nicht mehr gestartet ist, starten wir diesen neu. So vermeiden wir den unschönen Nebeneffekt der zyklischen Abmeldung der API-Benutzer.

Trotzdem danke für die Informationen.

Grüße

Daniel

Die Windows Aufgabenplanung verhält sich genauso. Das kleinste Zeitfenster ist allerdings halt 5 Minuten. Der Prozess wird auch hier nur neu gestartet, wenn er nicht mehr läuft. Der Nebeneffekt mit der Abmeldung der Benutzer entsteht durch das Starten des Backendmanagers, somit also auch unweigerlich bei eurer Umsetzung. Sollte man den Backendmanager starten, obwohl er bereits läuft, beendet sich der zuletzt gestartete Prozess von selbst wieder.

Schönes Wochenende!

MatthiasGuse commented 1 year ago

Das Startverhalten und die Stabilität der API, insbesondere in Bezug auf die Backendprozesse, wurden mit der Version 23.1.0 optimiert und Fehler korrigiert. Sollten Sie Probleme mit der Verfügbarkeit des Backendmanagers haben, empfehlen wir Ihnen nach einem Update auf diese Version die Funktion „Datenbank einrichten“ im Mobile Manager auf der Seite „Datenbank“ erneut auszuführen.

Viele Grüße