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

Tatsuo Ishii ishii at postgresql.org
Fri Sep 13 13:48:35 JST 2013


Unfortunately you cannot use load balancing with pgpool-II in version
2 protocol.  (the problem you are facing is another story of course...)

What are exactly the problems "untyped NULLs" or "IS NULL"?
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp

>   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
> applications.
> 
>   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?
> 
>   Lachezar
> _______________________________________________
> pgpool-general mailing list
> pgpool-general at pgpool.net
> http://www.pgpool.net/mailman/listinfo/pgpool-general


More information about the pgpool-general mailing list