Oracle清理所有内存中的数据源链接

2 篇文章 0 订阅
1 篇文章 0 订阅
在实际生产过程可能会遇到频繁的更改Oracle数据库的[color=red]Package[/color] [color=red]Body[/color]的需求,如果用了中间件级别的数据源就需要重新加载数据源来实现更改后的[color=red]Package[/color]包生效的目的,有两种做法可以使数据源在内存中失效再重新加载到内存,方法如下:
[color=blue]第一[/color]、停掉war包,即:重启应用包,重启应用包肯定重新加载数据源了。
[color=blue]第二[/color]、把中间件的数据源断掉,然后再重新部署并target到应用war上,这样也实现了数据源重新被内存加载的过程。


如果不想在应用层面动手脚。那么就只能在数据库层面动手脚了,可以在Oracle后台查询到所有的session连接,然后手动kill掉所有的session连接,这样也实现了应用war包所有的连接都要跟Oracle重新链接。


笔者这里是想介绍一下在应用war里写一段代码来断开所有的连接来实现清空内存中所有连接的事情,前提是应用war包用的是中间件的Oracle数据库驱动包,代码如下:
OracleConnectionCacheManager occm = ......
//Refresh all connections in cache
occm.refreshCache(cacheName, OracleConnectionCacheManager.REFRESH_ALL_CONNECTIONS);


【[color=red]注[/color]】上面的代码是Oracle数据库驱动包里的方法,其他数据库驱动包不晓得有没有类似的方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值