Bonjour à tous,

J'ai un soucis de fuite mémoire avec le driver JDBC MySQL.
Dans une boucle, je fais environ 150 000 INSERT.
Avant d'arriver à la fin, l'appli sort sur un OutOfMemoryError. J'ai inspecté mon code, je ne vois pas de fuite mémoire. Après analyse de la mémoire heap, il semble que ce soit le driver MySQL qui consomme toute la mémoire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
One instance of "com.mysql.jdbc.Connection" loaded by
"sun.misc.Launcher$AppClassLoader @ 0x2xxxxxxxx8" occupies
759 916 912 (99,79%) bytes. The memory is accumulated in one
instance of "java.util.HashMap$Entry[]" loaded by "<system class loader>".
A priori, pas de fuite mémoire non plus dans ma fonction d'insertion. J'ai essayé pas mal de chose : fermer mon preparedStatement et mon resultSet, forcer le passage du GC, rien n'y fait. En désespoir de cause, j'ai tenté une déconnexion / reconnexion, et là, ca fonctionne.

Qu'est-ce que j'ai bien pu oublier ? Quelqu'un a t-il déjà été confronté à ce problème, quelle solution (je trouve la déconnexion / reconnexion pas élégante du tout) ?

Merci