我在我的应用程序中使用hibernate 3.2.2。对于连接池,我们使用的是c3p0 0.9.1。 我在View模式中使用Generic DAO Pattern和Open Session来进行数据库操作 我们正在开发现有网站的新网站。现在,在现有应用程序中,访问次数为50万次。我对c3p0配置感到困惑。在什么基准,我决定打开连接的否定。 max-connection,min-connection,idletime,timeout等....
答案 0 :(得分:3)
如果请求进入并且没有可用的免费连接,您首先需要确定池将执行的操作。它会抛出异常吗?返回null?阻止,直到另一个连接返回到池?
一旦你知道在超出容量时会发生什么,请考虑如何在调用代码中处理这个问题,以及在什么情况下可以接受这种情况。在某些时候,随着连接数量的增加,您将不得不开始拒绝提供某些请求,但只有您可以决定这一点。实际点取决于很多因素,包括
等依此类推。
希望从上面你可以得出你需要能够同时处理的请求数量(如果有不同的类型请求,你可能需要这个也关注)。然后,只需查看传入请求如何获取并使用连接,推理和分析,直到您发现池中连接的数量,这是维持目标连接速率所需的。
不要忘记考虑非请求线程(例如工作池)从同一个池获取自己的连接(池需要更大),以及仅为其部分执行持有连接的请求(游泳池可以更小)。
答案 1 :(得分:0)
对测试实例进行概要分析,进行小配置更改,然后最终通过负载测试进行验证。