Docker Postgres и Hibernate: слишком много клиентов уже - PullRequest
0 голосов
/ 23 октября 2019

У меня есть несколько 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ошибка при подключении к базе данных. Почему это происходит и как этого избежать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...