电脑里突然产生大量heapdump.和javacore.的文本文件,应该怎么处理

电脑里突然产生大量heapdump.和javacore.的文本文件,应该怎么处理,第1张

这个问题在websphere上并不少见,简单来说,就是出现过多内存泄漏,或者分配过多大内存等,websphere的垃圾回收功能失败而导致。除了产生heapdumptxt,还会产生javacoretxt,偶尔产生Core文件。heapdump期间,websphere失去响应,过后,websphere可能恢复正常,也可能崩溃。

ibm网站上有不少关于这个问题的信息。

根据我的经验,解决这个问题的方法为:

1进入was管理控制台,选择 应用程序服务器 > server1 > 进程定义 > Java 虚拟机,将"最大堆大小"改为768或1024以上(跟机器内存相关,你的机器最好有较大内存)。保存。

2优化你的程序,减少要求分配较大内存的设计,优化数据连接池。

3给was打补丁。ibm网站上有相关补丁下载,不过最好升级到同系列的最新版本

前两步多数可以改善websphere的运行情况,但最好执行第三步。

一般这个问题也与 *** 作系统有关,要彻底解决,还得综合分析

用Jsp获取、用Java类获取或用servlet获取项目绝对路径。

一、用Jsp获取

1、获取文件的绝对路径

String file="文件";(例如:datamdb)

String path=applicationgetRealPath(file);

2、获取文件的绝对路径

String p2=requestgetRequestURI();

3、获取当前jsp页面的路径

String p3=requestgetContextPath();

4、获取当前项目的路径

String p4=requestgetServletPath(); 

二、用Java类获取

1、获取Eclipse路径

String a1=SystemgetProperty("userdir");

2、获取当前的classpath路径

String a2=类名classgetResource("")toString();

String a3=DBConnectionclassgetResource("/")toString();

String a4=DBConnectionclassgetClassLoader()getResource("")toString();

String t=ThreadcurrentThread()getContextClassLoader()getResource("")getPath();

3、获取文件的绝对路径

如果要获取WebContent目录下的文件绝对路径怎么办?可以用下面的方法

String t=ThreadcurrentThread()getContextClassLoader()getResource("")getPath();

int num=tindexOf("metadata");

String path=tsubstring(1,num)replace('/', '\\')+"项目名\\WebContent\\文件";

三、用servlet获取

1、获取项目的绝对路径

requestgetSession()getServletContext()getRealPath("")

2、获取浏览器地址

requestgetRequestURL()

3、获取当前文件的绝对路径

requestgetSession()getServletContext()getRealPath(requestgetRequestURI())

这4个文件夹是一套的 全部的功能是这4个文件夹一起完成的 action接收界面参数的代码, actionform core 这两个文件夹,应该一个是存放数据的对象,一个是业务处理的代码 ,dao 是 *** 作数据库的代码。

core文件是由应用程序收到系统信号后崩溃产生的,该文件中记录了程序崩溃的原因(例如收到那种信号),调用堆栈和崩溃时的内存及变量值等等的信息。 打开core文件与编译时使用的编译器有关,但绝大多数linux程序是使用gcc编译器编译的,因此可使用对应gdb调试器打开,命令格式如下: $ gdb 应用程序文件名 core文件名 举例: $ gdb /usr/bin/gedit ~/core ------ 查看由gedit崩溃产生的core文件 (gdb) bt ------ 或者backtrace, 查看程序运行到当前位置之前所有的堆栈帧情况) (gdb) quit ------ 退出 如果不知道core文件由哪个文件产生的,可使用file命令显示 $ file cor

通过Javacore提供的信息对JVM进行一个全面的分析,除了了解垃圾回收情况、JVM相关配置信息外,分析重点可放在线程执行情况上,分析哪些线程在等待,哪些在执行,以便快速缩小问题范围。IBM Thread and Monitor Dump Analyzer for Java分析工具可以让我们清晰的分析Javacore文件,在IBM Thread and Monitor Dump Analyzer for Java工具中,请求线程可分为以下几种状态:

1死锁,Deadlock(重点关注)

2执行中,Runnable(重点关注)

3等待资源,Waiting on condition(重点关注)

4等待监控器检查资源,Waiting on monitor

5暂停,Suspended

6对象等待中,Objectwait()

7阻塞,Blocked(重点关注)

8停止,Parked

Deadlock:死锁线程:一般指多个线程调用间,进入相互资源占用,导致一直等待无法释放的情况。

Runnable:一般指该线程正在执行状态中,该线程占用了资源,正在处理某个请求,有可能正在传递SQL到数据

库执行,有可能在对某个文件 *** 作,有可能进行数据类型等转换。

Waiting on condition:等待资源,如果堆栈信息明确是应用代码,则证明该线程正在等待资源,一般是大

量读取某资源,且该资源采用了资源锁的情况下,线程进入等待状态,等待资源的读取。又或者,

正在等待其他线程的执行等。

Blocked:线程阻塞,是指当前线程执行过程中,所需要的资源长时间等待却一直未能获取到,被容器的线程管

以上就是关于电脑里突然产生大量heapdump.和javacore.的文本文件,应该怎么处理全部的内容,包括:电脑里突然产生大量heapdump.和javacore.的文本文件,应该怎么处理、D:\workspace\.metadata\.plugins\org.eclipse.wst.server.core、java项目 src文件夹下有action actionform core dao 文件夹等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10157922.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存