Update auf Mysql läuft nicht durch

OnDemand

Top Contributor
Hallo,
ich habe 100.000 Datensätze in einer DB, diese lese ich aus einer Datei immer wieder ein und update die DB.
Seit einigen Tagen fällt mir auf, dass statt 100.000 nur 7000 Datensätze updated werden. Einfach so, ohne Fehlermeldung und Codeänderung.

Der Code läuft auf Wildfly, Transaction timeout ist auf false gestellt, also unendlich lange transactions (hoffe ich). Da wäre eine Vermutung, dass das einfach abgebrochen wird. Bin grad ein wenig ratlos und weiß nicht welche Richtung ich noch suchen kann.

Falls es jemanden interessiert
stmt.executeUpdate("UPDATE products SET active=1 WHERE products_model=''blabla");
 

Thallius

Top Contributor
Bischen mehr Infoprmationen werden wir schon brauchen. Was bedeutet der Query? Führst du diesen 100.000 mal aus mit verschiedenen WHERE Bedingungen oder gibt es 100.000 Datensätze bei denen das WHERE zutrifft oder was auch immer?
 

OnDemand

Top Contributor
Genau jeder Datensatz ein Query, das Where variiert bei jedem Datensatz und es gibt immer nur einen Datensatz mit der entsprechenden Where Bedingung
 

OnDemand

Top Contributor
jupp! Ich schau nochmal, aber es werden alle sql exeptions abgefangen. Habe auch schon versucht mit b'1' statt nur 1 (Coloumn = BIT) aber daran lag es auch nicht
 

OnDemand

Top Contributor
Nutze keinPrepeared Statemnt, nur ein normales. Und ich meine die 7000 ersten Datensätze klappen ja, ob nun da true oder 1 oder b'1' steht, ist egal, es klappt mit allem. Nur eben ab dem 7001 gehts nicht mehr weiter sondern hört auf
 

stg

Top Contributor
Nutze keinPrepeared Statemnt, nur ein normales.
Spielt ja keine Rolle.

Nur eben ab dem 7001 gehts nicht mehr weiter sondern hört auf

Und da solltest du ansetzen und verstehen, was "aufhören" denn genau bedeutet. Werden die Statements abgesetzt? Wie viele Rows werden jeweils tatsächlich upgedatet laut Interface? Wartet dein Program einfach "unendlich lange" auf eine Antwort? usw...
 

OnDemand

Top Contributor
Ich weiß, war aber von Anfang an alles auf normales Statemetn, da änder ich jetzt auch nicht mehr viel rum , das geht alles bald auf API. Ich suche da an der falschen Stelle, es hat immer funktioniert, außnahmslos. Da kann es nicht mit dem DB Treiber zu tun haben, sondern an irgendwas anderem. Ich werde das nochmal in einer ruhigen Minuten durchgehen. Danke
 

Thallius

Top Contributor
Warum fragst du wenn es dich soweiso nicht interessiert? Und den Rückgabewert auszuwerten gehört einfach zu einem guten Stil. Man kann ja nicht einfach davon ausgehen, dass der update geklappt hat. Es gibt unzählige Möglichkeiten warum es nicht klappen kann und Du ignorierst es einfach. Und wenn man Dich drauf hineweißt wilst du uns auch noch erklären das du genau weiß das es daran nicht liegen kann.

Aber was beschwer ich mich. Genau wegen solcher angeblichen "Programmierer" habe ich einen guten Job...
 

OnDemand

Top Contributor
Ihr immer mit eure gute und schlechte Programmierer! Geht am Thema vorbei. Es wurde einfach mal nichts am treiber geändert, was soll ich da jetzt auf Fehlersuche gehen? Rückgabewert habe ich noch nie benutzt, jetzt werde ich es wohl künftig. (Nun habe ich eine Erfahrung gemacht, die ihr wahrscheinlich schon hattet) Macht mich das jetzt zu einem besseren Programmierer? wieder ein Stück an den 100% Perfektion dran juhu!
 

stg

Top Contributor
Das Problem ist, dass du oft nicht auf Antworten eingehst, immer wieder ähnliche Fehler machst und Fragen mit unzureichenden Informationen stellst. Das ist sogar so auffällig, dass ich mich an dich als Fragensteller mehr als gut erinnern kann o_O
Wenn du hier Hilfe suchst, dann solltest du langsam begriffen haben, dass das nur funktioniert, wenn du selbst mitarbeitest.
 

OnDemand

Top Contributor
Ja schon aber kann ja nicht wissen was ihr wissen wollt, wenn keine Frage gestellt wird?
Dein Hinweis in allen Ehren, aber ein Link zur Doku ist keine Frage.
Werde dann erstmal die updateden Rows ausgeben lassen.
Sehe auch, dass das last_update Datum des Datensatzes mehrere Tage als ist bei allen außer der 7000. Von daher vermute ich, dass die garnicht erst abgesetzt werden
 

JStein52

Top Contributor
Sind es immer die gleichen 7000 rows die upgedatet werden ? Gib mal das 7001.te Update per Hand in einer mysql-Konsole ein und guck was passiert.
 

JStein52

Top Contributor
Jupp sind immer die gleichen,
Und zwar die ersten 7000 ?? Kannst du über deine Eingabedaten dafür sorgen dass die rows in anderer Reihenfolge upgedatet werden ? Sind es dann wieder 7000 aber andere ? Loggst du die abgesetzten Statements irgendwie (println() oder sonstwie ) mit ? Es werden also alle 100000 executeUpdate() abgesetzt ? Wurden Einstellungen auf der Serverseite von MySQL geändert ?
 

OnDemand

Top Contributor
Hab eben nochmal geschaut, es laufen 7000 durch egal in welcher Reihenfolge. Habe mit sout mal die DS ausgegeben, joa klappt halt bis zum 7000. Dann macht es NIX bis dann 20 Minuten später eine Meldung aus einem anderen Code erscheint ("Datensatz xx gelöscht") Denn nach den 10000 updates, werden nicht updatede gelöscht. Aber er hat nur 7000 Datensätze aktualisiert, dürfte also noch lange nicht beim löschen angekommen sein. Ich komm einfach nicht dahinter, was das Problem sein kann.

Auf MySql Ebene wurde nur ein neuer User angelegt (unbegrenzte timeouts etc) welcher mit der DB kommuniziert
 

OnDemand

Top Contributor
Habe das Problem entdeckt. Es lag am Code, und zwar wird in einem unterliegendem System ein Parser eingesetzt (opencsv) welcher csv Dateien liest und daraus die Datensätze erstellt die in die DB sollen. Blöderweise muss die libary Opencsv, einen Bug haben. Denn wenn eine der CSV Zeilen einen fehlerhaften Aufbau hat, bricht die Lib das parsen ab statt nur die Zeile zu überspringen. (Ja es wird exception abgefangen - ArrayIndexOutBounds) aber dannach gehts nicht weiter. Nun hab ich die CSV dort mal mit einem BufferedReader etc einlesen lassen und siehe da es läuft! Danke allen für die Unterstützung und wünsche einen genehmen Männertag
 

mrBrown

Super-Moderator
Mitarbeiter
Habe das Problem entdeckt. Es lag am Code, und zwar wird in einem unterliegendem System ein Parser eingesetzt (opencsv) welcher csv Dateien liest und daraus die Datensätze erstellt die in die DB sollen. Blöderweise muss die libary Opencsv, einen Bug haben. Denn wenn eine der CSV Zeilen einen fehlerhaften Aufbau hat, bricht die Lib das parsen ab statt nur die Zeile zu überspringen. (Ja es wird exception abgefangen - ArrayIndexOutBounds) aber dannach gehts nicht weiter. Nun hab ich die CSV dort mal mit einem BufferedReader etc einlesen lassen und siehe da es läuft! Danke allen für die Unterstützung und wünsche einen genehmen Männertag
Wie sah denn der Code dafür aus?
 

OnDemand

Top Contributor
dummycode:

Java:
CSVReader reader = new ....
while (reader.nextline() != null){
try {
Datensatz ds = new Datensatz();
ds.setxx.....

} catch IndexoutofBounds ()
}
}

try catch wurde im Nachgang eingefügt, aber es wird schon eher gesplittet. Wenn mehr gewünscht ist, muss ich die Infos besorgen, das ist nicht mein Part gewesen
 

mrBrown

Super-Moderator
Mitarbeiter
Es gibt Exceptions, die man im Normalfall nicht einfach so fangen sollte - IndexOutOfBoundsE. gehört dazu.
Abgesehen davon ist ein leerer catch-Block schon so ziemlich das Gegenteil von etwas sinnvollen.

ich frag mich aber, wieso da nach dem Abbrechen überhaupt noch mit dem Array gearbeitet wird - aber vllt haben wir auch unterschiedliche Vorstellungen von "Parsen abbrechen"...
 

OnDemand

Top Contributor
Ist doch nur dummy code daher leer. Die Zeilen welche fehlerhaft sind, sollen einfach ignoriert werden. Aber das Problem lag an der Lib, denn da ist kein Fehler in der Zeile. Mit dem BufferedReader und split läuft es ganz wunderbar durch
 

mrBrown

Super-Moderator
Mitarbeiter
Ist doch nur dummy code daher leer.
Na wenn der Dummy-Code nicht dem wirklichen Code entspricht bringt das herzlich wenig...


Die Zeilen welche fehlerhaft sind, sollen einfach ignoriert werden. Aber das Problem lag an der Lib, denn da ist kein Fehler in der Zeile.
Um eben einen Bug in der Lib zeigen oder ausschließen zu können, wäre der Code relevant ;)
Ich würde spontan nicht davon ausgehen, dass da eine korrekte Zeile zu Problemen führt. Code der das zeigt wäre interessant, dann könnte man 'nen Bugreport schreiben oder das direkt fixen ;)


Mit dem BufferedReader und split läuft es ganz wunderbar durch
Ein einfaches Split birgt auch recht viel Potential für Bugs ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
OnDemand Mysql UPDATE if condition Datenbankprogrammierung 14
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
G MySQL Update Datenbankprogrammierung 5
M Update mysql Fehler ?? Datenbankprogrammierung 4
T compiler fehler: should be mapped with insert="false" update="false" Datenbankprogrammierung 1
OnDemand Select vs Update ins blaue, was ist teurer? Datenbankprogrammierung 11
OnDemand MySQL Trigger löst nicht aus bei Hibernate Update Datenbankprogrammierung 12
R HSQLDB ResultSet update aktualisiert DB, aber nicht das ResultSet Datenbankprogrammierung 2
F UPDATE - Befehl nur in einer Zeile Datenbankprogrammierung 11
L SQL-Statement INSERT INTO ON DUPLICATE KEY UPDATE funktioniert nicht Datenbankprogrammierung 5
M SQL-Statement SQL mit Java, Update Fehler Datenbankprogrammierung 1
OnDemand SQL-Statement Update mit innerjoin Datenbankprogrammierung 18
OnDemand Update table SET will nicht Datenbankprogrammierung 9
S Update Tabelle aus Textfeld Datenbankprogrammierung 2
S JPA: update von Schlüsselwerten Datenbankprogrammierung 2
ruutaiokwu sql server werte swappen beim update-vorgang mit unique-constraints..? Datenbankprogrammierung 2
M Update Befehl Datenbankprogrammierung 1
S MySQL Nach wiederholtem Update falsche Werte (im Speicher?) Datenbankprogrammierung 1
M SQL-Statement Datentypen in Kriterienausdruck unverdräglich bei Update auf DB von Java aus Datenbankprogrammierung 0
M SQL UPDATE richtig anwenden BITTE um HILFE Datenbankprogrammierung 3
M SQL UPDATE führt zu JAVA Absturz Datenbankprogrammierung 6
S HSQLDB Verbieten eines update auf eine bestimmte reihe Datenbankprogrammierung 4
M Derby/JavaDB Neu geschriebener Eintrag per UPDATE lässt sich nicht unmittelbar abrufen Datenbankprogrammierung 2
S UPDATE user Datenbankprogrammierung 4
R Fehler 2601 trotz SQL-UPDATE ? Datenbankprogrammierung 2
B DB Update via batch Datenbankprogrammierung 3
H Update ganze zeile Datenbankprogrammierung 4
R sqlite UPDATE wirkt nicht aus Java Datenbankprogrammierung 7
S ID Wert von Insert über jdbcTemplate.update Datenbankprogrammierung 3
D Error 1452: Cannot add or update a child row: a foreign key constraint fails Datenbankprogrammierung 15
D SQL Update auf eine Query möglich? Datenbankprogrammierung 4
5 Datenbank Update Datenbankprogrammierung 8
A Oracle Update Befehl in Datenbank anhand einer Schleife Datenbankprogrammierung 8
turmaline Oracle "Häppchenweises" Update durchführen Datenbankprogrammierung 4
C MySQL Problem mit UPDATE Abfrage Datenbankprogrammierung 13
D ArrayIndexOutOfBoundsException bei Update von JTable und Model Datenbankprogrammierung 13
M Access Update Statement Fehler update -> unmöglich? Datenbankprogrammierung 3
J MyBatis - Update Problem Datenbankprogrammierung 4
S JPA: Problem mit Update von Daten Datenbankprogrammierung 7
I Derby/JavaDB Update Fehler Datenbankprogrammierung 4
N Update Prepared Statement Fehler bei Argumenten Datenbankprogrammierung 3
N batch-Update wird nicht durchgeführt Datenbankprogrammierung 2
R MS Access mit Java Problem mit Update Statment Datenbankprogrammierung 13
1 On duplicate Key update Datenbankprogrammierung 3
M DB update geht einfach nicht Datenbankprogrammierung 2
F ResultSet kann Datenbank nicht update, warum? Datenbankprogrammierung 3
M MySQL größere von zwei Zahlen in Update Statement Datenbankprogrammierung 2
T Update an SQL Tabelle ?! Datenbankprogrammierung 10
C MySQL Update funktioniert nicht Datenbankprogrammierung 11
C Update Table1 mit Relationship Table2 Datenbankprogrammierung 6
prakdi einzelnen SQL Eintrag finden der "update" enthält Datenbankprogrammierung 3
V Datenbank Update Datenbankprogrammierung 7
A update methode für datenbank Datenbankprogrammierung 2
M Hibernate: Insert statt Update Datenbankprogrammierung 8
E Update DB; Werte aus Feldern übernehmen Datenbankprogrammierung 5
H Batch Update/Insert Datenbankprogrammierung 4
E Insert oder Update- Prüfung Datenbankprogrammierung 3
H Datenbank Update Datenbankprogrammierung 3
J SQL Abfrage: Verschiedene Werte in einer Spalte mit einem Update Befehl? Datenbankprogrammierung 7
cosmic Problem beim Update einer Oracle DB Datenbankprogrammierung 7
T Problem beim Update in die Access DB Datenbankprogrammierung 9
R Update Time auslesen Datenbankprogrammierung 2
T DB2 delete/update über 2 Tabellen Datenbankprogrammierung 2
K Ist mein UPDATE fehlerhaft? Datenbankprogrammierung 3
G Update-Befehl Fehlerhaft ?? Datenbankprogrammierung 2
G Update Befehl funkt nicht. WARUM? Datenbankprogrammierung 5
S Update Problem Datenbankprogrammierung 3
M Insert Update usw. Datenbankprogrammierung 2
S CashedRowSet update - oder was mache ich falsch - Datenbankprogrammierung 6
B [SQL] UPDATE oder REPLACE INTO Befehl Datenbankprogrammierung 10
S Update mit null Datenbankprogrammierung 11
H UPDATE . Datenbankprogrammierung 3
S PostgreSQL SELECT/UPDATE etc. Datenbankprogrammierung 4
T Update-Frage Datenbankprogrammierung 11
Y Hibernate - Update bestimmter Spalten Datenbankprogrammierung 2
G update sperren bei client/server anwendung Datenbankprogrammierung 7
T Diverse JDBC Probleme (inner join, rs.last(), update) Datenbankprogrammierung 2
B Update funktioniert nicht Datenbankprogrammierung 8
R Update und Insert Gleichzeitig? Datenbankprogrammierung 2
K MsAccess immer beim zweiten Update java.sql.SQLException Datenbankprogrammierung 28
N Hibernate & hsqldb: Problem bei db-update Datenbankprogrammierung 7
T Problem beim Update vom Resultset + Firebird Datenbankprogrammierung 2
G Update Statement automatisch unterteilen lassen Datenbankprogrammierung 3
G ist hieran was falsch ? UPDATE Anweisung Datenbankprogrammierung 8
W Hibernate Update Problem Datenbankprogrammierung 3
A Syntaxfehler bei update. Datenbankprogrammierung 8
O Update-Problem mit Hibernate-Framework Datenbankprogrammierung 5
L Problem mit Update Datenbankprogrammierung 14
L UPDATE löst Exception aus Datenbankprogrammierung 6
G Problem mit Datums-Format bei UPDATE Datenbankprogrammierung 3
F Update mit Prepared Statements Datenbankprogrammierung 10
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
Warum funktioniert MySQL nicht Datenbankprogrammierung 8
M MySQL Datenbank in Array Datenbankprogrammierung 2
P MySQL- Neues Passwort Datenbankprogrammierung 1
btwX28 mysql abfrage über phpmyadmin Datenbankprogrammierung 8
sserio SQL oder MySQL Datenbankprogrammierung 44
OnDemand Mysql Query Builder Datenbankprogrammierung 1

Ähnliche Java Themen

Neue Themen


Oben