Seite 1 von 3

V3.3.1 The database has been closed [90098-214]

Verfasst: 21.08.2023, 21:20
von Wortmann30
Hallo zusammen

Mir zeigt es seit geraumer Zeit immer wieder nach Neustar von Historian und oder der RM diesen Fehler an.

Das System lief bis vor kurzem Problem los.

Details zum Fehler werden so angezeigt:

Code: Alles auswählen

org.h2.jdbc.JdbcSQLNonTransientConnectionException: The database has been closed [90098-214]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:678)
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:477)
	at org.h2.message.DbException.get(DbException.java:212)
	at org.h2.engine.SessionLocal.getTransaction(SessionLocal.java:1596)
	at org.h2.engine.SessionLocal.startStatementWithinTransaction(SessionLocal.java:1617)
	at org.h2.command.Command.executeQuery(Command.java:184)
	at org.h2.jdbc.JdbcStatement.executeQuery(JdbcStatement.java:99)
	at mdz.ccuhistorian.Database.getDataPoints(Database.groovy:331)
	at mdz.ccuhistorian.ExtendedStorage.getDataPoints(ExtendedStorage.groovy:49)
	at index$_run_closure2$_closure4$_closure8$_closure22.doCall(index.gy:134)
	at index$_run_closure2$_closure4$_closure8$_closure22.doCall(index.gy)
	at index$_run_closure2$_closure4$_closure8.doCall(index.gy:133)
	at index$_run_closure2$_closure4$_closure8.doCall(index.gy)
	at index$_run_closure2$_closure4.doCall(index.gy:104)
	at index$_run_closure2$_closure4.doCall(index.gy)
	at index$_run_closure2.doCall(index.gy:32)
	at index$_run_closure2.doCall(index.gy)
	at mdz.ccuhistorian.webapp.PageRenderer$_runSafe_closure2.doCall(PageRenderer.groovy:55)
	at mdz.ccuhistorian.webapp.PageRenderer$_runSafe_closure2.doCall(PageRenderer.groovy)
	at mdz.ccuhistorian.webapp.WebUtilities$_catchToLog_closure1.doCall(WebUtilities.groovy:83)
	at mdz.ccuhistorian.webapp.WebUtilities$_catchToLog_closure1.doCall(WebUtilities.groovy)
	at mdz.Exceptions.lambda$0(Exceptions.java:84)
	at mdz.Exceptions.catchToLog(Exceptions.java:74)
	at mdz.Exceptions.catchToLog(Exceptions.java:84)
	at mdz.ccuhistorian.webapp.WebUtilities.catchToLog(WebUtilities.groovy:81)
	at mdz.ccuhistorian.webapp.PageRenderer.runSafe(PageRenderer.groovy:53)
	at mdz.ccuhistorian.webapp.PageRenderer.writeContent(PageRenderer.groovy:302)
	at mdz.ccuhistorian.webapp.PageRenderer$_writeBody_closure7$_closure11.doCall(PageRenderer.groovy:155)
	at mdz.ccuhistorian.webapp.PageRenderer$_writeBody_closure7$_closure11.doCall(PageRenderer.groovy)
	at mdz.ccuhistorian.webapp.PageRenderer$_writeBody_closure7.doCall(PageRenderer.groovy:150)
	at mdz.ccuhistorian.webapp.PageRenderer$_writeBody_closure7.doCall(PageRenderer.groovy)
	at mdz.ccuhistorian.webapp.PageRenderer.writeBody(PageRenderer.groovy:149)
	at mdz.ccuhistorian.webapp.PageRenderer$_writeDocument_closure5.doCall(PageRenderer.groovy:121)
	at mdz.ccuhistorian.webapp.PageRenderer$_writeDocument_closure5.doCall(PageRenderer.groovy)
	at mdz.ccuhistorian.webapp.PageRenderer.writeDocument(PageRenderer.groovy:119)
	at mdz.ccuhistorian.webapp.PageRenderer$_render_closure1.doCall(PageRenderer.groovy:25)
	at mdz.ccuhistorian.webapp.PageRenderer$_render_closure1.doCall(PageRenderer.groovy)
	at mdz.ccuhistorian.webapp.WebUtilities$_catchToLog_closure1.doCall(WebUtilities.groovy:83)
	at mdz.ccuhistorian.webapp.WebUtilities$_catchToLog_closure1.doCall(WebUtilities.groovy)
	at mdz.Exceptions.lambda$0(Exceptions.java:84)
	at mdz.Exceptions.catchToLog(Exceptions.java:74)
	at mdz.Exceptions.catchToLog(Exceptions.java:84)
	at mdz.ccuhistorian.webapp.WebUtilities.catchToLog(WebUtilities.groovy:81)
	at mdz.ccuhistorian.webapp.PageRenderer.render(PageRenderer.groovy:22)
	at index.run(index.gy:250)
	at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1459)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631)
	at org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:319)
	at org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:273)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:516)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
Caused by: org.h2.mvstore.MVStoreException: Writing to sun.nio.ch.FileChannelImpl@affe0a1 failed; length 344064 at 4295098368 [2.1.214/2]
	at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:1004)
	at org.h2.mvstore.DataUtils.writeFully(DataUtils.java:493)
	at org.h2.mvstore.FileStore.writeFully(FileStore.java:113)
	at org.h2.mvstore.MVStore.write(MVStore.java:1269)
	at org.h2.mvstore.MVStore.storeBuffer(MVStore.java:1750)
	at org.h2.mvstore.MVStore.lambda$serializeAndStore$5(MVStore.java:1600)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:750)
Caused by: java.io.IOException: File too large
	at org.h2.mvstore.DataUtils.writeFully(DataUtils.java:489)
	at org.h2.mvstore.FileStore.writeFully(FileStore.java:113)
	at org.h2.mvstore.MVStore.write(MVStore.java:1269)
	at org.h2.mvstore.MVStore.storeBuffer(MVStore.java:1750)
	at org.h2.mvstore.MVStore.lambda$serializeAndStore$5(MVStore.java:1600)
Weiter unten steht was von „File too large“

Code: Alles auswählen

Caused by: java.io.IOException: File too large
Kann das sein was tue ich da dagegen?

Re: V3.3.1 The database has been closed [90098-214]

Verfasst: 21.08.2023, 21:32
von Slice
Hi,
Wortmann30 hat geschrieben:
21.08.2023, 21:20
Weiter unten steht was von „File too large“

Code: Alles auswählen

Caused by: java.io.IOException: File too large
auf welchem Dateisystem läuft den die Historian DB?
FAT wäre so ein Kandidat bei dem es Größenbeschränkungen gibt.

Grüße,
Slice

Re: V3.3.1 The database has been closed [90098-214]

Verfasst: 21.08.2023, 21:43
von Baxxy
Klingt wirklich nach der 4GB Grenze.
Da ist die Datenbank ja ein ziemlich dicker Brocken.

Re: V3.3.1 The database has been closed [90098-214]

Verfasst: 13.09.2023, 12:00
von Wortmann30
Hallo zusammen,

sorry das ich so lange nicht geantwortet habe lag daran das ich nicht im Lade war und daher gar nicht auf die Steuerung gekommen wäre...

Jetzt bin ich wieder da und kann mich darum kümmern.

Ich habe das ganze auf einem separaten Pi4 als Addon auf einer Raspberrymatic am laufen.
Die daten werden auf einer Externen 40GB SSD Platte gespeichert.
Unbenannt.JPG
Und tatsächlich ist die Datei extrem gross.

Wie gehe ich jetzt da am besten vor?
Ich habe ne große Installation von +200 Geräten...

Re: V3.3.1 The database has been closed [90098-214]

Verfasst: 13.09.2023, 12:46
von Slice
Hi,

Du musst erstmal rausbekommen welches Dateisystem Du verwendest.
Per SSH:
blkid -o list
Wenn da Fat32 rauskommt, dann hast du ein Problem.

Grüße,
Slice

Re: V3.3.1 The database has been closed [90098-214]

Verfasst: 13.09.2023, 13:36
von Wortmann30
ok es steht was von FAT aber nicht FAT32?
Unbenannt.JPG

Re: V3.3.1 The database has been closed [90098-214]

Verfasst: 13.09.2023, 14:05
von Slice
Okay, Dein USB-Stick ist als vfat formatiert.
Soweit ich weiß, müsstet nochmal selber suchen, ist hierbei auch die Größe der Datei auf 4GB beschränkt.
Daher streikt jetzt Dein CCU-Historian weil er nichts mehr in die Datei schreiben kann.

Re: V3.3.1 The database has been closed [90098-214]

Verfasst: 13.09.2023, 14:20
von Wortmann30
ok und was kann ich dagegen tuen?
Das System lief jetzt gerade mal ca. 7-8 Monate.

Tante Google lässt mich das erfahren:

Code: Alles auswählen

VFAT (Virtual File Allocation Table) ist eine Erweiterung des FAT-Formats zur Verwendung langer Dateinamen, die auf FAT12, FAT16 und (seit dessen Einführung im Jahr 1996) auch auf FAT32 angewendet werden kann. Gelegentlich wird im Sprachgebrauch auch fälschlich VFAT mit FAT32 gleichgesetzt.
Also gehe ich davon aus das die 4GB grenze auch da gilt...

Und nun?

Re: V3.3.1 The database has been closed [90098-214]

Verfasst: 13.09.2023, 14:27
von Slice
Wie gesagt, soweit ich gelesen habe gilt die 4GB Grenze auch bei vfat.

Hast Du ein Backup der CCU-Historian DB?
Kannst ja mal die momentan auf der SSD liegt sichern und die SSD als ext4 Dateisystem formatieren.
Dann die alte Datei rücksichern und hoffen das CCU-Historian wieder läuft, ansonst halt das letzte Backup rücksichern.

Re: V3.3.1 The database has been closed [90098-214]

Verfasst: 13.09.2023, 15:58
von Wortmann30
ok ich habe mal die Datenback im WinScp kopiert.
Eine andere Sicherung habe ich nicht.

Das Umformatieren wie geht denn das?