Buenas,
A mi me parece mas bien que la conexion con la base de datos se colapsa.
Deberias lanzar los inserts por lotes en lugar de uno a uno. Por ejemplo, puedes ir haciendo lotes de 5000 registros.
Te pongo un ejemplo de como deberia ir tu codigo.
Código Java:
Ver original
int numInserciones = 0;
//TU FOR
for (bla bla)
ps.setString(1, dato1);
ps.setString(2, dato2);
ps.addBatch();
if (++numInserciones == 5000) {
int[] results = ps.executeBatch();
numInserciones = 0;
}
}
Un saludo