als Persistenz habe habe ich Influxdb in einem Docker Container.
Wenn dieser mal nicht erreichbar ist (Update oder ähnliches), ballert mir OH Fehlermeldungen ins Log.
Und zwar solange, bis ich in OH den Persistence Service neu starte, indem ich die Einstellungen (unverändert) speichere.
Die erste Fehlermeldung lautet:
Code: Alles auswählen
2024-09-20 16:30:55.814 [WARN ] [rnal.influx2.InfluxDB2RepositoryImpl] - database not ready
Code: Alles auswählen
2024-09-20 16:30:55.805 [WARN ] [influxdb.internal.AbstractRestClient] - Ping request wasn't successful
java.net.ConnectException: Failed to connect to /192.168.178.26:8087
at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297) ~[?:?]
at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207) ~[?:?]
at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226) ~[?:?]
at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106) ~[?:?]
at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74) ~[?:?]
at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255) ~[?:?]
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32) ~[?:?]
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[?:?]
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95) ~[?:?]
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[?:?]
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83) ~[?:?]
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[?:?]
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76) ~[?:?]
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[?:?]
at com.influxdb.client.internal.GzipInterceptor.intercept(GzipInterceptor.java:91) ~[?:?]
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[?:?]
at okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.kt:154) ~[?:?]
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[?:?]
at com.influxdb.client.internal.AuthenticateInterceptor.intercept(AuthenticateInterceptor.java:103) ~[?:?]
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[?:?]
at com.influxdb.internal.UserAgentInterceptor.intercept(UserAgentInterceptor.java:60) ~[?:?]
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[?:?]
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201) ~[?:?]
at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154) ~[?:?]
at retrofit2.OkHttpCall.execute(OkHttpCall.java:207) ~[?:?]
at com.influxdb.internal.AbstractRestClient.ping(AbstractRestClient.java:194) ~[?:?]
at com.influxdb.client.internal.InfluxDBClientImpl.ping(InfluxDBClientImpl.java:277) ~[?:?]
at org.openhab.persistence.influxdb.internal.influx2.InfluxDB2RepositoryImpl.checkConnectionStatus(InfluxDB2RepositoryImpl.java:127) ~[?:?]
at org.openhab.persistence.influxdb.internal.influx2.InfluxDB2RepositoryImpl.connect(InfluxDB2RepositoryImpl.java:104) ~[?:?]
at org.openhab.persistence.influxdb.InfluxDBPersistenceService.checkConnection(InfluxDBPersistenceService.java:277) ~[?:?]
at org.openhab.persistence.influxdb.InfluxDBPersistenceService.commit(InfluxDBPersistenceService.java:283) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at java.lang.Thread.run(Thread.java:840) [?:?]
Caused by: java.net.ConnectException: Verbindungsaufbau abgelehnt
at sun.nio.ch.Net.pollConnect(Native Method) ~[?:?]
at sun.nio.ch.Net.pollConnectNow(Net.java:672) ~[?:?]
at sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:554) ~[?:?]
at sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602) ~[?:?]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) ~[?:?]
at java.net.Socket.connect(Socket.java:633) ~[?:?]
at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128) ~[?:?]
at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295) ~[?:?]
... 36 more
Code: Alles auswählen
2024-09-20 16:36:10.860 [INFO ] [.influxdb.InfluxDBPersistenceService] - InfluxDB persistence service stopped.
2024-09-20 16:36:10.887 [INFO ] [.influxdb.InfluxDBPersistenceService] - InfluxDB persistence service started.
Aber die Datenbank wird nicht mehr gefüttert.
Meine Frage: kann man das Erkennen der Nichterreichbarkeit und den Neustart über eine Regel automatisieren?