c3p0 数据库迁移

      近期需要迁移数据库,迁移后数据库ip将会改变。我们系统使用c3p0连接池,原本以为在数据库迁移后,只需修改服务器的hosts文件,将数据库配置文件中的对应域名映射到新的ip即可。但实验后发现此方法存在问题。

      可做如下实验:
  1. 在本机启动服务,查询正常
  2. 修改host文件,将数据库域名对应的ip修改为错误ip
  3. 重新查询,查询正常
  4. 拔掉本机网线后重新插上,查询正常
  5. 修改连接池的配置,将初始化链接数与最小链接数修改为1,重复上述实验,结果相同

      实验说明即使修改hosts了文件,此后通过连接池得到的Connection仍然使用的之前的ip。通过debug,可以发现服务启动后, 进行第一次查询前,c3p0连接 池将会被初始化, 这时相关的配置已经加载到内存。如下图所示,在连接池初始化后, com.mchange.v2.c3p0.ComboPooledDataSource类中dmds域(类型为com.mchange.v2.c3p0.DriverManagerDataSource)的jdbcUrl的域已经被赋值, 之后即使是修改了hosts文件, ComboPooledDataSource所 新建的连接还是会使用之前的配置。这样若要不修改其它配置,最方便的方法还是在修改了hosts文件之后重启服务,从而重新初始化连接池。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值