我在MAC OSX山狮上遇到了TomEE 1.5.1和VisualVM 1.7.0_09的一个非常奇怪的问题.

TomEE加载一些webapp后.使用VisualVM连接本地TomEE进程需要很长时间,连接后gc按钮被禁用,我无法进行堆转储. VisualVM的日志显示一些错误.

com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded
    at sun.tools.attach.BsdVirtualMachine.<init>(BsdVirtualMachine.java:90)
    at sun.tools.attach.BsdAttachProvider.attachVirtualMachine(BsdAttachProvider.java:63)
    at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:213)
    at com.sun.tools.visualvm.attach.AttachModelImpl.getVirtualMachine(AttachModelImpl.java:104)
Caused: java.io.IOException: Unable to open socket file: target process not responding or HotSpot VM not loaded

.java_pid< pid>文件未在tmp文件夹中创建.

但是如果我在启动它之后和加载任何webapps之前使用VisualVM连接TomEE,那么.java_pid< pid>文件将被创建,VisualVM将立即连接到它,堆转储工作.

另一个解决方法是修改catalina.sh以将tools.jar添加到Classpath并删除openejb javaagent,然后在TomEE完全启动后连接正常工作.

无法在ubuntu机器上重现.

解决方法

可能jvm内存不足.我见过很多次了.
尝试:

> increasing memory limits.
>将VisualVM连接到jvm.
>部署您的应用程序.
>并运行内存采样器,分析器或堆转储来诊断问题.你可能有内存泄漏.如果您遇到内存问题,堆转储是最安全的方法.您也可以在take heap dump using command line中稍后在VisualVM中对其进行分析.

还要确保您的系统内存不足.

java – VisualVM连接到本地TomEE非常慢,不能进行堆转储的更多相关文章

  1. 如何找出Android 2的位图有多少可用堆大小?*?

    我们的应用程序使用了很多位图.它适用于例如G1,XOOM.但是在HTCDesire上有一个OutOfMemory错误.在代码中我们使用try/catch并且所有设备抛出异常,但HTC只是在没有OOM异常的情况下杀死应用程序.我们将位图的内存限制在12Mb,似乎这个解决方案解决了问题,但客户仍然在HTCDesireHD上遇到问题.即使有12Mb的限制也有OOM.这是日志:AFAIK设备有不同的堆大小限制.在我看来,系统应至少提供16MB,但我们的OOM为12mb.我的问题是:如何找出Android2的位图可

  2. android – Logcat Message中pid,uid和gids的含义是什么?

    解决方法这些是标准的Linux术语:>pid=进程ID>uid=拥有该进程的应用程序的用户ID>gid=拥有该进程的应用程序的组ID

  3. android – 确定Activity的可用堆空间(防止OutOfMemoryException)

    我有一个Activity,它将一个文件从外部存储器加载到内存中,并在内存中进行一些解析/操作/等操作.在我加载它之前,我想猜测这样做是否会导致OutOfMemoryException并使Activity崩溃从上面提到的答案中,我提出:所以,问题:1)我疯了吗?2)如何从MemoryInfo对象中总计值来估计活动/任务的堆使用情况?3)Debug是否始终存在或仅在调试时?解决方法您可以参考此链接.对您面临的同一问题进行全面研究.OOMRESEACH

  4. PID原理与python的简单实现和调参

    这篇文章主要介绍了PID原理与python的简单实现和调参文章围绕主题展开详细的内容介绍,具有一定的参考价值。感兴趣的小伙伴可以参考一下

  5. 详解JavaScript栈内存与堆内存

    这篇文章主要介绍了JavaScript栈内存与堆内存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  6. windows – 监视桌面堆内存

    有没有办法弄清楚哪个应用程序正在耗尽所有桌面堆内存?有关“桌面堆”的说明,请参阅thisMSDNblog.编辑:如果您不知道“桌面堆内存”是什么,请不要回答.EDIT2:如果您不知道“桌面堆内存”是什么,请不要投票来关闭问题.根据这篇blog帖子,您应该查找用户对象.要查找错误的应用程序,可以在ProcessExplorer中配置USERObjects列.然后按用户对象降序排序.用户对象是所有GUI对象,如Windows,工具栏,图标,光标……

  7. windows – 在perl中的fork实现

    我想在perl中执行子进程.我还希望我的代码与平台无关.问题是在Windows中perl实现fork,是一个伪进程,实际上是一个线程.请参阅windowshere的perlfork仿真.它还提到了在伪进程上执行kill和exec命令时出现的问题.在不同平台上使用两个不同版本的fork是否安全,还是应该使用特定于操作系统的API?

  8. ubuntu – 如何让/ proc / [pid] / cmdline包含命令参数?

    我非常希望这不需要整个内核的重新编译.–编辑–据推测,它是soleyrake负责设置/proc/[pid]/cmdline的内容,但这并不符合我们运行相同版本的rake的事实那些执行和不提供rake调用的命令行参数的服务器.简短的回答是:你做不到.只有进程本身hasanyinfluence上的内容为/proc/$pid/cmdline.一些工具使用它来覆盖top和ps显示的内容.所以这些rake实例都是这样做的,或者它们根本就没有任何参数.如果rake使用了这个技巧,并且您不希望它,也许rake文档会告诉

  9. ubuntu – 非堆内存泄漏JVM

    我在oraclejava虚拟机上运行的ubuntu服务器上设置了glassfishv4.0,并且jvm进程驻留内存大小(通过“top”命令获得)长大,直到jvm没有内存来创建新线程.是)我有的:>具有1GbRAM和1.4GHz处理器的VPS服务器(1Core)>UbuntuServer12.04>Java(TM)SE运行时环境(版本1.7.0_51-b13)>JavaHotSpot(TM)64位服

  10. ubuntu – Monit – Daemonize非守护进程?

    我有一个不作为守护进程运行的ruby进程,但可以生成一个pid文件.我的问题是Monit总是希望监控后台/守护进程吗?AFAIK,只要进程可以创建一个PID文件,Monit将检测它是否自己守护进程并且不会对其进行守护,反之亦然……谢谢它可以正常工作..你可以让它检查进程的pid文件,基本上monit正在做的是做一个如果它在那里它认为它已经启动并运行.如果您没有pid文件,您也可以通过类似的方式检查进程这几乎是一个

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部