2016-10-29 3 views
0

Ich habe ein seltsames Problem mit Spring Batch. Ich habe ein Projekt, das einen Leser und einen Schreiber an einen Tisch bringt. Der Leser führt eine Auswahl durch und der Schreiber führt eine Aktualisierung der gelesenen Zeilen durch. Ich benutze eine der Spalten als einen Index, um mir zu erlauben, einen Bereich von Reihen auszuwählen.Socket-Timeout beim Aktualisieren von Oracle-Tabelle

reader: (unter Verwendung von JdbcPagingItemReader, FETCHSIZE = 5000, commitinteval = 100) Auswählen c1, c2, c3, Index aus der Tabelle in dem Index> =: AbsenderID und Index < =: EmpfängerID

Verfasser: (unter Verwendung von JdbcBatchItemWriter) Aktualisierungs-Tabellen-Set c1: = val, c2: = val, c3: = val wobei index =: index

Ich benutze einen Partitionierer und injiziere die fromId und toId im Partienter Listener.

es scheint für eine kleine Anzahl von Zeilen in Ordnung zu sein, aber wenn ich mehr als etwa 100 habe, bekomme ich eine Socket-Timeout auf dem Schreiber.

Ich kann den kompletten Code bei Bedarf hinzufügen, aber ich denke, das ist ein grundlegendes Missverständnis meinerseits in Bezug darauf, wie Spring funktioniert.

Vielen Dank im Voraus!

+0

Könnten Sie Stack-Trace und Code zu setzen? –

+0

Wie lange dauert ein Stück? Es ist üblich, dass Firewalls nach einer bestimmten Zeit dauerhafte Verbindungen beenden. Möglicherweise möchten Sie sicherstellen, dass eine Firewall die Datenbankverbindung nicht beendet, während Ihr Chunk verarbeitet wird. –

Antwort

0

vergessen, dies zu beantworten - scheint das Problem zu meiner Feder Config verwandt war - gelöst durch Anschluss Bean mit richtigen DB Pool Einstellwerte

Verwandte Themen