Re: JDBC: ERROR: portal "C_2" does not exist

From: Sehrope Sarkuni <sehrope(at)jackdb(dot)com>
To: Blake McBride <blake1024(at)gmail(dot)com>
Cc: pgsql-jdbc(at)lists(dot)postgresql(dot)org
Subject: Re: JDBC: ERROR: portal "C_2" does not exist
Date: 2022-03-11 19:04:21
Message-ID: CAH7T-aoUuUO3EYHzcdW8QnyYsbeonk1YLpHOyHZwJfipomYxLA@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

When auto commit is diabled and using a non-zero fetch size, the pgjdbc
driver creates a portal to read the query results from the server in chunks
of fetch size. The portals have a string identifier and the driver
generates them sequentially per connection with a "C_" prefix, so "C_1", "
C_2", "C_3", ... etc.

As you read results via ResultSet.next(), the driver checks if it has the
next row already buffered. If not, it reads from the named portal to
retrieve the next chunk of fetchSize quantity of rows.

A fetch size of 50 and the error happening at row 51 likely means that
something either closed the portal or the connection itself is not correct.

Are you using a connection pool like pgbouncer in between your Java
application and the database server?

If so, the connection pooler must be transaction aware to ensure that the
same connection is used throughout the entire transaction.

If not, try creating a minimal example that reproduces the error.

Regards,
-- Sehrope Sarkuni
Founder & CEO | JackDB, Inc. | https://www.jackdb.com/

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Dave Cramer 2022-03-11 19:29:28 Re: JDBC: ERROR: portal "C_2" does not exist
Previous Message Blake McBride 2022-03-11 18:07:09 JDBC: ERROR: portal "C_2" does not exist