[pgpool-general: 2126] Can PgPool-2 be used with protocol version 2?

Lachezar Dobrev l.dobrev at gmail.com
Thu Sep 12 19:13:12 JST 2013

  Hello colleagues,

  Recently I've been experimenting with PgPool-2 (3.1 and 3.3) and
PostgreSQL 9.1 in order to achieve some load-balancing for our

  The application stack contains (relevant pieces):
  Tomcat, Springframework, Hibernate, JDBC PostgreSQL Driver.

  My attempts currently fail due to some… inconsistencies… between the
various components of the application stack, namely the use of NULL as
query arguments (no support for untyped NULLs) and problems with using
Temporal types in type-agnostic operations (? IS NULL).
  That forces us to use Protocol Version 2 to work around these issues.

  However I am unable to perform any transactional operations on the
PgPool-2 mediator. I have a (short) test-case in Java (using JDBC
Driver) that attempts to execute a small transaction, but I end up
with this:

org.postgresql.util.PSQLException: kind mismatch among backends.
Possible last query was: "COMMIT" kind details are: 0[C] 1[N: WARNING:
 there is no transaction in progress
    at org.postgresql.core.v2.QueryExecutorImpl.receiveErrorMessage(QueryExecutorImpl.java:561)
    at org.postgresql.core.v2.QueryExecutorImpl.processResults(QueryExecutorImpl.java:484)
    at org.postgresql.core.v2.QueryExecutorImpl.execute(QueryExecutorImpl.java:364)
    at org.postgresql.core.v2.QueryExecutorImpl.execute(QueryExecutorImpl.java:258)
    at org.postgresql.jdbc2.AbstractJdbc2Connection.executeTransactionCommand(AbstractJdbc2Connection.java:793)
    at org.postgresql.jdbc2.AbstractJdbc2Connection.commit(AbstractJdbc2Connection.java:817)

  I am not exactly sure what happens, but it seems, that the 'COMMIT'
goes to the slave server, that has no transaction in progress, while
the transaction on the main server is left hanging.

  Q: Can I use PgPool-2 with Protocol Version 2?
  Can I do anything to make these work?


More information about the pgpool-general mailing list