powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Как правильно закрывать Hikari connection
3 сообщений из 3, страница 1 из 1
Как правильно закрывать Hikari connection
    #39829865
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Для записи в БД через JDBC использую несколько потоков, в каждом из которых использую соединение из пула Hikari.
Читал, что принудительно закрывать соединения Hikari не нужно. В ниже приведенном примере используется конструкция try-with-resources. Происходит в этом случае закрытие соединения?
Код: java
1.
2.
3.
for (int i = 0; i < nThreads; i++) {
    executorFlushObjectToDB.execute(new FlushObjectToDB(...));
}


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
public class FlushObjectToDB implements Runnable {
    ...
    @Override
    public void run() {
        try (Connection connection
                = HikariConectionFactory.getConnection();
                PreparedStatement prStatement
                = connection.prepareStatement(sqlInsertObjectProp)) {
             connection.setAutoCommit(false);

             for (...) {
                 prStatement.setString(1, ".....");
                 prStatement.setString(2, ".....");
                 prStatement.addBatch();
             }
              
             prStatement.executeBatch();
             connection.commit();

        } catch (SQLException ex) {
             throw new RuntimeException(ex);
        }
    }
}
...
Рейтинг: 0 / 0
Как правильно закрывать Hikari connection
    #39829882
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolasarЧитал, что принудительно закрывать соединения Hikari не нужно
клиентский код об этом ничего не должен знать - он не должен зависеть от реализации. т.е. кода вида "если это соединение из хикари, то не закрываем" там быть не должно. авторы любого пула об этом естественно подумали, по-этому каждый раз, когда ты просишь коннект, тебе возвращают некий прокси, который реагирует на close() особым образом. естественно физически соединение при этом не закрывается, но клиентский код это беспокоить не должно. По-этому да, нужно закрывать и да оно закроется в try-with-resources, но не физически, а просто вернется в пул
...
Рейтинг: 0 / 0
Как правильно закрывать Hikari connection
    #39829884
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaMolasarЧитал, что принудительно закрывать соединения Hikari не нужно
клиентский код об этом ничего не должен знать - он не должен зависеть от реализации. т.е. кода вида "если это соединение из хикари, то не закрываем" там быть не должно. авторы любого пула об этом естественно подумали, по-этому каждый раз, когда ты просишь коннект, тебе возвращают некий прокси, который реагирует на close() особым образом. естественно физически соединение при этом не закрывается, но клиентский код это беспокоить не должно. По-этому да, нужно закрывать и да оно закроется в try-with-resources, но не физически, а просто вернется в пул
Понял.
Спасибо за подробное объяснение.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как правильно закрывать Hikari connection
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]