我通过 pgbouncer 连接到Postgresql,并启用了事务池模式。据我所知,在这种模式下,pgbouncer可以在不中断会话的情况下为多个客户端共享相同的连接。因此,几个客户端可以在一个会话中顺序地工作,一个接一个。问题是,当pgbouncer从连接中分离出一个客户端并将另一个客户端连接到此连接时,是否关心重置会话参数?
特别是,我的应用程序获得连接,然后发出类似这样的内容:
executeQuery(connection,"select set_config('myapp.user','fonar101',false)");
..../*other actions*/
commit(connection);
提交后,pgbouncer可以将我的应用程序与连接分离并将其恢复到其池中,对吧?所以,
pgbouncer如何关心这件事?
答案 0 :(得分:1)
我说的恰恰相反:
https://pgbouncer.github.io/config.html
<强>交易强>
事务完成后,服务器将被释放回池中。
这意味着当您SET SESSION
(SET的默认值)而未指定SET LOCAL
时,您更改了在池中共享会话的所有事务的设置...
答案 1 :(得分:0)
根据pgbouncer文档,事务池模式中的临时表为doesnt support SET / RESET和ON COMMIT DROP。