Re: JVerein läuft nicht - ApplicationException
Verfasst: Mittwoch 25. Januar 2017, 21:06
Kann es sein dass Du Java in der 64-bit-Version installiert hast und RazorSQL oder LibreOffice aber in der 32-bit-Version? Oder umgekehrt?
Open Source Vereinsverwaltung
https://jverein-forum.de/
Code: Alles auswählen
01-27 10:22:00 jdbc[2]: exception
org.h2.jdbc.JdbcSQLException: Doppelter Feldname "BETRAGMONATLICH"
Duplicate column name "BETRAGMONATLICH"; SQL statement:
ALTER TABLE beitragsgruppe ADD betragmonatlich DOUBLE [42121-172]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:169)
at org.h2.message.DbException.get(DbException.java:146)
at org.h2.table.Table.setColumns(Table.java:383)
at org.h2.table.TableBase.<init>(TableBase.java:35)
at org.h2.table.RegularTable.<init>(RegularTable.java:74)
at org.h2.schema.Schema.createTable(Schema.java:560)
at org.h2.command.ddl.AlterTableAlterColumn.cloneTableStructure(AlterTableAlterColumn.java:311)
at org.h2.command.ddl.AlterTableAlterColumn.copyData(AlterTableAlterColumn.java:220)
at org.h2.command.ddl.AlterTableAlterColumn.update(AlterTableAlterColumn.java:156)
at org.h2.command.CommandContainer.update(CommandContainer.java:79)
at org.h2.command.Command.executeUpdate(Command.java:235)
at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:127)
at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:112)
at de.willuhn.sql.ScriptExecutor.execute(ScriptExecutor.java:168)
at de.jost_net.JVerein.server.DDLTool.AbstractDDLUpdate.execute(AbstractDDLUpdate.java:89)
at de.jost_net.JVerein.server.DDLTool.AbstractDDLUpdate.execute(AbstractDDLUpdate.java:76)
at de.jost_net.JVerein.server.DDLTool.Updates.Update0373.run(Update0373.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at de.jost_net.JVerein.server.JVereinUpdateProvider.callMethod2(JVereinUpdateProvider.java:265)
at de.jost_net.JVerein.server.JVereinUpdateProvider.<init>(JVereinUpdateProvider.java:93)
at de.jost_net.JVerein.server.DBSupportH2Impl.checkConsistency(DBSupportH2Impl.java:170)
at de.jost_net.JVerein.server.JVereinDBServiceImpl.checkConsistency(JVereinDBServiceImpl.java:114)
at de.jost_net.JVerein.JVereinPlugin$1.call(JVereinPlugin.java:106)
at de.jost_net.JVerein.JVereinPlugin.call(JVereinPlugin.java:203)
at de.jost_net.JVerein.JVereinPlugin.init(JVereinPlugin.java:99)
at de.willuhn.jameica.plugin.PluginLoader.initPlugin(PluginLoader.java:398)
at de.willuhn.jameica.plugin.PluginLoader.init(PluginLoader.java:243)
at de.willuhn.jameica.services.PluginService.init(PluginService.java:42)
at de.willuhn.boot.BootLoader.resolve(BootLoader.java:139)
at de.willuhn.boot.BootLoader.resolve(BootLoader.java:119)
at de.willuhn.boot.BootLoader.getBootable(BootLoader.java:72)
at de.willuhn.jameica.system.Application.init(Application.java:106)
at de.willuhn.jameica.system.Application.newInstance(Application.java:90)
at de.willuhn.jameica.Main.main(Main.java:78)
Nur die Datenbank.DIG hat geschrieben:Die Fehlermeldung deutet darauf hin dass die installierte JVerein-Programmversion ein Update der Datenbank auf eine höhere (Datenbank-)Version vornehmen will, die betreffende Änderung in der Datenbank aber schon drin ist (wahrscheinlich ist ein früheres Datenbank-Update nicht vollständig bis zu Ende gelaufen).
Hast Du nur die Datenbank zurückgesichert oder das komplette Jameica+JVerein auch?
Das finde ich aber ziemlich umständlich, denn es sind ja mehrere Verzeichnisse an verschiedenen Stellen, und da ich ansonsten auch mit Hibiscus einiges mache, ohne JVerein zu nutzen, wären dann deutlich mehr Daten verloren.DIG hat geschrieben:Am besten ist es natürlich wenn Du ein Voll-Backup (d.h. komplettes Jameica einschließlich aller Plugins und das komplette Jameica-Datenverzeichnis) aus der noch funktionierenden Zeit zurückspielst.
Ich habe die letzten Tage damit zugebracht, zu versuchen, es mit LibreOffice hinzubekommen, und dabei eine Datenbank, die unter LibreOffice erstellt wurde, kaputt gemacht - abgesehen davon, dass ich den Zugriff auf die JVerein-Datenbank nicht hinbekommen habe. Die Fehlermeldungen habe ich schon beschrieben, alle Versuche (und ich habe es oft versucht) schlugen fehl bzw. endeten mit der gleichen Fehlermeldung.DIG hat geschrieben:Ansonsten musst Du überprüfen ob die installierte JVerein-Programmversion zur Datenbankversion passt. Das findest Du in der Datenbank selber (Tabelle version) heraus. Dazu musst Du die Datenbank bspw. mit LibreOffice öffnen (die Anleitung im Wiki dazu funktioniert, warum Dein LibreOffice das Java nicht findet - dazu kann ich Dir nicht mehr sagen, hängt halt zu stark von Deiner Umgebung ab).
Das scheint mir der einzig machbare Schritt zu sein. Nur komme ich an die Datenbank so nicht ran. RazorSQL ist vielleicht zu komplex, das weiß ich nicht. Ich muss mich da in die Hilfe noch einarbeiten. Jedenfalls zeigt es mir nur System-Tables an, und da ist keine version Table dabei. Aber es kann ja auch sein, dass ich das Ganze da falsch angehe. Nur das weiß ich eben nicht. Es gibt nirgends eine Schritt-für-Schritt-Anleitung und ich habe auch noch keine Empfehlung bekommen für ein anderes, vielleicht besser bedienbares Programm. LibreOffice ist für mich nach der letzten Katastrophe in dieser Hinsicht gestorben.DIG hat geschrieben:Wenn Du kein "gutes" Backup mehr hast, bleibt Dir nur die Datenbank manuell zu "reparieren" (z.B. zuerst Backup, dann Version schrittweise manuell hochzusetzen bis JVerein wieder läuft oder/und die Struktur sämtlicher Tabellen Deiner Datenbank mit der einer leeren JVerein-Datenbank vergleichen und ggf. anpassen).
Ja, wenn es so einfach wäre. Das habe ich mehrfach durchexerziert, ohne Erfolg.Thomas_S hat geschrieben:Hallo,
eine Anmerkung zur Verbindung mit Libreoffice: "Es behauptet immer, dass Java nicht installiert sei, was aber definitiv der Fall ist." Das kenne ich, allerdings unter Windows. Es tritt immer nach einem Java-Update auf. Dann einfach unter Extras, Optionen auf Libreoffice, erweitert gehen und einen Moment warten, bis eine Java-Version angezeigt wird und die Verbindung klappt anschließend wieder.
Ich bin nicht böse. Nur: wenn Du aufmerksam gelesen hast, wirst Du feststellen, dass es nach dem update zuerst funktioniert hat. Beim nächsten Start nicht mehr. Und dazwischen hatte ich absolut nichts mehr am System verändert. Und so richtig bewusst war mir lange nicht, wo Jameica den ganzen Kram eigentlich speichert. In Zukunft, wenn's mal wieder läuft (hoffentlich bald!!!), werde ich natürlich auch das versteckte Verzeichnis sichern. Denn nochmal will ich das nicht erleben. Ich stecke nun schon seit einer Woche wieder fest. Das kann ich mir bzw. der Verein sich eigentlich nicht leisten.Thomas_S hat geschrieben:In Deinem ersten Hilferuf stand: "habe mir mal wieder JVerein "zerschossen"". Jetzt bitte nicht böse sein, es klingt so nach "ich bin schlauer", aber vielleicht für das nächste Mal: Vor einem Update, egal ob regulär oder nightly, kopiere ich immer den kompletten Programmordner und den kompletten Datenordner. Damit ist der alte Zustand gesichert und schnell wieder herzustellen.
So, ich habe jetzt ein DB-Tool gefunden, mit dem ich klarkomme, und die Daten entsprechend angepasst. Ich habe zunächst 373 eingegeben, dann Jameica aufgerufen, aber das gleiche Problem, im Log wird der gleiche Fehler berichtet. Dann habe ich es mit 374 versucht, das gleiche Ergebnis. Das alleine kann's also noch nicht sein, oder?Danzelot hat geschrieben:Hallo,
JVerein versucht, das Update 373 durchzuführen.
Die Tabelle beitragsgruppe wurde allerdings schon mal um die Spalte betragmonatlich erweitert.
Entweder du hast das manuell durchgeführt, oder der Updateprozess ist nach dem Update aber vor dem Schreiben der aktuellen Version in der Tabelle version abgeschmiert.
Schau doch mal mit einem DB-Tool deiner Wahl in der Tabelle version Feld version nach, auf welchem Stand deine Installation ist.
Ist dort 372 eingetragen, erhöhe den Wert auf 373, danach sollte JVerein mit den Updates fortfahren.
Das klappt problemlos, da in 373 nur die eine Änderung in der Tabelle beitrgasgruppe vorgenommen wurde.
Gruß Danzelot
Code: Alles auswählen
[Sat Jan 28 18:55:13 CET 2017][INFO][de.willuhn.jameica.gui.SplashScreen$3.run] Installiere JVerein ...
[Sat Jan 28 18:55:13 CET 2017][INFO][de.willuhn.datasource.db.DBServiceImpl.stop] stopping db service
[Sat Jan 28 18:55:13 CET 2017][INFO][de.willuhn.datasource.db.DBServiceImpl.stop] db service stopped [0 connection(s) closed]
[Sat Jan 28 18:55:13 CET 2017][INFO][de.jost_net.JVerein.server.JVereinDBServiceImpl.<init>] loading database driver: de.jost_net.JVerein.server.DBSupportH2Impl
[Sat Jan 28 18:55:13 CET 2017][INFO][de.jost_net.JVerein.server.DBSupportH2Impl.<init>] switching dbservice to uppercase
[Sat Jan 28 18:55:13 CET 2017][INFO][de.jost_net.JVerein.server.DBSupportH2Impl.<init>] h2 version: 1.3.172
[Sat Jan 28 18:55:13 CET 2017][INFO][de.willuhn.datasource.db.DBServiceImpl.start] starting db service
[Sat Jan 28 18:55:13 CET 2017][INFO][de.willuhn.datasource.db.DBServiceImpl.createConnection] creating new connection
[Sat Jan 28 18:55:13 CET 2017][INFO][de.willuhn.datasource.db.DBServiceImpl.getConnection] created new connection for <local>
[Sat Jan 28 18:55:13 CET 2017][INFO][de.willuhn.sql.ScriptExecutor.execute] starting transaction
[Sat Jan 28 18:55:13 CET 2017][INFO][de.willuhn.sql.ScriptExecutor.execute] rollback transaction
[Sat Jan 28 18:55:13 CET 2017][ERROR][de.willuhn.sql.ScriptExecutor.execute] error while executing sql script. Current statement: ALTER TABLE beitragsgruppe ADD betraghalbjaehrlich DOUBLE
org.h2.jdbc.JdbcSQLException: Doppelter Feldname "BETRAGHALBJAEHRLICH"
Duplicate column name "BETRAGHALBJAEHRLICH"; SQL statement:
ALTER TABLE beitragsgruppe ADD betraghalbjaehrlich DOUBLE [42121-172]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:169)
at org.h2.message.DbException.get(DbException.java:146)
at org.h2.table.Table.setColumns(Table.java:383)
at org.h2.table.TableBase.<init>(TableBase.java:35)
at org.h2.table.RegularTable.<init>(RegularTable.java:74)
at org.h2.schema.Schema.createTable(Schema.java:560)
at org.h2.command.ddl.AlterTableAlterColumn.cloneTableStructure(AlterTableAlterColumn.java:311)
at org.h2.command.ddl.AlterTableAlterColumn.copyData(AlterTableAlterColumn.java:220)
at org.h2.command.ddl.AlterTableAlterColumn.update(AlterTableAlterColumn.java:156)
at org.h2.command.CommandContainer.update(CommandContainer.java:79)
at org.h2.command.Command.executeUpdate(Command.java:235)
at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:127)
at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:112)
at de.willuhn.sql.ScriptExecutor.execute(ScriptExecutor.java:168)
at de.jost_net.JVerein.server.DDLTool.AbstractDDLUpdate.execute(AbstractDDLUpdate.java:89)
at de.jost_net.JVerein.server.DDLTool.AbstractDDLUpdate.execute(AbstractDDLUpdate.java:76)
at de.jost_net.JVerein.server.DDLTool.Updates.Update0375.run(Update0375.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at de.jost_net.JVerein.server.JVereinUpdateProvider.callMethod2(JVereinUpdateProvider.java:265)
at de.jost_net.JVerein.server.JVereinUpdateProvider.<init>(JVereinUpdateProvider.java:93)
at de.jost_net.JVerein.server.DBSupportH2Impl.checkConsistency(DBSupportH2Impl.java:170)
at de.jost_net.JVerein.server.JVereinDBServiceImpl.checkConsistency(JVereinDBServiceImpl.java:114)
at de.jost_net.JVerein.JVereinPlugin$1.call(JVereinPlugin.java:106)
at de.jost_net.JVerein.JVereinPlugin.call(JVereinPlugin.java:203)
at de.jost_net.JVerein.JVereinPlugin.init(JVereinPlugin.java:99)
at de.willuhn.jameica.plugin.PluginLoader.initPlugin(PluginLoader.java:398)
at de.willuhn.jameica.plugin.PluginLoader.init(PluginLoader.java:243)
at de.willuhn.jameica.services.PluginService.init(PluginService.java:42)
at de.willuhn.boot.BootLoader.resolve(BootLoader.java:139)
at de.willuhn.boot.BootLoader.resolve(BootLoader.java:119)
at de.willuhn.boot.BootLoader.getBootable(BootLoader.java:72)
at de.willuhn.jameica.system.Application.init(Application.java:106)
at de.willuhn.jameica.system.Application.newInstance(Application.java:90)
at de.willuhn.jameica.Main.main(Main.java:78)
[Sat Jan 28 18:55:13 CET 2017][ERROR][de.jost_net.JVerein.server.DDLTool.AbstractDDLUpdate.execute] unable to execute update
java.sql.SQLException: exception while executing sql script: Doppelter Feldname "BETRAGHALBJAEHRLICH"
Duplicate column name "BETRAGHALBJAEHRLICH"; SQL statement:
ALTER TABLE beitragsgruppe ADD betraghalbjaehrlich DOUBLE [42121-172]. Current statement: ALTER TABLE beitragsgruppe ADD betraghalbjaehrlich DOUBLE
at de.willuhn.sql.ScriptExecutor.execute(ScriptExecutor.java:197)
at de.jost_net.JVerein.server.DDLTool.AbstractDDLUpdate.execute(AbstractDDLUpdate.java:89)
at de.jost_net.JVerein.server.DDLTool.AbstractDDLUpdate.execute(AbstractDDLUpdate.java:76)
at de.jost_net.JVerein.server.DDLTool.Updates.Update0375.run(Update0375.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at de.jost_net.JVerein.server.JVereinUpdateProvider.callMethod2(JVereinUpdateProvider.java:265)
at de.jost_net.JVerein.server.JVereinUpdateProvider.<init>(JVereinUpdateProvider.java:93)
at de.jost_net.JVerein.server.DBSupportH2Impl.checkConsistency(DBSupportH2Impl.java:170)
at de.jost_net.JVerein.server.JVereinDBServiceImpl.checkConsistency(JVereinDBServiceImpl.java:114)
at de.jost_net.JVerein.JVereinPlugin$1.call(JVereinPlugin.java:106)
at de.jost_net.JVerein.JVereinPlugin.call(JVereinPlugin.java:203)
at de.jost_net.JVerein.JVereinPlugin.init(JVereinPlugin.java:99)
at de.willuhn.jameica.plugin.PluginLoader.initPlugin(PluginLoader.java:398)
at de.willuhn.jameica.plugin.PluginLoader.init(PluginLoader.java:243)
at de.willuhn.jameica.services.PluginService.init(PluginService.java:42)
at de.willuhn.boot.BootLoader.resolve(BootLoader.java:139)
at de.willuhn.boot.BootLoader.resolve(BootLoader.java:119)
at de.willuhn.boot.BootLoader.getBootable(BootLoader.java:72)
at de.willuhn.jameica.system.Application.init(Application.java:106)
at de.willuhn.jameica.system.Application.newInstance(Application.java:90)
at de.willuhn.jameica.Main.main(Main.java:78)
[Sat Jan 28 18:55:13 CET 2017][ERROR][de.jost_net.JVerein.server.DBSupportH2Impl.checkConsistency] Datenbankupdate kann nicht ausgeführt werden.
de.willuhn.util.ApplicationException
at de.jost_net.JVerein.server.JVereinUpdateProvider.<init>(JVereinUpdateProvider.java:100)
at de.jost_net.JVerein.server.DBSupportH2Impl.checkConsistency(DBSupportH2Impl.java:170)
at de.jost_net.JVerein.server.JVereinDBServiceImpl.checkConsistency(JVereinDBServiceImpl.java:114)
at de.jost_net.JVerein.JVereinPlugin$1.call(JVereinPlugin.java:106)
at de.jost_net.JVerein.JVereinPlugin.call(JVereinPlugin.java:203)
at de.jost_net.JVerein.JVereinPlugin.init(JVereinPlugin.java:99)
at de.willuhn.jameica.plugin.PluginLoader.initPlugin(PluginLoader.java:398)
at de.willuhn.jameica.plugin.PluginLoader.init(PluginLoader.java:243)
at de.willuhn.jameica.services.PluginService.init(PluginService.java:42)
at de.willuhn.boot.BootLoader.resolve(BootLoader.java:139)
at de.willuhn.boot.BootLoader.resolve(BootLoader.java:119)
at de.willuhn.boot.BootLoader.getBootable(BootLoader.java:72)
at de.willuhn.jameica.system.Application.init(Application.java:106)
at de.willuhn.jameica.system.Application.newInstance(Application.java:90)
at de.willuhn.jameica.Main.main(Main.java:78)