У меня есть несколько VPS-серверов и я запустил экземпляры Docker Postgres и Tomcat:
docker run --name postgres -e POSTGRES_PASSWORD=qwerty -p 5432:5432 -d postgres
После этого я создал war-файл с сервлетом HelloWorld с использованием Jersey и Hibernate
hibernate.cfg.xml:
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQL95Dialect</property>
<property name="hibernate.connection.url">jdbc:postgresql://111.111.111.111:5432/my_db</property>
pom.xml:
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.6</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-agroal</artifactId>
<version>5.4.2.Final</version>
<type>pom</type>
</dependency>
Класс Дао:
public class UserDao {
private SessionFactory sessionFactory;
public UserDao() {
sessionFactory = new Configuration().configure().buildSessionFactory();
}
public long add(User user) {
try (Session session = sessionFactory.openSession()) {
Transaction transaction = session.beginTransaction();
session.save(user);
transaction.commit();
}
return user.getId();
}
public List<User> getAll() {
try (Session session = sessionFactory.openSession()) {
return session.createQuery("from User", User.class).list();
}
}
}
После развертывания 5 похожих военных файлов в Tomcat и некоторых тестах я получил too many clients already
ошибка при подключении к базе данных. Почему это происходит и как этого избежать?