Du är troligen antingen
- Öppna uttag och inte stänga dem. Med tiden blir antalet öppna uttag för stort och applikationen kraschar.
- Du öppnar alldeles för många uttag samtidigt. Kanske för att du har massor av trådar.
Jag ska gissa att det är nr 1. Dubbelkolla din kod och se till att du stänger alla dina Connection-objekt och ResultSet-objekt.
Om du stöter på #2 så kanske du vill överväga att använda färre trådar (efter en viss punkt gör för många trådar mer skada än nytta) eller använda en anslutningspool som c3p0 som bara skapar ett visst antal anslutningar och låter dina trådar dela dem. Att använda c3p0 är en bra idé i allmänhet och bör också tillåta dig att upptäcka #1 snabbare.
Ett tredje alternativ är att använda en abstraktionsnivå på högre nivå som JPA eller JDO som tar hand om anslutningshanteringen åt dig.