Mysql
 sql >> база данни >  >> RDS >> Mysql

Твърде много връзки, използващи Hibernate и mysql

Това е така, защото използвате пул за връзки, който е създаден веднага след като изградите SessionFactory, но връзките се придобиват само когато отворите сесия. Сега затваряте сесията, поради което връзките се освобождават, но не се затварят и се задържат от пула. Сега вие отново създавате SessionFactory, следователно създавате нов пул, след това получавате сесия, следователно създавате нова връзка и т.н., което в крайна сметка ще достигне максималния брой разрешени връзки.

Това, което трябва да направите, е да използвате един пул за връзки (използвайки един SessionFactory) и да получите и освободите връзките от същия пул.

public class DBConnection {

      private static SessionFactory factory;
      static {
            factory = new Configuration().configure().buildSessionFactory();
      }

      public Session getSession() {
            return factory.openSession();
      }

      public void doWork() {
           Session session = getSession();
           // do work.
           session.close();
      }

     // Call this during shutdown
     public static void close() {
          factory.close();
     }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите резултатите от nodejs с помощта на mysql пакет?

  2. Има ли начин да съпоставим IP с IP+CIDR ​​направо от заявка SELECT?

  3. Как да свържа приложението за Android към базата данни MySQL?

  4. Добавяне на външен ключ от тип char в mysql

  5. MySQL Разделяне на низове чрез оператор запетая