Java MySQL JDBC Memory Leak

Хорошо, у меня есть эта программа с множеством (~ 300) потоков, каждый из которых взаимодействует с центральной базой данных. Создаю глобальное подключение к БД, а затем каждый поток выполняет свое дело, создавая операторы и выполняя их.

Где-то по пути у меня произошла огромная утечка памяти. После анализа дампа кучи я вижу, что размер объекта com.mysql.jdbc.JDBC4Connection составляет 70 МБ, поскольку он содержит 800 000 элементов в «openStatements» (хэш-карта). Где-то неправильно закрываются операторы, которые я создаю, но я не могу понять, где (каждый раз, когда я открываю один, я также закрываю его). Есть идеи, почему это может происходить?

10
задан Jordan 23 April 2011 в 18:14
поделиться