'Too many connections' 在 Pentaho 中创建仪表板时在 postgres 中创建

'Too many connections' created in postgres when creating a dashboard in Pentaho

我在 Pentaho PUC 中创建了一个仪表板,它使用 postgres 连接作为数据源。大多数时候这会导致 postgres 说

Too many clients already in Postgres'


SHOW max_connections; 查询显示最大连接数为 200

我使用了这个查询 select * from pg_stat_activity;。从那 90% 的连接是从 Pentaho 服务器到我在新仪表板中用作数据源的数据库。在大多数连接中,waitingfstateidle。这看起来像 Pentaho 创建了太多的连接。我怎样才能限制或控制它?我已经尝试从 postgres 端将连接限制从默认的 100 增加到 200,但问题仍然存在。

从原始问题的评论线程来看,您似乎在仪表板上使用 SQL 而不是 JDBC 连接。这将为每个需要 运行 的查询创建不同的数据库连接,如果它们有点慢,您可能会达到并发连接数的限制。

相反,您应该设置一个 JNDI:在您的数据源管理上 window 添加一个新连接并设置正确的凭据。在高级选项下设置一个连接池。给它一个有意义的名字。从那时起,您应该在仪表板查询中引用该名称,并在 JNDI 上使用 SQL 而不是在 JDBC 上使用 SQL。这样每个 SQL 查询都会从连接池中获取一个连接,而数据库每次只能看到 1 个连接,尽管 运行 有多个查询。