论坛首页 Java企业应用论坛

连接池控制多个数据源

浏览 15078 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (2)
作者 正文
   发表时间:2009-07-09  
需求场景如下:
J2EE系统有两个数据库:数据库A,数据库B(都是Oracle数据库,以读数据为主)
现要求在系统与数据库中间加入连接池。
数据库A是主数据库,平时正常连接是连接到A读写数据。
当A数据库挂了,连接不上或者忙碌用户达到某个数量的时候(我们假如是10个),系统访问数据库B。
当A数据库恢复正常了或者忙碌用户小于某个数量的时候(我们假如是1),重新连接回数据库B。

初步采用的C3P0连接池方案。
为系统配置两个数据源(Datasource),用程序监控两个数据源的使用情况。
并且根据实际情况做切换。

这是一个初步想法,不知道能不能行得通,有没有什么要特别考虑的,请各位大大指点一二。
谢谢。
   发表时间:2009-07-10  
HA可以再db那做掉, 何必弄到连接池那里,
0 请登录后投票
   发表时间:2009-07-10  
GRDJE 写道
HA可以再db那做掉, 何必弄到连接池那里,

1.是不是所有database都可以做到还是只有oracle可以。
2.另外,如果database A是异常挂掉,譬如死机网络中断之类,它能那么智能转到备份database B?
3.连接池有没有那么智能,可以自己控制住多个数据源呢?

谢谢你的回复
0 请登录后投票
   发表时间:2009-07-10  
1.上档次的数据库应该都可以
2.要totally ha, 你得有那个钱, 网络要ha, 电源要ups,......太多了
3.连接池是什么你懂吗?
0 请登录后投票
   发表时间:2009-07-10  
此问题属于集群与负载均衡问题。

可以研究一下相应web服务器或者应用服务器的配置。
0 请登录后投票
   发表时间:2009-07-10   最后修改:2009-07-10
多加一层,用什么DS还是用什么DS  修改下获取DS的接口就可以了,PROXOOL的就是这么做的(别名).
0 请登录后投票
   发表时间:2009-07-14  
用心跳 检测 数据库连接状况
0 请登录后投票
   发表时间:2009-07-14  
这个问题我深啊,呵呵,去打数据库高手吧,呵可
0 请登录后投票
   发表时间:2009-07-14  
考虑问题:
1、应用服务器宕掉了!
2、网络被阻塞了!
3、DB挂了!
等等。
有些事不能想像的!
0 请登录后投票
   发表时间:2009-07-14  
非常简单,搞个全局静态变量 DB_NO,缺省为0,

系统启动时,把几个连接池都载入,放到 DBPool[] 数组中,

getConnection() 方法 中, 根据DB_NO ,返回相应连接池 DBPool[DB_NO] 的 connection,

系统运行时可以动态改变DB_NO,动态切换数据库。

至于切换策略,根据你的系统实际情况自己编写。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics