Скорее всего, вы либо
- Открываем розетки и не закрываем их. Со временем количество открытых сокетов становится слишком большим, и приложение вылетает.
- Вы открываете слишком много сокетов одновременно. Может быть, потому что у вас тонна нитей.
Я собираюсь догадаться, что это # 1. Дважды проверьте код и убедитесь, что вы закрыли все свои объекты Connection и ResultSet.
Если вы работаете в # 2, то вы можете рассмотреть возможность использования меньшего количества потоков (после того, как определенное количество слишком большого количества потоков приносит больше вреда, чем пользы) или использования пула соединений, например c3p0 , который будет Создайте только определенное количество соединений и разрешите вашим потокам обмениваться ими. Использование c3p0 в целом является хорошей идеей и должно также позволить вам быстрее обнаружить # 1.
Третий вариант - использовать абстракцию более высокого уровня, такую как JPA или JDO, которая позаботится об управлении соединениями.