【问题标题】:Issue with pgpool 3.5.4 and JDBCpgpool 3.5.4 和 JDBC 的问题
【发布时间】:2016-11-16 18:13:02
【问题描述】:

我有一个启用了 memcache 的 pgpool 3.5.4,我用它来连接到 红移。

我写了两个简单的程序,一个用 Java(JDBC postgresql-9.4.1212.jre6.jar)和 Python 中的另一个(使用 psycopg2 postgres 包),它只是连接到 pgpool,并执行一个简单的查询 (例如:select * from customer limit 10;)我注意到奇怪和 不同的行为。我还使用命令行工具运行了查询 psql.

1) 将 JDBC 与启用缓存的 pgpool 一起使用时出现错误

2016-11-15 10:56:27: pid 31043: FATAL: Backend throw an error message

2016-11-15 10:56:27:pid 31043:详细信息:退出当前会话,因为 来自后端的错误

2016-11-15 10:56:27:pid 31043:提示:BACKEND 错误:“门户”“pgpool31043” 不存在”

2) 在禁用缓存的情况下使用 JDBC 和 pgpool 可以正常工作

3) 使用带有缓存的 pgpool 的 psycopg2 或 psql 命令行 启用或禁用它的工作原理

谁能帮我理解为什么只有 JDBC 不起作用?

【问题讨论】:

    标签: postgresql jdbc pgpool


    【解决方案1】:

    JDBC 使用两种协议进行通信,简单查询协议和扩展查询协议。

    然而,pgpool II 不适用于扩展查询协议。

    在 github (https://github.com/pgjdbc/pgjdbc) 的 pgjdbc 驱动的文档中有一个名为 preferQueryMode 的参数。要解决此问题,只需将 preferQueryMode 设置为 simple,问题就会消失。

    到目前为止,我在两个客户中测试了这个设置,在 postgres 和 redshift 前使用 pgpool,它运行良好。

    【讨论】:

    • 谢谢,这让我们免去了很多麻烦!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    • 2011-02-03
    • 2013-01-06
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    相关资源
    最近更新 更多