Подсчет соединений пула хикари в весеннем загрузочном контроллере hibernate - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть контроллер начальной загрузки, и я тестирую поведение соединений Hikari при использовании с аннотацией @Transactional.

Ниже представлен контроллер

@GetMapping("/loadTest")
    public String test() {
        System.out.println("in load test "+ Thread.currentThread().getName());
        System.out.println("Hikari Active in controller" + new HikariDataSourcePoolMetadata(dataSource).getActive());
        String ret = this.loadTestService.testLoad();
        System.out.println("Hikari Active in controller after" + new HikariDataSourcePoolMetadata(dataSource).getActive());
        return ret;
    }

И транзакционный сервис

@Transactional
    public String testLoad(){
        System.out.println("Hikari Active in test load service " + new HikariDataSourcePoolMetadata(dataSource).getActive() +" " + Thread.currentThread().getName());
        return "test";
    }

Приведенный выше код печатается следующим образом:

Hikari Active in contoller 0
Hikari Active in test load service 1
Hikari Active in contoller after 1 // I was expecting the value to be 0 at this point 

Я немного запутался здесь, я ожидаю, что метод обслуживания будет транзакционным, поэтому транзакция должна быть закрыта после возврата службы метод. Когда я запускаю код в режиме отладки, я вижу Не закрывает предварительно связанный JPA EntityManager после транзакции . Я не мог понять, почему. Спасибо.

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