English 中文(简体)
Exposed runs query on all HikariCP open connections
原标题:

I m running a Ktor server with a PostgreSQL database and just set up the JetBrains Exposed ORM framework with HikariCP for connection pooling (per the recommendation in the Ktor documentation).

My Hikari data source configuration:

val dataSoruce = HikariDataSource(HikariConfig().also {
    it.driverClassName = "org.postgresql.Driver"
    it.jdbcUrl = "jdbc:postgresql://..."
    it.maximumPoolSize = 4
    it.isAutoCommit = false
    it.transactionIsolation = "TRANSACTION_REPEATABLE_READ"
    ...
    it.validate()
})
val database = Database.connect(dataSource)

Then I execute a query via Exposed:

transaction {
    Entity.find { ... }
}

In the DEBUG logs, Exposed logs the query four times.

[eventLoopGroupProxy-4-2 @call-handler#6]  DEBUG Exposed - SELECT ... FROM ...
[eventLoopGroupProxy-4-2 @call-handler#6]  DEBUG com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Reset (isolation) on connection org.postgresql.jdbc.PgConnection@e36bb2a
[eventLoopGroupProxy-4-2 @call-handler#6]  DEBUG Exposed - SELECT ... FROM ...
[eventLoopGroupProxy-4-2 @call-handler#6]  DEBUG com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Reset (isolation) on connection org.postgresql.jdbc.PgConnection@e36bb2a
[eventLoopGroupProxy-4-2 @call-handler#6]  DEBUG Exposed - SELECT ... FROM ...
[eventLoopGroupProxy-4-2 @call-handler#6]  DEBUG com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Reset (isolation) on connection org.postgresql.jdbc.PgConnection@e36bb2a
[eventLoopGroupProxy-4-2 @call-handler#6]  DEBUG Exposed - SELECT ... FROM
[eventLoopGroupProxy-4-2 @call-handler#6]  DEBUG com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Reset (isolation) on connection org.postgresql.jdbc.PgConnection@e36bb2a

I of course only want to be running a single transaction once on one open connection only, but I have no idea what is going on here. I have the same issue with both suspended/async and synchronous transactions. Also, the issue presents itself when using both the DSL and DAO Exposed APIs.

Thank you.

问题回答

暂无回答




相关问题
摘录数据

我如何将Excel板的数据输入我的Django应用? I m将PosgreSQL数据库作为数据库。

Postgres dump of only parts of tables for a dev snapshot

On production our database is a few hundred gigabytes in size. For development and testing, we need to create snapshots of this database that are functionally equivalent, but which are only 10 or 20 ...

How to join attributes in sql select statement?

I want to join few attributes in select statement as one for example select id, (name + + surname + + age) as info from users this doesn t work, how to do it? I m using postgreSQL.

What text encoding to use?

I need to setup my PostgreSQL DB s text encoding to handle non-American English characters that you d find showing up in languages such as German, Spanish, and French. What character encoding should ...

SQL LIKE condition to check for integer?

I am using a set of SQL LIKE conditions to go through the alphabet and list all items beginning with the appropriate letter, e.g. to get all books where the title starts with the letter "A": SELECT * ...

热门标签