Oracle清理所有内存中的数据源链接_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Oracle清理所有内存中的数据源链接

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

 2018/1/23 12:37:09  shihuan830619  程序员俱乐部  我要评论(0)
  • 摘要:在实际生产过程可能会遇到频繁的更改Oracle数据库的PackageBody的需求,如果用了中间件级别的数据源就需要重新加载数据源来实现更改后的Package包生效的目的,有两种做法可以使数据源在内存中失效再重新加载到内存,方法如下:第一、停掉war包,即:重启应用包,重启应用包肯定重新加载数据源了。第二、把中间件的数据源断掉,然后再重新部署并target到应用war上,这样也实现了数据源重新被内存加载的过程。如果不想在应用层面动手脚。那么就只能在数据库层面动手脚了
  • 标签:ORA 数据 Oracle 内存
在实际生产过程可能会遇到频繁的更改Oracle数据库Package Body的需求,如果用了中间件级别的数据源就需要重新加载数据源来实现更改后的Package包生效的目的,有两种做法可以使数据源在内存中失效再重新加载到内存,方法如下:
第一、停掉war包,即:重启应用包,重启应用包肯定重新加载数据源了。
第二、把中间件的数据源断掉,然后再重新部署并target到应用war上,这样也实现了数据源重新被内存加载的过程。


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


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


】上面的代码是Oracle数据库驱动包里的方法,其他数据库驱动包不晓得有没有类似的方法。
发表评论
用户名: 匿名