PgBouncer Prepared Statement ERROR

Started by KK CHN9 months ago4 messagesgeneral
Jump to latest
#1KK CHN
kkchn.in@gmail.com

Hi ,

I am getting error when using PgBouncer(1.23.1 ) with Postgres 16
(RedHAT 9.4)

2025-07-18 00:00:00 IST ERROR: prepared statement "S_243" does not exist
2025-07-18 00:00:03 IST ERROR: prepared statement "S_205" does not exist
2025-07-18 00:00:03 IST ERROR: prepared statement "S_206" does not exist
2025-07-18 00:00:03 IST ERROR: prepared statement "S_207" does not exist

How to avoid these prepared statement Errors ?

Any hints most welcome,
Krishane

config as follows
[root@pgbouncer ~]# grep ^[^';;;'] /usr/local/etc/pgbouncer.ini
[databases]
transaction_db = host=dbmain.erss.in port=5444 dbname= transaction_db
mgt_db = host=dbmain.erss.in port=5444 dbname=mgt_db
....................................
tsp_db = host=dbmain.erss.in port=5444 dbname=tsp_db
[users]
[pgbouncer]
logfile = /var/log/pgbouncer/pgbouncer.log
pidfile = /var/run/pgbouncer/pgbouncer.pid
listen_addr = *
listen_port = 5444
auth_type = md5
auth_file = /usr/local/etc/pgbouncer.users
admin_users = myuser
stats_users = status_user,
pool_mode = transaction
server_reset_query = DISCARD ALL
server_reset_query_always = 1
ignore_startup_parameters = extra_float_digits, options, statement_timeout,
idle_in_transaction_session_timeout
max_client_conn = 5000
default_pool_size = 20
min_pool_size = 10
reserve_pool_size = 10
reserve_pool_timeout = 5
max_db_connections = 900
max_user_connections = 800
server_lifetime = 3600
server_idle_timeout = 60000
[root@pgbouncer ~]#

#2Greg Sabino Mullane
greg@turnstep.com
In reply to: KK CHN (#1)
Re: PgBouncer Prepared Statement ERROR

Make sure max_prepared_statements is set to nonzero in your config. See:

https://www.crunchydata.com/blog/prepared-statements-in-transaction-mode-for-pgbouncer

Cheers,
Greg

--
Crunchy Data - https://www.crunchydata.com
Enterprise Postgres Software Products & Tech Support

#3Laurenz Albe
laurenz.albe@cybertec.at
In reply to: KK CHN (#1)
Re: PgBouncer Prepared Statement ERROR

On Fri, 2025-07-18 at 18:22 +0530, KK CHN wrote:

I am getting error when using  PgBouncer(1.23.1 ) with  Postgres 16  (RedHAT 9.4)

2025-07-18 00:00:00 IST ERROR:  prepared statement "S_243" does not exist
2025-07-18 00:00:03 IST ERROR:  prepared statement "S_205" does not exist
2025-07-18 00:00:03 IST ERROR:  prepared statement "S_206" does not exist
2025-07-18 00:00:03 IST ERROR:  prepared statement "S_207" does not exist

How to avoid these prepared statement Errors ? 

Use a recent version of pgBouncer and set "max_prepared_statements"
high enough.

Yours,
Laurenz Albe

#4Achilleas Mantzios
a.mantzios@cloud.gatewaynet.com
In reply to: KK CHN (#1)
Re: PgBouncer Prepared Statement ERROR

On 7/18/25 13:52, KK CHN wrote:

Hi ,

I am getting error when using  PgBouncer(1.23.1 ) with Postgres 16 
(RedHAT 9.4)

2025-07-18 00:00:00 IST ERROR:  prepared statement "S_243" does not exist
2025-07-18 00:00:03 IST ERROR:  prepared statement "S_205" does not exist
2025-07-18 00:00:03 IST ERROR:  prepared statement "S_206" does not exist
2025-07-18 00:00:03 IST ERROR:  prepared statement "S_207" does not exist

How to avoid these prepared statement Errors ?

Before you start considering prepared statements, via pgbouncer, and
testing them to see if you benefit from them, you may at first disable
them all together.

Just set prepareThreshold=0 in the connection url, or params.

Show quoted text

Any hints most welcome,
Krishane

config as follows
[root@pgbouncer ~]# grep ^[^';;;']  /usr/local/etc/pgbouncer.ini
[databases]
transaction_db = host=dbmain.erss.in <http://dbmain.erss.in&gt; port=5444
dbname= transaction_db
mgt_db = host=dbmain.erss.in <http://dbmain.erss.in&gt; port=5444
dbname=mgt_db
....................................
tsp_db = host=dbmain.erss.in <http://dbmain.erss.in&gt; port=5444
dbname=tsp_db
[users]
[pgbouncer]
logfile = /var/log/pgbouncer/pgbouncer.log
pidfile = /var/run/pgbouncer/pgbouncer.pid
listen_addr = *
listen_port = 5444
auth_type = md5
auth_file = /usr/local/etc/pgbouncer.users
admin_users = myuser
stats_users =  status_user,
pool_mode = transaction
server_reset_query = DISCARD ALL
server_reset_query_always = 1
ignore_startup_parameters = extra_float_digits, options,
statement_timeout, idle_in_transaction_session_timeout
max_client_conn = 5000
default_pool_size = 20
min_pool_size = 10
reserve_pool_size = 10
reserve_pool_timeout = 5
max_db_connections = 900
max_user_connections = 800
server_lifetime = 3600
server_idle_timeout = 60000
[root@pgbouncer ~]#