I am testing the behavior of ConnectionFactory such as
io.r2dbc.postgresql.PostgresqlConnectionFactory
and
io.r2dbc.pool.ConnectionPool
There is a suspicion that PostgresqlConnectionFactory creates a new connection every time.
Can you tell me if this is true?
And can I use the r2dbc-proxy to see the number of open connections?
Kotlin:
val queryFormatter = QueryExecutionInfoFormatter.showAll()
val configuration = DefaultConfiguration()
val connectionFactoryProxy = ProxyConnectionFactory.builder(pool)
.onAfterQuery {
logger.info("QueryExecution: ${queryFormatter.format(it)}")
}
.build()
configuration.setConnectionFactory(connectionFactoryProxy)
Since QueryExecutionInfoFormatter registers the OnConnection consumer with itself, I thought it would show the number of open connections.
But it looks like it returns just a counter that increments each request.
[05-07 21:20:19,055] [INFO ] reactor-tcp-nio-2 - r2dbc: QueryExecution: Thread:reactor-tcp-nio-2(21) Connection:5 Transaction:{Create:0 Rollback:0 Commit:0} Success:True ...
[05-07 21:20:48,824] [INFO ] reactor-tcp-nio-2 - r2dbc: QueryExecution: Thread:reactor-tcp-nio-2(21) Connection:7 Transaction:{Create:0 Rollback:0 Commit:0} Success:True ...
[05-07 21:21:18,815] [INFO ] reactor-tcp-nio-2 - r2dbc: QueryExecution: Thread:reactor-tcp-nio-2(21) Connection:8 Transaction:{Create:0 Rollback:0 Commit:0} Success:True ...
[05-07 21:21:48,829] [INFO ] reactor-tcp-nio-2 - r2dbc: QueryExecution: Thread:reactor-tcp-nio-2(21) Connection:9 Transaction:{Create:0 Rollback:0 Commit:0} Success:True ...
[05-07 21:22:18,815] [INFO ] reactor-tcp-nio-2 - r2dbc: QueryExecution: Thread:reactor-tcp-nio-2(21) Connection:10 Transaction:{Create:0 Rollback:0 Commit:0} Success:True ...