sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag förhindra att Hibernate + c3p0 + MySql skapar ett stort antal sovande anslutningar?

När du använder en anslutningspool anropar du Connection#close() stänger inte anslutningen fysiskt utan returnerar den till poolen för framtida återanvändning. Med andra ord, anslutningen förblir öppen och det är hela poängen med att använda en pool.

Det är det som är problemet. Du skapar en SessionFactory om och om igen (var och en skapar sin egen pool) medan du bör skapa den endast en gång under hela din ansökans livstid. Om du inte använder något speciellt ramverk görs detta vanligtvis i någon verktygsklass (den berömda HibernateUtil klass).

Den officiella Hibernate Tutorial har ett väldigt grundläggande exempel på en sådan klass. Eller se denna vilket är lite rikare.



  1. 5 sätt att returnera rader som innehåller små bokstäver i SQL Server

  2. Hantering av frödata i R12.2 online patchning

  3. Konvertera ett datum till Julian Day i PostgreSQL

  4. Anslut till MySql db över SSH i Netbeans