IIS WebService 内存溢出问题的修改过程
来源:互联网 发布:幼儿园网络研修的简报 编辑:程序博客网 时间:2024/06/06 03:06
最近之前开发的数据同步定时服务经常出现服务停止的情况,根据系统日志,最终定位为IIS上的webservice抛出System.outOfMemory异常,也就是内存溢出的异常。于是,对该问题进行各种尝试性修复。主要收获到了以下几点:
1、IIS内存限制
IIS默认为当内存达到物理内存的60%进行回收,因此当站点运行占用内存达到60%时,会产生内存溢出的错误。
2、在进行数据查询的时候,要考虑数据量的问题。
进行数据同步,主要是从数据源查询数据,写入到另外一个数据库。开始只是进行了时间限制。但是往往会存在可能会同步大量数据的情况或者同一服务同步大量类别数据的情况,如果不进行限制,自然就会占用大量的内存,引起内存溢出的异常。
所以在查询时,要使用分页,这样无论需要同步数据量多少,都不会占用非常大的内存了。
3、ORACLE分页的问题。
在修改过程中开始使用
SELECT xx.* FROM(
SELECT t.*,row_number() over(ORDER BY o_id)AS num FROM t_order t
)xx
WHERE num BETWEEN 0 AND 500
这种语句进行分页,但是在运行过程中会出现丢失数据的问题。发现这种排序分页,并不是按照排序字段进行分页的。
具体的原因还未找到,于是使用了
SELECT xx.* FROM(
select rownum as rownumber,t_order .* from
(SELECT * FROMt_order )t_order
)xx
WHERE num BETWEEN 0 AND 500
的语句进行排序和分页。
目前运行未发现数据丢失。之前的情况为何会出现丢失的情况,过后再查找。
目前来看,暂时未出现内存溢出异常和数据丢失的情况,过后再观察看看吧。暂时记录,留备以后使用。
知行办公,专业移动办公平台 https://zx.naton.cn/
【总监】十二春秋之,3483099@qq.com;
【Master】zelo,616701261@qq.com;
【运营】狼行天下,897221533@qq.com;
【产品设计】流浪猫,364994559@qq.com;
【体验设计】兜兜,2435632247@qq.com;
【iOS】淘码小工,492395860@qq.com;iMcG33K,imcg33k@gmail.com;
【Android】人猿居士,1059604515@qq.com;思路的顿悟,1217022114@qq.com;
【java】首席工程师MR_W,feixue300@qq.com;
【测试】土镜问道,847071279@qq.com;
【数据】喜乐多,42151960@qq.com;
【安全】保密,你懂的。
- IIS WebService 内存溢出问题的修改过程
- eclipse有关内存溢出的问题修改集合
- 内存溢出的问题
- 解决使用MSComm控件过程中内存溢出的问题
- windows修改tomcat内存溢出问题
- 解决Webservice内存溢出
- domino的内存溢出问题
- Jboss 内存溢出的问题!
- 解决内存溢出的问题
- bitmap内存溢出的问题
- Jboss 内存溢出的问题!
- 关于内存溢出的问题
- MyEclipse的内存溢出问题
- Hive内存溢出的问题
- myeclipse内存溢出的问题
- JAVA内存溢出的问题
- java --内存溢出的问题
- 内存溢出问题的解决方案
- 【DP】回文的最小分割数
- poj1852 Ants
- C 语言各个数据类型所占字节数
- oracle中like总结
- poj3617 Best Cow Line
- IIS WebService 内存溢出问题的修改过程
- 【leetcode】38. Count and Say(Python & C++)
- 找出1000以内的完全数。
- spring boot 开发热部署配置 (idea IDE)
- TabLayout使用
- C#基础-006(2)if练习 如果一个数是3的倍数 那么就输出"过" 否则输出该数
- java String类计算HashCode散列码的方法
- 封装Map 用于不同项目之间传值
- poj3069 Saruman's Army