论坛首页 Java企业应用论坛

连接池控制多个数据源

浏览 15079 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (2)
作者 正文
   发表时间:2009-07-16  
xieke 写道
非常简单,搞个全局静态变量 DB_NO,缺省为0,

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

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

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

至于切换策略,根据你的系统实际情况自己编写。


我暂时是这样实现的,切换策略的话也比较简单
条件1:当数据源1获取不到connection时
条件2:当数据源1忙碌的时候,C3P0有API可以做到获取当前数据源的忙碌用户数和空闲connection数
条件3:当数据源1挂了的时候,抛出异常那么获取数据源2

只是这个也有一个问题,如果在切换1和2的这段时间,有request进来,会不会出现异常情况呢。
这个间隔时间,如果出现异常,则考虑重试request机制,虽然用户等久点,但是不会出现错误。
0 请登录后投票
   发表时间:2009-07-16  
81261686 写道
我做过同一个应用里面使用spring根据域名切换四十个不同的数据源,楼主的方法应该可行。只是在切换条件上要好好考虑。


关于切换条件,这位仁兄有没有一些建议。我现在怕是遗漏。
不知道能不能指点一二啊。
0 请登录后投票
   发表时间:2009-07-16  
oracle的rac加数据源配置即可
0 请登录后投票
   发表时间:2009-07-16  
codger 写道
oracle的rac加数据源配置即可

我知道可以,但是上面不用我也没办法啊。
哎……
0 请登录后投票
   发表时间:2009-07-16  
这个我刚看到了 在blogjava中
   有一篇文章,不过他不是用连接池
可以参考一下
http://www.blogjava.net/youxia/archive/2009/07/15/286916.html
在SpringSide 3 中使用多个数据库的方法
0 请登录后投票
   发表时间:2009-07-17  
Weblogic 有multiple datasource 的概念,所以用Weblogic 的datasource 就能满足你的要求。看看其他开源的datasource是否有类似的实现。
0 请登录后投票
   发表时间:2009-07-17  
使用LVS
0 请登录后投票
   发表时间:2009-07-17  
你的应用场景没必要这样做

0 请登录后投票
   发表时间:2009-07-21  
双机冷备,HA吧。
想好就要投入啊。
赛的VCS不错。
0 请登录后投票
论坛首页 Java企业应用版

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