New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fehler beim Speichern von Mitgliedern #208
Comments
Ich habe jetzt eine neue Datenbank aufgesetzt. Da kann ich ein Mitglied mit ID 1 erzeugen und speichern. |
Es waren korrupte Datenbanken. Ich habe jetzt mit Recover die Datenbanken korrigiert. Gibt es noch andere Nutzer die Eigenschaften definiert haben und evtl. auch wieder welche gelöscht haben, die ein ähnliches Problem haben. Jedenfalls habe ich ein ungutes Gefühl wenn die Datenbank korrupt wird. |
Kannst ja mal prüfen, ob beim Löschen von Eigenschaften die Eigenschaften auch aufgelöst werden bei den Mitgliedern. |
Man kann eine Eigenschaft nicht löschen wenn sie von einem Mitglied belegt ist, das wird im Code abgefangen. Auch kann man die Eigenschaften der problematischen Mitglieder anzeigen. Da passiert allerdings folgendes Query: |
Jetzt bin ich einen Schritt weiter. |
Jetzt habe ich wieder das alte Backup genommen und Open JVerein Version 2.8.20 manuell installiert. |
Ich habe es weiter eingegrenzt. Es passiert bei "Feature gegenbuchung (#138)" mit Update0430. In Update0430 sollte statt null ein "NULL" stehen sonst wird der Defaultwert nicht gesetzt. Das ist aber nicht das Problem. Auch mit "NULL" tritt der Fehler auf. |
Ich habe jetzt in einem Branch nur das Update0430.java (einmal mit null und einmal mit "NULL") eingefügt ohne den restlichen Code des Features. |
Jetzt habe ich eine Entdeckung gemacht. |
Ich habe jetzt einmal eine neue Datenbank mit 2.8.20 erzeugt und Mitglieder und Konten eingegeben. Dann auf 2.8.21 migriert. Es tritt der Fehler nicht auf. Es ist also wohl kein generelles Problem. java -cp /opt/jameica/lib/h2/h2*.jar org.h2.tools.Recover |
Ich hatte einen ähnlichen Fehler mit Version 2.8.21 von JVerein:
Aber letztlich: Danke für das Posten der Recovery-Prozedur, die hat mir geholfen -> jetzt geht wieder alles, kein generelles Problem, auch hier wohl die Ursache in der DB-Migration ... |
Ich habe jetzt etwas gefunden. |
Hallo Jungs, ich habe ein Problem, kann es aber nicht selbst lösen.
Ich bekomme einen Fehler wenn ich Mitglieder speichern will deren ID im Bereich 1 .. 13 (evtl. 14 aber die kommt nicht vor bei mir) ist. Ich habe externe Mitgliedsnummer aktiv, sie entsprechen aber der original ID.
Es sind zwei Einträge in der Eigenschaften Tabelle.
Es passiert an dieser Stelle beim while Zeile 3400 in MitgliedControl.java:
DBIterator it = Einstellungen.getDBService()
.createList(Eigenschaften.class);
it.addFilter("mitglied = ?", new Object[] { getMitglied().getID() });
while (it.hasNext())
Es kommen dann folgende Meldungen wobei die Row Nummer unterschiedlich ist je nach ID:
[Fri Apr 12 10:21:14 CEST 2024][ERROR][main][de.jost_net.JVerein.gui.control.MitgliedControl.handleStore] Fehler bei Speichern des Mitgliedes
java.rmi.RemoteException: unable to init iterator. statement: prep8789: select EIGENSCHAFTEN.* from EIGENSCHAFTEN where mitglied = ? {1: '13'}; nested exception is:
org.h2.jdbc.JdbcSQLTimeoutException: Zeitüberschreitung beim Versuch die Tabelle {0} zu sperren
Timeout trying to lock table {0}; SQL statement:
select EIGENSCHAFTEN.* from EIGENSCHAFTEN where mitglied = ? [50200-199]
weiter unten:
Caused by: org.h2.jdbc.JdbcSQLTransientException: Row "72" not found in primary index "PUBLIC.EIGENSCHAFTEN_DATA" [90143-199]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:621)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:427)
The text was updated successfully, but these errors were encountered: