程序在resin中运行时产生意外多条线程
2011-12-15 16:37
267 查看
说明:resin 用的版本是4.0的
由于需要程序运行时产生一条线程,对特定数据进行处理;
一直以来都运行得很正常,除了程序因为BUG太多缘故,运行一段时间后就会报内存溢出错误,
一直没找到真正原因,因此,经常得过段时间就要重启resin
某天突然发现数据被重复处理了,生成了重复的记录,时间点完全一样;
因为这些数据在处理时会进行排重处理
因此,按照程序的正常处理逻辑是不可能有重复数据的,并且时间点是一样的,
检查了很多遍相关代码就是看不出哪里会出问题
重启resin后,这种现象就又没有了,有段时间,重复数据特别多,
可能隔1,2天就又会出现这种情况,进行代码调试也调试不出有这种情况
最后通过跟踪resin处理日志和程序日志,发现当出现这种情况时,数据被重复生成了,
相关日志信息都打印了二次,就好像这个线程突然会分身术变成了二个一模一样的线程了;
但是又想不出是什么情况下才会让线程突然分身成2条。
在网上找了很久资料,都没找到有人说有这种情况;
后来无意间看到一张贴子,说的是resin覆盖class的时候,会重新读web.xml
而我的线程是放在容器的ini方法里产生的。
public class ContainerListen implements ServletContextListener {
public void contextDestroyed(ServletContextEvent sce) {
}
public void contextInitialized(ServletContextEvent sce) {
//开启 实时线程
new SSThread();
}
}
对照产生重复记录的日期,发现产生重复记录时我都有修改程序,因为知道resin会自动加载修改的类,
所以修改类传到服务器时都没有重启resin,悬了几个月的问题终于解决了。哎!
参考:http://topic.csdn.net/t/20040628/13/3128123.html
/blockquote
由于需要程序运行时产生一条线程,对特定数据进行处理;
一直以来都运行得很正常,除了程序因为BUG太多缘故,运行一段时间后就会报内存溢出错误,
一直没找到真正原因,因此,经常得过段时间就要重启resin
某天突然发现数据被重复处理了,生成了重复的记录,时间点完全一样;
因为这些数据在处理时会进行排重处理
因此,按照程序的正常处理逻辑是不可能有重复数据的,并且时间点是一样的,
检查了很多遍相关代码就是看不出哪里会出问题
重启resin后,这种现象就又没有了,有段时间,重复数据特别多,
可能隔1,2天就又会出现这种情况,进行代码调试也调试不出有这种情况
最后通过跟踪resin处理日志和程序日志,发现当出现这种情况时,数据被重复生成了,
相关日志信息都打印了二次,就好像这个线程突然会分身术变成了二个一模一样的线程了;
但是又想不出是什么情况下才会让线程突然分身成2条。
在网上找了很久资料,都没找到有人说有这种情况;
后来无意间看到一张贴子,说的是resin覆盖class的时候,会重新读web.xml
而我的线程是放在容器的ini方法里产生的。
public class ContainerListen implements ServletContextListener {
public void contextDestroyed(ServletContextEvent sce) {
}
public void contextInitialized(ServletContextEvent sce) {
//开启 实时线程
new SSThread();
}
}
对照产生重复记录的日期,发现产生重复记录时我都有修改程序,因为知道resin会自动加载修改的类,
所以修改类传到服务器时都没有重启resin,悬了几个月的问题终于解决了。哎!
参考:http://topic.csdn.net/t/20040628/13/3128123.html
/blockquote
相关文章推荐
- ios程序,顶部和底部产生空白——程序不能全屏运行
- 运行java程序产生hs_err_pid之类错误日志解决方法!
- JavaScript引擎是单线程运行的,浏览器无论在什么时候都只且只有一个线程在运行JavaScript程序
- Cocos2d-x Eclipse下程序运行产生错误Effect initCheck() returned -1
- android 屏幕保护程序--------Fade In 与 Fade Out 特效与运行线程
- 程序开过多线程,导致hadoop作业无法运行成功——Call to hadoop1:9000 failed on lo cal exception: java.io.IOException: Coul
- 主程序运行完了,但是不想他退出,有子线程要继续运行
- java程序中,如何安全的结束一个正在运行的线程
- Cocos2d-x Eclipse下程序运行产生错误Effect initCheck() returned -1
- C# 开发技巧]如何防止程序多次运行 线程 进程
- android脚步---如何看log之程序停止运行,和UI线程和非UI线程之间切换
- java线程控制,当stop按钮就停止,当start按钮就开始运行,当按stop时程序又停止的实现方法
- C语言下产生大量的随机数和计算程序运行所用的时间
- Cocos2d-x Eclipse下程序运行产生错误Effect initCheck() returned -1
- C# 开发技巧]如何防止程序多次运行 线程 进程
- resin 一台主机多个端口运行不同的网站或程序
- 如何程序正常运行的时候,产生core文件
- VB程序运行时产生的错误号码的中文解释
- .NET程序运行过程产生的问题
- java程序中,如何安全的结束一个正在运行的线程?