Postgresql pgpool 3.5.4和JDBC的问题

Postgresql pgpool 3.5.4和JDBC的问题,postgresql,jdbc,pgpool,Postgresql,Jdbc,Pgpool,我有一个启用memcache的pgpool 3.5.4,我用它连接到 红移 我写了两个简单的程序,一个是用Java(JDBC)编写的 postgresql-9.4.1212.jre6.jar)和Python中的另一个(使用psycopg2) postgres包),它只连接到pgpool,并执行一个简单的查询 (例如:从客户限额10中选择*)我注意到了奇怪和 不同的行为。我还使用命令行工具运行了查询 psql 1) 在启用缓存的情况下使用JDBC和pgpool时,出现了一个错误 2016-11-1

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

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

1) 在启用缓存的情况下使用JDBC和pgpool时,出现了一个错误

2016-11-15 10:56:27:pid 31043:致命:后端抛出错误消息

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

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

2) 在禁用缓存的情况下,将JDBC与pgpool一起使用是可行的

3) 将psycopg2或psql命令行与带缓存的pgpool一起使用 启用或禁用它可以工作


有人能帮我理解为什么只有JDBC不能工作吗?

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

然而,pgpool II不能很好地与扩展查询协议配合使用

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


到目前为止,我在postgres和redshift前使用pgpool对两位客户进行了测试,效果非常好。

谢谢,这为我们省去了很多麻烦!