CCU Historian starte nicht mehr: Failed to execute: CREATE TABLE DATA_POINTS

Das Langzeitarchiv für HomeMatic

Moderator: Co-Administratoren

Antworten
holydiver
Beiträge: 72
Registriert: 25.04.2016, 21:43
Hat sich bedankt: 1 Mal

CCU Historian starte nicht mehr: Failed to execute: CREATE TABLE DATA_POINTS

Beitrag von holydiver » 22.08.2019, 16:15

Hallo zusammen

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)
Muss ich noch irgendwo die "DATA PONTS" löschen?
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
aktiviert habe.


IUnd wie spiele ich am besten meine alte Datenbank zurück. Sind immerhin auch 800 MB :roll:
Hat irgendjemand noch ne Idee?



Danke euch

Chris

Mathias
Beiträge: 1796
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 261 Mal
Kontaktdaten:

Re: CCU Historian starte nicht mehr: Failed to execute: CREATE TABLE DATA_POINTS

Beitrag von Mathias » 23.08.2019, 07:14

Hallo,
läuft auch kein Historian bereits im Hintergrung?
Versuche bitte ein Backup zu erstellen und mit der neuen Version wieder herzustellen.
Gruß
Mathias

holydiver
Beiträge: 72
Registriert: 25.04.2016, 21:43
Hat sich bedankt: 1 Mal

Re: CCU Historian starte nicht mehr: Failed to execute: CREATE TABLE DATA_POINTS

Beitrag von holydiver » 23.08.2019, 10:03

Hallo Mathias

Ein Autostart ist ja nicht eingebaut, oder? Gestartet habe ich nichts nach dem Reboot. Wie kann ich feststellen, ob ein historian im Hintergrund läuft?

Du meinst ein Backup der SD oder der Datenbank? Gibt es eine eingebaute Backupfunktion?
Ich hatte die Datenbank history.mv.db und history.trend db gelöscht und neu gestartet. Dann jat er die beiden Datenbanken neu erstellt. Quasi mit allen Datenpunkten.


Chris

holydiver
Beiträge: 72
Registriert: 25.04.2016, 21:43
Hat sich bedankt: 1 Mal

Re: CCU Historian starte nicht mehr: Failed to execute: CREATE TABLE DATA_POINTS

Beitrag von holydiver » 05.10.2019, 01:03

Hallo

So, ich habe nun Zeit gefunden noch weiter zu testen.
Das System läuft seit August ja nicht mehr.

Ich habe nun eine neue SD-Karte mit dem letzten Raspbian (Buster) aufgesetzt und die letzte Version von Historian draufkopiert. Die alte DAtenbank habe ich laut Anleitung auch in den data-Ordner gelegt. Alle Rechte soweit vergeben und versucht Historian zu starten:
Als erstes machte mich eine Meldung stutzig: WARNING: An illegal reflective access operation has occurred :shock: :shock: Kann ich noch nicht zuordnen.
Dann Lief der Historian an mit der gleichen Fehlermeldung wie auf der alten Karte: Failed to execute: CREATE TABLE DATA_POINTS

Code: Alles auswählen

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.vmplugin.v7.Java7$1 (file:/opt/ccu-historian/lib/groovy-2.5.7-indy.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class,int)
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.vmplugin.v7.Java7$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2019-10-04 23:52:51|INFO   |CCU-Historian V2.2.1
2019-10-04 23:52:52|INFO   |(C)MDZ (info@ccu-historian.de)
2019-10-04 23:52:55|FINE   |Log system configuration:
2019-10-04 23:52:55|FINE   |logSystem.consoleLevel=Level.FINE
2019-10-04 23:52:55|FINE   |logSystem.fileLevel=Level.OFF
2019-10-04 23:52:55|FINE   |logSystem.fileName='/opt/ccu-historian/ccu-historian-%g.log'
2019-10-04 23:52:55|FINE   |logSystem.fileLimit=1000000
2019-10-04 23:52:55|FINE   |logSystem.fileCount=5
2019-10-04 23:52:56|FINE   |logSystem.binRpcLevel=Level.FINE
2019-10-04 23:52:56|INFO   |Starting base services
2019-10-04 23:52:56|INFO   |Connecting to database
2019-10-04 23:52:56|FINE   |database.dir='/opt/ccu-historian/data'
2019-10-04 23:52:56|FINE   |database.name='history'
2019-10-04 23:52:56|FINE   |database.user='sa'
2019-10-04 23:52:56|FINE   |database.webEnable=true
2019-10-04 23:52:56|FINE   |database.webPort=8082
2019-10-04 23:52:56|FINE   |database.webAllowOthers=true
2019-10-04 23:52:56|FINE   |database.tcpEnable=false
2019-10-04 23:52:56|FINE   |database.tcpPort=9092
2019-10-04 23:52:56|FINE   |database.tcpAllowOthers=false
2019-10-04 23:52:56|FINE   |database.pgEnable=false
2019-10-04 23:52:56|FINE   |database.pgPort=5435
2019-10-04 23:52:56|FINE   |database.pgAllowOthers=false
2019-10-04 23:52:56|FINE   |database.backup=''
2019-10-04 23:53:20|FINE   |Preparing database
2019-10-04 23:53:20|FINE   |Read config: internal.databaseVersion=null
2019-10-04 23:53:21|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: 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
                        ); [42101-199]
2019-10-04 23:53:21|INFO   |Stopping database
2019-10-04 23:56:21|SEVERE |Exception: 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
                        ); [42101-199]
2019-10-04 23:56:21|SEVERE |Detail: org.h2.jdbc.JdbcSQLSyntaxErrorException: 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
                        ); [42101-199]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:451)
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:427)
        at org.h2.message.DbException.get(DbException.java:205)
        at org.h2.message.DbException.get(DbException.java:181)
        at org.h2.command.ddl.CreateTable.update(CreateTable.java:85)
        at org.h2.command.CommandContainer.update(CommandContainer.java:133)
        at org.h2.command.Command.executeUpdate(Command.java:267)
        at org.h2.command.CommandList.update(CommandList.java:62)
        at org.h2.command.Command.executeUpdate(Command.java:267)
        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:646)
        at mdz.ccuhistorian.Database.<init>(Database.groovy:72)
        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 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at mdz.ccuhistorian.Main$_run_closure4.doCall(Main.groovy:77)
        at mdz.ccuhistorian.Main$_run_closure4.doCall(Main.groovy)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        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)
2019-10-04 23:56:51|FINE   |Reading configuration file ccu-historian.config
2019-10-04 23:56:52|FINE   |Log system configuration:
2019-10-04 23:56:52|FINE   |logSystem.consoleLevel=Level.FINE
2019-10-04 23:56:52|FINE   |logSystem.fileLevel=Level.OFF
2019-10-04 23:56:52|FINE   |logSystem.fileName='/opt/ccu-historian/ccu-historian-%g.log'
2019-10-04 23:56:52|FINE   |logSystem.fileLimit=1000000
2019-10-04 23:56:52|FINE   |logSystem.fileCount=5
2019-10-04 23:56:52|FINE   |logSystem.binRpcLevel=Level.FINE
2019-10-04 23:56:52|INFO   |Starting base services
2019-10-04 23:56:52|INFO   |Connecting to database
2019-10-04 23:56:52|FINE   |database.dir='/opt/ccu-historian/data'
2019-10-04 23:56:52|FINE   |database.name='history'
2019-10-04 23:56:52|FINE   |database.user='sa'
2019-10-04 23:56:52|FINE   |database.webEnable=true
2019-10-04 23:56:52|FINE   |database.webPort=8082
2019-10-04 23:56:52|FINE   |database.webAllowOthers=true
2019-10-04 23:56:52|FINE   |database.tcpEnable=false
2019-10-04 23:56:52|FINE   |database.tcpPort=9092
2019-10-04 23:56:52|FINE   |database.tcpAllowOthers=false
2019-10-04 23:56:52|FINE   |database.pgEnable=false
2019-10-04 23:56:52|FINE   |database.pgPort=5435
2019-10-04 23:56:52|FINE   |database.pgAllowOthers=false
2019-10-04 23:56:52|FINE   |database.backup=''
2019-10-04 23:57:11|FINE   |Preparing database
2019-10-04 23:57:11|FINE   |Read config: internal.databaseVersion=null
2019-10-04 23:57:11|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: 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
                        ); [42101-199]
2019-10-04 23:57:11|INFO   |Stopping database

Was ist da nur faul? Kann es an der CCU (PIVCCU3 auf Raspi3) liegen?


Jemand eine Idee? :roll:



Chris

Mathias
Beiträge: 1796
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 261 Mal
Kontaktdaten:

Re: CCU Historian starte nicht mehr: Failed to execute: CREATE TABLE DATA_POINTS

Beitrag von Mathias » 05.10.2019, 13:55

holydiver hat geschrieben:
05.10.2019, 01:03

Code: Alles auswählen

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.vmplugin.v7.Java7$1 (file:/opt/ccu-historian/lib/groovy-2.5.7-indy.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class,int)
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.vmplugin.v7.Java7$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Die Warn-Meldung ist normal, wenn eine Java-Version größer als 8 verwendet wird. Sie kann ignoriert werden.
holydiver hat geschrieben:
05.10.2019, 01:03

Code: Alles auswählen

2019-10-04 23:53:20|FINE   |Read config: internal.databaseVersion=null
2019-10-04 23:53:21|WARNING|Failed to execute: CREATE TABLE DATA_POINTS (
...
Das ist schon merkwürdiger. internal.databaseVersion=null wird eigentlich nur bei einer leeren Datenbank gemeldet. Daraufhin wird dann die Tabelle DATA_POINTS erst angelegt.

Bitte erstelle mal eine Datei SetVersionTo1.sql mit folgendem Inhalt:

Code: Alles auswählen

UPDATE CONFIG SET VALUE='1' WHERE NAME='internal.databaseVersion';
Den CCU-Historian stoppen und dann die Datei einmal auf der Konsole mit dem Historian ausführen:

Code: Alles auswählen

cd <Verzeichnis vom Historian>
java -jar ccu-historian.jar -runscript SetVersionTo1.sql
Bei einer Add-On-Installation auf CCU3/RM (s.a. Historian auf RM):

Code: Alles auswählen

/usr/local/etc/config/rc.d/ccu-historian stop
/opt/java/bin/java -jar ccu-historian.jar -config ../ccu-historian.config -runscript SetVersionTo1.sql
/usr/local/etc/config/rc.d/ccu-historian start
Gruß
Mathias

holydiver
Beiträge: 72
Registriert: 25.04.2016, 21:43
Hat sich bedankt: 1 Mal

Re: CCU Historian starte nicht mehr: Failed to execute: CREATE TABLE DATA_POINTS

Beitrag von holydiver » 05.10.2019, 22:58

Hallo Mathias

Danke für deine promte Hilfe.
Ich habe die Datei angelegt (WinSCP) und wie angegen gestartet (Putty). Der Historian läuft auf einem eigenen Raspi3. Prozess lief durch:

Code: Alles auswählen

pi@raspberrypi:/opt/ccu-historian $ java -jar ccu-historian.jar -runscript SetVersionTo1.sql
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.vmplugin.v7.Java7$1 (file:/opt/ccu-historian/lib/groovy-2.5.7-indy.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class,int)
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.vmplugin.v7.Java7$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2019-10-05 21:29:49|INFO   |CCU-Historian V2.2.1
2019-10-05 21:29:49|INFO   |(C)MDZ (info@ccu-historian.de)
2019-10-05 21:29:52|FINE   |Log system configuration:
2019-10-05 21:29:52|FINE   |logSystem.consoleLevel=Level.FINE
2019-10-05 21:29:52|FINE   |logSystem.fileLevel=Level.OFF
2019-10-05 21:29:52|FINE   |logSystem.fileName='/opt/ccu-historian/ccu-historian-%g.log'
2019-10-05 21:29:52|FINE   |logSystem.fileLimit=1000000
2019-10-05 21:29:52|FINE   |logSystem.fileCount=5
2019-10-05 21:29:52|FINE   |logSystem.binRpcLevel=Level.FINE
2019-10-05 21:29:53|INFO   |Starting base services
2019-10-05 21:29:53|INFO   |Running script SetVersionTo1.sql on database
2019-10-05 21:29:53|FINE   |database.dir='/opt/ccu-historian/data'
2019-10-05 21:29:53|FINE   |database.name='history'
2019-10-05 21:29:53|FINE   |database.user='sa'
2019-10-05 21:29:53|FINE   |database.webEnable=true
2019-10-05 21:29:53|FINE   |database.webPort=8082
2019-10-05 21:29:53|FINE   |database.webAllowOthers=true
2019-10-05 21:29:53|FINE   |database.tcpEnable=false
2019-10-05 21:29:53|FINE   |database.tcpPort=9092
2019-10-05 21:29:53|FINE   |database.tcpAllowOthers=false
2019-10-05 21:29:53|FINE   |database.pgEnable=false
2019-10-05 21:29:53|FINE   |database.pgPort=5435
2019-10-05 21:29:53|FINE   |database.pgAllowOthers=false
2019-10-05 21:29:53|FINE   |database.backup=''
2019-10-05 21:32:20|INFO   |Script run completed
Da der Historian nicht erreichbar war ging ich davon aus, dass er noch gestartet werden muss. Also "sudo java -jar /opt/ccu-historian/ccu-historian.jar" ausgeführt. :wink:
Leider ohne Erfolg :? Gleicher Fehler wie vorher. Da steh immer noch/wieder internal.databaseVersion=null

Code: Alles auswählen

pi@raspberrypi:/opt/ccu-historian $ sudo java -jar /opt/ccu-historian/ccu-historian.jar
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.vmplugin.v7.Java7$1 (file:/opt/ccu-historian/lib/groovy-2.5.7-indy.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class,int)
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.vmplugin.v7.Java7$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2019-10-05 21:38:26|INFO   |CCU-Historian V2.2.1
2019-10-05 21:38:26|INFO   |(C)MDZ (info@ccu-historian.de)
2019-10-05 21:38:29|FINE   |Log system configuration:
2019-10-05 21:38:29|FINE   |logSystem.consoleLevel=Level.FINE
2019-10-05 21:38:30|FINE   |logSystem.fileLevel=Level.OFF
2019-10-05 21:38:30|FINE   |logSystem.fileName='/opt/ccu-historian/ccu-historian-%g.log'
2019-10-05 21:38:30|FINE   |logSystem.fileLimit=1000000
2019-10-05 21:38:30|FINE   |logSystem.fileCount=5
2019-10-05 21:38:30|FINE   |logSystem.binRpcLevel=Level.FINE
2019-10-05 21:38:30|INFO   |Starting base services
2019-10-05 21:38:30|INFO   |Connecting to database
2019-10-05 21:38:30|FINE   |database.dir='/opt/ccu-historian/data'
2019-10-05 21:38:30|FINE   |database.name='history'
2019-10-05 21:38:30|FINE   |database.user='sa'
2019-10-05 21:38:30|FINE   |database.webEnable=true
2019-10-05 21:38:30|FINE   |database.webPort=8082
2019-10-05 21:38:30|FINE   |database.webAllowOthers=true
2019-10-05 21:38:30|FINE   |database.tcpEnable=false
2019-10-05 21:38:30|FINE   |database.tcpPort=9092
2019-10-05 21:38:30|FINE   |database.tcpAllowOthers=false
2019-10-05 21:38:30|FINE   |database.pgEnable=false
2019-10-05 21:38:30|FINE   |database.pgPort=5435
2019-10-05 21:38:30|FINE   |database.pgAllowOthers=false
2019-10-05 21:38:30|FINE   |database.backup=''
2019-10-05 21:38:42|FINE   |Preparing database
2019-10-05 21:38:42|FINE   |Read config: internal.databaseVersion=null
2019-10-05 21:38:42|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: 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
                        ); [42101-199]
2019-10-05 21:38:42|INFO   |Stopping database
2019-10-05 21:40:32|SEVERE |Exception: 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
                        ); [42101-199]
2019-10-05 21:40:32|SEVERE |Detail: org.h2.jdbc.JdbcSQLSyntaxErrorException: 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
                        ); [42101-199]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:451)
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:427)
        at org.h2.message.DbException.get(DbException.java:205)
        at org.h2.message.DbException.get(DbException.java:181)
        at org.h2.command.ddl.CreateTable.update(CreateTable.java:85)
        at org.h2.command.CommandContainer.update(CommandContainer.java:133)
        at org.h2.command.Command.executeUpdate(Command.java:267)
        at org.h2.command.CommandList.update(CommandList.java:62)
        at org.h2.command.Command.executeUpdate(Command.java:267)
        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:646)
        at mdz.ccuhistorian.Database.<init>(Database.groovy:72)
        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 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at mdz.ccuhistorian.Main$_run_closure4.doCall(Main.groovy:77)
        at mdz.ccuhistorian.Main$_run_closure4.doCall(Main.groovy)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        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)
2019-10-05 21:41:02|FINE   |Reading configuration file ccu-historian.config
2019-10-05 21:41:02|FINE   |Log system configuration:
2019-10-05 21:41:02|FINE   |logSystem.consoleLevel=Level.FINE
2019-10-05 21:41:02|FINE   |logSystem.fileLevel=Level.OFF
2019-10-05 21:41:02|FINE   |logSystem.fileName='/opt/ccu-historian/ccu-historian-%g.log'
2019-10-05 21:41:02|FINE   |logSystem.fileLimit=1000000
2019-10-05 21:41:02|FINE   |logSystem.fileCount=5
2019-10-05 21:41:02|FINE   |logSystem.binRpcLevel=Level.FINE
2019-10-05 21:41:02|INFO   |Starting base services
2019-10-05 21:41:02|INFO   |Connecting to database
2019-10-05 21:41:02|FINE   |database.dir='/opt/ccu-historian/data'
2019-10-05 21:41:02|FINE   |database.name='history'
2019-10-05 21:41:02|FINE   |database.user='sa'
2019-10-05 21:41:02|FINE   |database.webEnable=true
2019-10-05 21:41:02|FINE   |database.webPort=8082
2019-10-05 21:41:02|FINE   |database.webAllowOthers=true
2019-10-05 21:41:02|FINE   |database.tcpEnable=false
2019-10-05 21:41:02|FINE   |database.tcpPort=9092
2019-10-05 21:41:02|FINE   |database.tcpAllowOthers=false
2019-10-05 21:41:02|FINE   |database.pgEnable=false
2019-10-05 21:41:02|FINE   |database.pgPort=5435
2019-10-05 21:41:02|FINE   |database.pgAllowOthers=false
2019-10-05 21:41:02|FINE   |database.backup=''
2019-10-05 21:41:09|FINE   |Preparing database
2019-10-05 21:41:09|FINE   |Read config: internal.databaseVersion=null
2019-10-05 21:41:09|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: 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
                        ); [42101-199]
2019-10-05 21:41:09|INFO   |Stopping database
Versucht er eigentlich dann immer wieder den Historian zu starten? Weil der Fehler ein paar mal hintereinander kommt.

Wie oben beschrieben hatte ich den gleichen Effekt, wenn ich die Datenbank gelöscht habe und den Hist. gestartet habe.
Eigentlich lief der Historian, bis ich bei einem Update der CCU (damals PiVCCU2 auf Raspi3) diese abgeschossen hatte. Dann musste/habe ich PiVCCU3 aufsetzen. Ab da lief der Hist. nicht mehr. In der .config muss man laut Anleitung CCU2 auswählen, was ich auch tat (devices.device1.type=CCU2).


Ist es von Nachteil, wenn ich das Loglevel auf FINE lasse? Wenn ich es umstellen will muss ich Historian stoppen, umstellen und dann neu starten?

Als nächstes muss ich mich mal mit der Datenbank-Kompromierung befassen. Die Datenbank wird langsam schon recht groß. aber jetzt muss es est mal wieder laufen.


Danke dir

Grüße
Chris

Mathias
Beiträge: 1796
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 261 Mal
Kontaktdaten:

Re: CCU Historian starte nicht mehr: Failed to execute: CREATE TABLE DATA_POINTS

Beitrag von Mathias » 06.10.2019, 08:38

Dann bitte folgendes SQL-Skript ausführen, also wieder in eine Datei scchreiben und -runscript ausführen:

Code: Alles auswählen

INSERT INTO CONFIG VALUES ('internal.databaseVersion', '1')
Vorher den Historian stoppen.

Wenn Fehler passieren startet der Historian sich selber neu.

LogLevel.FINE ist OK. Die Änderung übernimmt der Historian auch im laufenden Betrieb.

Bei einer Neuinstallation vom CCU-Historian mit einer leeren Datenbank darf der Fehler natürlich nicht kommen.

holydiver
Beiträge: 72
Registriert: 25.04.2016, 21:43
Hat sich bedankt: 1 Mal

Re: CCU Historian starte nicht mehr: Failed to execute: CREATE TABLE DATA_POINTS

Beitrag von holydiver » 06.10.2019, 13:38

Hallo Mathias

Das hat jetzt funktioniert :D . Perfekt. Merci!!

Historian scheint jetzt zu laufen. Ich kann über das Webinterface Trends aufrufen. Dauert aber recht lange, bis er was anzeigt. Evtl. weil die Datenbank recht groß ist. Die alten Werte scheinen auch noch da zu sein. Mal googeln, wie man die Datenbank verkleinern kann.

Zwei Dinge sind mir noch aufgefallen:
- Im Putty werden die ganze Zeit Meldungen und Werte angezeigt. Ist das korrekt? Wie kann ich den Historian denn stoppen?
- In der Putty Historie gibt es noch Severe Fehler (Timeout)

Code: Alles auswählen

2019-10-06 12:32:10|SEVERE |Exception: Connection timed out (Connection timed out)
2019-10-06 12:32:10|SEVERE |Detail: java.net.ConnectException: Connection timed out (Connection timed out)
        at mdz.hc.itf.binrpc.BinRpcClient.connect(BinRpcClient.groovy:60)
        at mdz.hc.itf.binrpc.BinRpcClient.send(BinRpcClient.groovy:74)
        at mdz.hc.itf.binrpc.BinRpcClient.call(BinRpcClient.groovy:142)
        at mdz.hc.itf.hm.HmBinRpcInterface.init(HmBinRpcInterface.groovy:124)
        at mdz.hc.itf.hm.HmReinitTask$_checkInterfaces_closure1$_closure3$_closure4.doCall(HmReinitTask.groovy:83)
        at mdz.hc.itf.hm.HmReinitTask$_checkInterfaces_closure1$_closure3$_closure4.call(HmReinitTask.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.hc.itf.hm.HmReinitTask$_checkInterfaces_closure1$_closure3.doCall(HmReinitTask.groovy:82)
        at mdz.hc.itf.hm.HmReinitTask$_checkInterfaces_closure1$_closure3.call(HmReinitTask.groovy)
        at mdz.hc.itf.hm.HmReinitTask$_checkInterfaces_closure1.doCall(HmReinitTask.groovy:77)
        at mdz.hc.itf.hm.HmReinitTask$_checkInterfaces_closure1.call(HmReinitTask.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.hc.itf.hm.HmReinitTask.checkInterfaces(HmReinitTask.groovy:73)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2019-10-06 12:32:37|FINE   |Reading system variable values
Der Fehler kommt immer wieder.


Ich will jetzt noch den Buffer aktivieren, damit nicht alle Sekunde auf die SD geschrieben wird. Hierzu gibt es ja die Beschreibung im Handbuch. Wie stoppe ich den Historian, damit ich die neue Config einspielen kannn? Oder reicht eine Änderung in der Config und einfaches abspeichern?
Und die Komprimierung muss ich noch in der Datenbank einstellen.

Danke dir schon mal!!!



Chris

Mathias
Beiträge: 1796
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 261 Mal
Kontaktdaten:

Re: CCU Historian starte nicht mehr: Failed to execute: CREATE TABLE DATA_POINTS

Beitrag von Mathias » 06.10.2019, 18:41

holydiver hat geschrieben:
06.10.2019, 13:38
- Im Putty werden die ganze Zeit Meldungen und Werte angezeigt. Ist das korrekt? Wie kann ich den Historian denn stoppen?
Wenn der Historian auf der Konsole im Vordergrund läuft, kann er mit Strg-C gestoppt werden. Damit er auch nach dem Abmelden von der Konsole weiter läuft, muss er natürlich als Dienst eingerichtet werden.
holydiver hat geschrieben:
06.10.2019, 13:38
- In der Putty Historie gibt es noch Severe Fehler (Timeout)

Code: Alles auswählen

2019-10-06 12:32:10|SEVERE |Exception: Connection timed out (Connection timed out)
2019-10-06 12:32:10|SEVERE |Detail: java.net.ConnectException: Connection timed out (Connection timed out)
        at mdz.hc.itf.binrpc.BinRpcClient.connect(BinRpcClient.groovy:60)
...
Hast Du vielleicht CUxD oder HMWLGW in der ccu-historian.config angegeben, obwohl Du sie nicht hast?
holydiver hat geschrieben:
06.10.2019, 13:38
Wie stoppe ich den Historian, damit ich die neue Config einspielen kannn? Oder reicht eine Änderung in der Config und einfaches abspeichern?
Die Konfigurationsdatei kann während des Betriebs geändert werden. Sie wird bei Änderung nach ca. 20 Sek. neu geladen.

Gruß
Mathias

holydiver
Beiträge: 72
Registriert: 25.04.2016, 21:43
Hat sich bedankt: 1 Mal

Re: CCU Historian starte nicht mehr: Failed to execute: CREATE TABLE DATA_POINTS

Beitrag von holydiver » 07.10.2019, 23:47

Hallo Mathias

Hatte bei der Neuinstallation vergessen den Autostart zu installieren. Habe ich nachgeholt, jetzt gehts. (script unter /etc/init.d)

CuxD habe ich am laufen und ist auch konfiguriert. Vielleicht, weil CuxD noch nix geschrieben hatte?

Bis jetzt werden schön Werte geschrieben. Bin am Aussortieren, was ich nicht benötige, damit die Datei nicht so groß wird. Leider gibt es nirgends eine schöne Übersicht über die verschiedenen Parameter. Manche tauchen auch mehrfach pro Gerät auf, wenn es mehrere Kanäle hat (LOWBAT beim 8-fach Sensor oder Heizungsaktor).


Ich danke dir recht sakrich.
Auch wenn ich leider nicht so recht kapiere, warum die von dir via script eingefügte 1 das jetzt gerichtet hat. Respekt :idea:


Chris

Antworten

Zurück zu „CCU-Historian“