试图找出如何管理/使用长期数据库连接.我没有这种经验,因为我只使用数据库与小型系统(最多约150个并发用户,每个用户都有自己的数据库用户/通行证,因此任何时候都有多达150个长期数据库连接)或网页(每个页面请求都有自己的数据库连接,持续时间不到一秒,因此并发数据库的数量并不大.)
这次将有一个Java服务器和Flash客户端.Java连接到PostgreSQL.预计连接将是长期存在的,即,当Flash客户端连接到Java服务器并且在Flash客户端断开连接时,它们预计会启动.在所有用户(客户端)之间共享单个连接或为每个客户端建立专用连接会更好吗?或者其他一些解决方案会更好?
*)单/共享连接:
*)私人连接:
一种解决方案是引入超时,即如果DB连接未用于15/60/900(?)秒,则会断开连接.当用户再次需要DB时,它会重新连接.这对我来说似乎是一个很好的解决方案,但我想知道对此可能是合理的限制,例如,可能是并发数据库连接的最大数量,应该使用什么超时等.
另一种解决方案是将查询分组为两种"类型" - 一种可以安全地使用单个共享长生命连接的类型(例如,"更新用户设置last_visit = now(),其中id =:user_id"),以及另一种需要的类型私人短生活联系(例如,可能会做一些繁重工作或使用交易的东西).这个解决方案对我来说似乎并不吸引人,但如果这是应该做的,我可以尝试这样做......
那么......在这种情况下,其他开发者会做些什么呢?还有其他合理的解决方案吗?
我不使用长期连接.我使用连接池来管理连接,并且只在执行操作时保留它们:获取连接,执行我的SQL操作,返回到池的连接.它更具可扩展性,不会遇到事务问题.
让容器为您管理池 - 这就是它的用途.
| 归档时间: |
|
| 查看次数: |
1629 次 |
| 最近记录: |