Nachdem mein PiVCCU bei einem Update abgeraucht war, habe ich PiVCCU3 installiert und die CCU3 wieder am laufen. CUxD und REGA laufen nach anfänglichen Schwierigkeiten wieder.
Nun habe ich bei meiner Ursachenforschung auch meinen zweiten Pi3 rangenommen, auf dem seit einem Jahr ohne Problem historian lief.
Ich hatte immer wieder mal die history.mv.db und die history.trace.db mittels WinSCP gesichert gehabt (alledings ohne historian vorher zu stoppen). Als ich den Pi nun wieder gestartet habe und mittels sudo java -jar ccu-historian.jar historian starten wollte kam der Fehler "Exception: Datenbank wird wahrscheinlich bereits benutzt"
Code: Alles auswählen
2019-08-22 00:07:08|INFO |CCU-Historian V2.0.0-beta.1
2019-08-22 00:07:08|INFO |(C)MDZ (info@ccu-historian.de)
2019-08-22 00:07:10|FINE |Log system configuration:
2019-08-22 00:07:10|FINE |logSystem.consoleLevel=Level.FINE
2019-08-22 00:07:10|FINE |logSystem.fileLevel=Level.OFF
2019-08-22 00:07:10|FINE |logSystem.fileName='/opt/ccu-historian/ccu-historian-%g.log'
2019-08-22 00:07:10|FINE |logSystem.fileLimit=1000000
2019-08-22 00:07:10|FINE |logSystem.fileCount=5
2019-08-22 00:07:10|FINE |logSystem.binRpcLevel=Level.FINE
2019-08-22 00:07:10|INFO |Starting base services
2019-08-22 00:07:10|INFO |Connecting to database
2019-08-22 00:07:10|FINE |database.dir='/opt/ccu-historian/data'
2019-08-22 00:07:10|FINE |database.name='history'
2019-08-22 00:07:10|FINE |database.user='sa'
2019-08-22 00:07:10|FINE |database.webEnable=true
2019-08-22 00:07:10|FINE |database.webPort=8082
2019-08-22 00:07:10|FINE |database.webAllowOthers=true
2019-08-22 00:07:10|FINE |database.tcpEnable=false
2019-08-22 00:07:10|FINE |database.tcpPort=9092
2019-08-22 00:07:10|FINE |database.tcpAllowOthers=false
2019-08-22 00:07:10|FINE |database.pgEnable=false
2019-08-22 00:07:10|FINE |database.pgPort=5435
2019-08-22 00:07:10|FINE |database.pgAllowOthers=false
2019-08-22 00:07:10|FINE |database.backup=''
2019-08-22 00:07:11|SEVERE |Exception: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-197]
2019-08-22 00:07:11|SEVERE |Detail: org.h2.jdbc.JdbcSQLException: Datenbank wird wahrscheinlich bereits benutzt: null. Mögliche Lösungen: alle Verbindungen schliessen; Server Modus verwenden
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-197]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
at org.h2.message.DbException.get(DbException.java:168)
at org.h2.mvstore.db.MVTableEngine$Store.convertIllegalStateException(MVTableEngine.java:188)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:168)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:100)
at org.h2.engine.Database.getPageStore(Database.java:2538)
at org.h2.engine.Database.open(Database.java:709)
at org.h2.engine.Database.openDatabase(Database.java:286)
at org.h2.engine.Database.<init>(Database.java:280)
at org.h2.engine.Engine.openSession(Engine.java:66)
at org.h2.engine.Engine.openSession(Engine.java:179)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:157)
at org.h2.engine.Engine.createSession(Engine.java:140)
at org.h2.engine.Engine.createSession(Engine.java:28)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:351)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:124)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:103)
at org.h2.Driver.connect(Driver.java:69)
at mdz.ccuhistorian.Database.<init>(Database.groovy:69)
at mdz.ccuhistorian.DatabaseSystem.<init>(DatabaseSystem.groovy:33)
at mdz.ccuhistorian.HistorianSystem.<init>(HistorianSystem.groovy:34)
at mdz.ccuhistorian.Main.start(Main.groovy:100)
at mdz.ccuhistorian.Main.access$0(Main.groovy)
at mdz.ccuhistorian.Main$_run_closure4.doCall(Main.groovy:77)
at mdz.ccuhistorian.Main$_run_closure4.call(Main.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.Main.run(Main.groovy:77)
at mdz.ccuhistorian.Main.main(Main.groovy:45)
Caused by: java.lang.IllegalStateException: The file is locked: nio:/opt/ccu-historian/data/history.mv.db [1.4.197/7]
at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:870)
at org.h2.mvstore.FileStore.open(FileStore.java:173)
at org.h2.mvstore.MVStore.<init>(MVStore.java:350)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2934)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:155)
... 26 more
2019-08-22 00:07:41|FINE |Reading configuration file ccu-historian.config
2019-08-22 00:07:41|FINE |Log system configuration:
2019-08-22 00:07:41|FINE |logSystem.consoleLevel=Level.FINE
2019-08-22 00:07:41|FINE |logSystem.fileLevel=Level.OFF
2019-08-22 00:07:41|FINE |logSystem.fileName='/opt/ccu-historian/ccu-historian-%g.log'
2019-08-22 00:07:41|FINE |logSystem.fileLimit=1000000
2019-08-22 00:07:41|FINE |logSystem.fileCount=5
2019-08-22 00:07:41|FINE |logSystem.binRpcLevel=Level.FINE
2019-08-22 00:07:41|INFO |Starting base services
2019-08-22 00:07:41|INFO |Connecting to database
2019-08-22 00:07:41|FINE |database.dir='/opt/ccu-historian/data'
2019-08-22 00:07:41|FINE |database.name='history'
2019-08-22 00:07:41|FINE |database.user='sa'
2019-08-22 00:07:41|FINE |database.webEnable=true
2019-08-22 00:07:41|FINE |database.webPort=8082
2019-08-22 00:07:41|FINE |database.webAllowOthers=true
2019-08-22 00:07:41|FINE |database.tcpEnable=false
2019-08-22 00:07:41|FINE |database.tcpPort=9092
2019-08-22 00:07:41|FINE |database.tcpAllowOthers=false
2019-08-22 00:07:41|FINE |database.pgEnable=false
2019-08-22 00:07:41|FINE |database.pgPort=5435
2019-08-22 00:07:41|FINE |database.pgAllowOthers=false
2019-08-22 00:07:41|FINE |database.backup=''
2019-08-22 00:07:43|FINE |Database: Preparing table DATA_POINTS
2019-08-22 00:07:43|INFO |Starting database web server
2019-08-22 00:07:43|FINE |Database management URL: http://127.0.1.1:8082
2019-08-22 00:07:44|FINE |Configuring interfaces
2019-08-22 00:07:44|FINE |All devices: Reading configuration option 'historianBinRpcPort':
2019-08-22 00:07:44|FINE |All devices: Reading configuration option 'historianXmlRpcPort':
2019-08-22 00:07:44|FINE |All devices: Reading configuration option 'historianAddress': 192.168.178.46
2019-08-22 00:07:44|INFO |Setting up device 1
2019-08-22 00:07:44|FINE |Device 1: Reading configuration option 'type': CCU2
2019-08-22 00:07:44|FINE |Device 1: Reading configuration option 'address': 192.168.178.49
2019-08-22 00:07:44|FINE |Device 1: Reading configuration option 'reinitTimeout':
2019-08-22 00:07:44|FINE |Device 1: Reading configuration option 'prefix':
2019-08-22 00:07:44|FINE |Device 1: Reading configuration option 'writeAccess':
2019-08-22 00:07:44|FINE |Device 1: Reading configuration option 'sysVarDataCycle':
2019-08-22 00:07:44|FINE |Device 1: Reading configuration option 'timeout':
2019-08-22 00:07:44|INFO |Creating HM script client for http://192.168.178.49:8181/tclrega.exe
2019-08-22 00:07:44|INFO |Setting up plug-in 1
2019-08-22 00:07:44|FINE |Plug-in 1: Reading configuration option 'type': CUXD
2019-08-22 00:07:44|FINE |Device 1: Reading configuration option 'watchdogProgram':
2019-08-22 00:07:44|FINE |Device 1: Reading configuration option 'watchdogCycle':
2019-08-22 00:07:44|INFO |Configured following interfaces: BidCos-RF, HmIP-RF, SysVar, CUxD
2019-08-22 00:07:44|INFO |Starting interfaces
2019-08-22 00:07:44|INFO |Starting BIN-RPC server on port 2099
2019-08-22 00:07:44|INFO |Starting XML-RPC server on port 2098
2019-08-22 00:07:44|FINE |XML-RPC server address is http://192.168.178.46:2098
2019-08-22 00:07:44|FINE |Calling method 'init' with parameters [binary://192.168.178.46:2099, BidCos-RF]
2019-08-22 00:07:44|INFO |Connecting to 192.168.178.49:2001
2019-08-22 00:07:54|FINE |Stopping XML-RPC server
2019-08-22 00:07:54|INFO |Stopping BIN-RPC server on port 2099
2019-08-22 00:07:54|FINE |Stopping main scheduler
2019-08-22 00:07:54|INFO |Stopping database
2019-08-22 00:07:54|INFO |Stopping base services
2019-08-22 00:07:54|SEVERE |Exception: Read timed out
2019-08-22 00:07:54|SEVERE |Detail: java.net.SocketTimeoutException: Read timed out
at mdz.hc.itf.binrpc.BinRpcClient.receive(BinRpcClient.groovy:104)
at mdz.hc.itf.binrpc.BinRpcClient.call(BinRpcClient.groovy:144)
at mdz.hc.itf.hm.HmBinRpcInterface.init(HmBinRpcInterface.groovy:121)
at mdz.hc.itf.hm.HmBinRpcInterface.start(HmBinRpcInterface.groovy:79)
at mdz.hc.itf.Manager$_start_closure1.doCall(Manager.groovy:60)
at mdz.hc.itf.Manager.start(Manager.groovy:58)
at mdz.ccuhistorian.HistorianSystem.<init>(HistorianSystem.groovy:39)
at mdz.ccuhistorian.Main.start(Main.groovy:100)
at mdz.ccuhistorian.Main.access$0(Main.groovy)
at mdz.ccuhistorian.Main$_run_closure4.doCall(Main.groovy:77)
at mdz.ccuhistorian.Main$_run_closure4.call(Main.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.Main.run(Main.groovy:77)
at mdz.ccuhistorian.Main.main(Main.groovy:45)
Nach langen hin und her habe ich dann zunächst auf historian 2.2.0-Beta 4 ugedatet.
-> historian liess sich immer noch nicht starten. Gleicher Fehler.
Als nächstes habe ich die Datenbank mal gelöscht (Ordner data ist nun leer), neu gebootet und mit sudo java -jar ccu-historian.jar historian starten wollen. Nun kommt der Feher "WARNING|Failed to execute: CREATE TABLE DATA_POINTS" und "|SEVERE |Exception: Tabelle "DATA_POINTS" besteht bereits"
Code: Alles auswählen
pi@RasPi_Historian: /opt/ccu-historian[01;32mpi@RasPi_Historian[00m:[01;34m/opt/ccu-historian $[00m cd /opt/ccu-historiansudo java -jar ccu-historian.jar
2019-08-22 00:50:28|INFO |CCU-Historian V2.2.0-beta.4
2019-08-22 00:50:28|INFO |(C)MDZ (info@ccu-historian.de)
2019-08-22 00:50:29|FINE |Log system configuration:
2019-08-22 00:50:29|FINE |logSystem.consoleLevel=Level.FINE
2019-08-22 00:50:29|FINE |logSystem.fileLevel=Level.OFF
2019-08-22 00:50:29|FINE |logSystem.fileName='/opt/ccu-historian/ccu-historian-%g.log'
2019-08-22 00:50:29|FINE |logSystem.fileLimit=1000000
2019-08-22 00:50:29|FINE |logSystem.fileCount=5
2019-08-22 00:50:29|FINE |logSystem.binRpcLevel=Level.FINE
2019-08-22 00:50:29|INFO |Starting base services
2019-08-22 00:50:29|INFO |Connecting to database
2019-08-22 00:50:29|FINE |database.dir='/opt/ccu-historian/data'
2019-08-22 00:50:29|FINE |database.name='history'
2019-08-22 00:50:29|FINE |database.user='sa'
2019-08-22 00:50:29|FINE |database.webEnable=true
2019-08-22 00:50:29|FINE |database.webPort=8082
2019-08-22 00:50:29|FINE |database.webAllowOthers=true
2019-08-22 00:50:29|FINE |database.tcpEnable=false
2019-08-22 00:50:29|FINE |database.tcpPort=9092
2019-08-22 00:50:29|FINE |database.tcpAllowOthers=false
2019-08-22 00:50:29|FINE |database.pgEnable=false
2019-08-22 00:50:29|FINE |database.pgPort=5435
2019-08-22 00:50:29|FINE |database.pgAllowOthers=false
2019-08-22 00:50:29|FINE |database.backup=''
2019-08-22 00:50:30|FINE |Preparing database
2019-08-22 00:50:30|FINE |Read config: internal.databaseVersion=null
2019-08-22 00:50:30|WARNING|Failed to execute: CREATE TABLE DATA_POINTS (
DP_ID INT IDENTITY, TABLE_NAME VARCHAR NOT NULL,
STATE INT,
INTERFACE VARCHAR NOT NULL, ADDRESS VARCHAR NOT NULL,
IDENTIFIER VARCHAR NOT NULL,
PREPROC_TYPE INT, PREPROC_PARAM DOUBLE,
DISPLAY_NAME VARCHAR, ROOM VARCHAR, FUNCTION VARCHAR, COMMENT VARCHAR,
CUSTOM VARCHAR DEFAULT '{}',
PARAM_SET VARCHAR, TAB_ORDER INT,
MAXIMUM DOUBLE, UNIT VARCHAR,
MINIMUM DOUBLE, CONTROL VARCHAR,
OPERATIONS INT, FLAGS INT,
TYPE VARCHAR, DEFAULT_VALUE DOUBLE
); CREATE UNIQUE INDEX IF NOT EXISTS DATA_POINTS_IDX
ON DATA_POINTS (INTERFACE, ADDRESS, IDENTIFIER) because: Tabelle "DATA_POINTS" besteht bereits
Table "DATA_POINTS" already exists; SQL statement:
CREATE TABLE DATA_POINTS (
DP_ID INT IDENTITY, TABLE_NAME VARCHAR NOT NULL,
STATE INT,
INTERFACE VARCHAR NOT NULL, ADDRESS VARCHAR NOT NULL,
IDENTIFIER VARCHAR NOT NULL,
PREPROC_TYPE INT, PREPROC_PARAM DOUBLE,
DISPLAY_NAME VARCHAR, ROOM VARCHAR, FUNCTION VARCHAR, COMMENT VARCHAR,
CUSTOM VARCHAR DEFAULT '{}',
PARAM_SET VARCHAR, TAB_ORDER INT,
MAXIMUM DOUBLE, UNIT VARCHAR,
MINIMUM DOUBLE, CONTROL VARCHAR,
OPERATIONS INT, FLAGS INT,
TYPE VARCHAR, DEFAULT_VALUE DOUBLE
); CREATE UNIQUE INDEX IF NOT EXISTS DATA_POINTS_IDX
ON DATA_POINTS (INTERFACE, ADDRESS, IDENTIFIER) [42101-197]
2019-08-22 00:50:30|INFO |Stopping database
2019-08-22 00:50:30|SEVERE |Exception: Tabelle "DATA_POINTS" besteht bereits
Table "DATA_POINTS" already exists; SQL statement:
CREATE TABLE DATA_POINTS (
DP_ID INT IDENTITY, TABLE_NAME VARCHAR NOT NULL,
STATE INT,
INTERFACE VARCHAR NOT NULL, ADDRESS VARCHAR NOT NULL,
IDENTIFIER VARCHAR NOT NULL,
PREPROC_TYPE INT, PREPROC_PARAM DOUBLE,
DISPLAY_NAME VARCHAR, ROOM VARCHAR, FUNCTION VARCHAR, COMMENT VARCHAR,
CUSTOM VARCHAR DEFAULT '{}',
PARAM_SET VARCHAR, TAB_ORDER INT,
MAXIMUM DOUBLE, UNIT VARCHAR,
MINIMUM DOUBLE, CONTROL VARCHAR,
OPERATIONS INT, FLAGS INT,
TYPE VARCHAR, DEFAULT_VALUE DOUBLE
); CREATE UNIQUE INDEX IF NOT EXISTS DATA_POINTS_IDX
ON DATA_POINTS (INTERFACE, ADDRESS, IDENTIFIER) [42101-197]
2019-08-22 00:50:30|SEVERE |Detail: org.h2.jdbc.JdbcSQLException: Tabelle "DATA_POINTS" besteht bereits
Table "DATA_POINTS" already exists; SQL statement:
CREATE TABLE DATA_POINTS (
DP_ID INT IDENTITY, TABLE_NAME VARCHAR NOT NULL,
STATE INT,
INTERFACE VARCHAR NOT NULL, ADDRESS VARCHAR NOT NULL,
IDENTIFIER VARCHAR NOT NULL,
PREPROC_TYPE INT, PREPROC_PARAM DOUBLE,
DISPLAY_NAME VARCHAR, ROOM VARCHAR, FUNCTION VARCHAR, COMMENT VARCHAR,
CUSTOM VARCHAR DEFAULT '{}',
PARAM_SET VARCHAR, TAB_ORDER INT,
MAXIMUM DOUBLE, UNIT VARCHAR,
MINIMUM DOUBLE, CONTROL VARCHAR,
OPERATIONS INT, FLAGS INT,
TYPE VARCHAR, DEFAULT_VALUE DOUBLE
); CREATE UNIQUE INDEX IF NOT EXISTS DATA_POINTS_IDX
ON DATA_POINTS (INTERFACE, ADDRESS, IDENTIFIER) [42101-197]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
at org.h2.message.DbException.get(DbException.java:179)
at org.h2.message.DbException.get(DbException.java:155)
at org.h2.command.ddl.CreateTable.update(CreateTable.java:86)
at org.h2.command.CommandContainer.update(CommandContainer.java:102)
at org.h2.command.Command.executeUpdate(Command.java:261)
at org.h2.command.CommandList.update(CommandList.java:42)
at org.h2.command.Command.executeUpdate(Command.java:261)
at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:233)
at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:205)
at mdz.ccuhistorian.Database.prepareDatabase(Database.groovy:674)
at mdz.ccuhistorian.Database.<init>(Database.groovy:73)
at mdz.ccuhistorian.DatabaseSystem.<init>(DatabaseSystem.groovy:33)
at mdz.ccuhistorian.HistorianSystem.<init>(HistorianSystem.groovy:34)
at mdz.ccuhistorian.Main.start(Main.groovy:102)
at mdz.ccuhistorian.Main.access$0(Main.groovy)
at mdz.ccuhistorian.Main$_run_closure4.doCall(Main.groovy:79)
at mdz.ccuhistorian.Main$_run_closure4.call(Main.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.Main.run(Main.groovy:79)
at mdz.ccuhistorian.Main.main(Main.groovy:47)
Ich finde sonst keine anderen Einstellmöglichkeiten, Habe den ganzen Tag schon Tutorials hoch und runter gelesen und mit "sudo java -jar ccu-historian.jar -loglevel finest" versucht. Loggen tut er jedoch nur im Putty.log, nichts im ccu-historian Verzeichnis, obwohl ich auch hier
Code: Alles auswählen
[code]logSystem.consoleLevel=Level.FINE
logSystem.fileLevel=Level.FINE // logSystem.fileLevel=Level.OFF
logSystem.fileName='/opt/ccu-historian/ccu-historian-%g.log'
logSystem.fileLimit=1000000
logSystem.fileCount=5
logSystem.binRpcLevel=Level.FINE
IUnd wie spiele ich am besten meine alte Datenbank zurück. Sind immerhin auch 800 MB
Hat irgendjemand noch ne Idee?
Danke euch
Chris