mySQL Connection neu starten bei Fehler

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Caddy
Beiträge: 117
Registriert: 16. Nov 2018 08:21
Answers: 0

mySQL Connection neu starten bei Fehler

Beitrag von Caddy »

Hallo zusammen,


Ich habe das MySQL Persistent aktiviert mit Maria 5 DB.
Die DB läuft auf meiner Synology das OH 2.4 auf einem Raspberry

Es kommt vor, wenn das WLAN weg war oder auch so ab und an das der folgende Fehler kommt

2019-01-19 11:38:00.084 [ERROR] [sql.internal.MysqlPersistenceService] - mySQL: Connection is not valid!

Nach einem Raspberry Neustart ist wieder alles OK.
Soweit funktioniert alles, bis auf den Fehler oben.

Kann mir jemand eine Idee sagen wie ich den Fehler überwachen kann und dann den Dienst oder Server oder Connection neu starten kann?
Sollte das hier falsch sein bitte in raspbian verschieben ...

Danke caddy

Benutzeravatar
udo1toni
Beiträge: 15246
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: mySQL Connection neu starten bei Fehler

Beitrag von udo1toni »

Nein, das passt schon. Allerdings habe ich auch keine Idee, wie Du das umsetzen kannst, weil die Information in den openHAB rules nicht vorliegt.
Die Persistence sollte sich neu starten lassen, indem Du auf der Karaf Konsole bundle:restart org.openhab.persistence.mysql eingibst. Aber auch dieses Kommando lässt sich nicht ohne weiteres mit den Rules absetzen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Caddy
Beiträge: 117
Registriert: 16. Nov 2018 08:21
Answers: 0

Re: mySQL Connection neu starten bei Fehler

Beitrag von Caddy »

hast Du eine Idee wie ich den Fehler in einer Regel abgefangen bekomme ?
Dann würde ich mir ein Telegramm senden und den OH von Hand starten ?!

Benutzeravatar
udo1toni
Beiträge: 15246
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: mySQL Connection neu starten bei Fehler

Beitrag von udo1toni »

Du kannst auf lastUpdate eines Items zugreifen, welches Du z.B. jede Minute persistierst. Wenn die Datenbnak weg fliegt, müsste dann NULL zurück kommen, oder der Zeitstempel ändert sich zumindest nicht mehr.

Allerdings ist das nur Theorie ;)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Caddy
Beiträge: 117
Registriert: 16. Nov 2018 08:21
Answers: 0

Re: mySQL Connection neu starten bei Fehler

Beitrag von Caddy »

Hallo Udo1Toni.

ich habe es mit

Code: Alles auswählen

rule "xx_Stundenregel"
when
    Time cron "*/5 * * * * ?"
then
	logInfo("Rule.Nase","XXX: {} ", temperatur_holssel.lastUpdate )
end
versucht, mit dem Ergebnis wenn die connection offline geht, das dir rule nicht mal mehr ausgeführt wird.
Leider bekomme ich auch keinen Eintrag im Log .... Es sieht so aus als wenn er es einfach nicht mehr macht.

Noch eine Idee vielleicht ?

Wenn ich den Netzwerkstecker des SQL wieder rein stecke kommt das Datum ....

Jetzt die Frage wie komme ich an NULL :-)

Danke Caddy

Caddy
Beiträge: 117
Registriert: 16. Nov 2018 08:21
Answers: 0

Re: mySQL Connection neu starten bei Fehler

Beitrag von Caddy »

Nachtrag:

das hier habe ich gefunden

Code: Alles auswählen

rule "xx_Stundenregel"
when
    Time cron "*/5 * * * * ?"
then
   try {
      // do some stuff
	  logInfo("Rule.Nase","Mache was: {} ", temperatur_holssel.lastUpdate )
   }
   catch(Throwable t) {
      logError("Error", "Some bad stuff happened in my rule: " + T.toString)
   }
   finally {
      // always runs even if there was an error, good place for cleanup
	  logInfo("Rule.Nase"," ENDE ")
   }
end
funktioniert leider auch nicht

Benutzeravatar
udo1toni
Beiträge: 15246
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: mySQL Connection neu starten bei Fehler

Beitrag von udo1toni »

Ich kann mir ehrlich gesagt nicht vorstellen, dass die Rule nicht mehr ausgeführt wird, das riecht eher danach, dass die Verbindung zu SQL weg fliegt, weil der Rechner beschäftigt ist (so beschäftigt, dass keine Rules mehr ausgeführt werden).

Nutzt du viele Time cron Ausdrücke? openHAB erlaubt default nur 2 gleichzeitig laufende Rules, die vom Scheduler gestartet wurden.
Nutzt Du Thread::sleep() Anweisungen, um die Ausführung von Befehlen zu verzögern? openHAB erlaubt default nur 5 gleichzeitig laufende Rules durch andere Trigger, sind mehr rules am Start, guckt der Letzte in die Röhre.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Caddy
Beiträge: 117
Registriert: 16. Nov 2018 08:21
Answers: 0

Re: mySQL Connection neu starten bei Fehler

Beitrag von Caddy »

ich denke das auch

zu deinen Fragen

Nutzt du viele Time cron Ausdrücke? openHAB erlaubt default nur 2 gleichzeitig laufende Rules, die vom Scheduler gestartet wurden.
Nutzt Du Thread::sleep() Anweisungen, um die Ausführung von Befehlen zu verzögern? openHAB erlaubt default nur 5 gleichzeitig laufende Rules durch andere Trigger, sind mehr rules am Start, guckt der Letzte in die Röhre.

alles nein
nur wenige rules keine laufen zur gleichen zeit

Caddy

Antworten