Я новичок в MyBatis. У меня есть это:
try(SqlSession session = MyBatisConnectionFactory.getSqlSessionFactory().openSession()) {
List<News> list = session.selectList("selectNews");
// ...
session.close();
}
.. а это ...
<configuration>
<settings>
<setting name='mapUnderscoreToCamelCase' value='true'/>
</settings>
<environments default = 'foo'>
<environment id = 'foo'>
<transactionManager type = 'JDBC'/>
<dataSource type = 'UNPOOLED'>
<property name = 'driver' value = 'org.postgresql.Driver'/>
Моя проблема в том, что после выполнения запроса я вижу следующее:
ps -aux | grep post
postgres 5236 0.0 0.8 227656 8252 ? Ss 13:09 0:00 postgres: postgres foo 127.0.0.1(53213) idle
Если я использую драйвер Postgres напрямую, этого не происходит, например, процесс драйвера исчезает сразу после close (), чего я и ожидаю.
Поскольку у меня есть try-with-resources, я не думаю, что явный вызов close () действительно необходим, но я добавил его, чтобы быть уверенным.
Я видел Не могу закрыть соединение БД с MyBatis , но я не думаю, что это применимо, так как я ОТКЛЮЧЕН. Также Медленное закрытие SqlSession в myBatis с пружиной , но это тоже не актуально.
Соединение исчезает через 30 секунд или около того, так что это не главная проблема, но я хочу это понять. Какие-нибудь мысли? MyBatis по какой-то причине задерживает закрытие?
MyBatis 3.4.6, Postgres 9.6, Java 7 в Debian