Paul Lindner wrote:
> the assumption of a singular
> client->server backend is causing this problem.
Well, yes, that's fairly fundamental to the client-server protocol. It
sounds like pgbouncer is breaking the protocol.
You could perhaps do transparent statement/portal renaming in pgbouncer
but that seems to be only scratching the surface of the problem.
Consider your case here:
> * Client A creates statement S_1, fetches results.
> When finished the statement is put in a cleanup queue.
> * time passes
> * pgbouncer notices that client A is idle and reassigns backend to
> client B
Ok, now client A wakes up and wants to reuse S_1. What happens? The
backend that knows about S_1 is currently in use by B.
Changing the JDBC driver to handle a "server" that doesn't follow the
documented server protocol seems a bit backwards. I think you're going
to have to teach pgbouncer a whole lot more about statements and portals
to get this one working.
-O