我在Pentaho PUC中创建了一个仪表板,它使用postgres连接作为数据源。大多数时候,这会导致postgres说
Postgres已经有太多客户了
显示max_connections;查询显示最大连接数为200
我使用了这个查询
select*frompg_stat_activity;
。从那90%的连接是从Pentaho服务器到我在新仪表板中用作数据源的数据库。等待
是f
并且状态
在大多数连接中是空闲
。这看起来像Pentaho创建了太多的连接。我如何限制或控制它?我已经尝试从postgres方面将连接限制从默认100增加到200,但问题仍然存在。
共1个答案
匿名用户
从最初问题的注释线程来看,您似乎在仪表板上使用了SQL的JDBC连接。这将为每个需要运行的查询创建不同的数据库连接,如果它们有点慢,您可能会达到并发连接数的限制。
相反,您应该设置一个JNDI:在数据源管理窗口中添加一个新连接并设置正确的凭据。在高级选项下,设置一个连接池。给它一个有意义的名称。从那时起,您应该在仪表板查询中引用该名称,并使用JNDI上的SQL,而不是JDBC上的SQL。这样,每个SQL查询都将从连接池中获得一个连接,DB每次只能看到一个连接,尽管运行了多个查询。
相关问题
- Android:在模块jefied-play-services-测量和jefied-play-services-测量-impl中发现重复类
- 在Hashmap中查找匹配的键/值对
- 如何迭代Hashmap并与同一Hashmap中的其他键进行组合以比较它们的对象
- HashCode-如果相等的对象碰巧在同一个桶中散列会发生什么?
- 如何防止对数组中类对象的重复引用?
- 如何以及何时在HashMap中完成重新散列
- 在hashmap或hashtable中重新散列的成本
- HashMap如何识别内部数组中的哪些位置包含元素?
- 当HashMap增加其大小时,HashMap中值的索引会发生什么?
- @BeforeClass在ktor测试类中不工作
- Jest vanilla JavaScript JSDOM刷新失败,切换beforeAll到before每一个后的第二次测试中断
- 在笑话中,定义全局变量是否与在BeforeAll中定义相同?
- 静态编程语言中@BeforeAll的正确解决方法是什么
- 线程“main”java. lang.NoClassDefFoundError中的异常:在Intellij[Spring boot]中
- 线程“main”java. lang.NoClassDefFoundError中的异常:org/apache/log4j/ProvisionNode
- 异步管道是否从服务中定义并从组件变量指向的可观察对象取消订阅?
- 结合主体时不更新在模板中的异步管道可观察
- 组件中的Angular 2重复订阅
- 应该在ngOnDestroy()中将Angular组件变量设置为null吗?
- Angular2处理非组件类中的订阅