On Thu, Mar 23, 2023, at 9:22 AM, PG Bug reporting form wrote:
This issue happens while reading from the logical replication slot (WAL2JSON
plugin).
When there are multiple sessions writing to Postgres tables and there is a
Postgres StringBuffer limit exceeded exception (processing transactions
greater than 1GB size), the associated LSN reported in the SQLException
object is incorrect.
If you have a big transaction then it is a format 1 limitation. In this case,
you have 2 options:
* use write-in-chunks parameter. It is only available for format 1;
* use format 2.
Format 1 is the default but format 2 avoid issues with big transactions.
Now, the Java logical decoding API reading from the slot will fail with Out
of memory error while processing the session 2's transaction. Exception
object received contains irrelevant LSN marked as associated LSN.
Note: Incase of single session writing to the database the Associated LSN is
clearly of the failing transaction.
I know nothing about JDBC, if the options above does not solve your problem, I
suggest that you ask in pgsql-jdbc mailing list. If after investigation, you
conclude that it is a wal2json limitation/bug, open a issue [1].