java - Jstack 和没有足够的存储空间来处理这个命令

标签 java jstack

我正在尝试在我的 java 应用程序上运行 jstack 命令。应用程序比较大,运行在 jboss AS 内,占用大约 4gb 的内存。操作系统为 Windows Server 2003 标准版。每次我得到一个错误“没有足够的存储空间来处理这个命令”。有足够的内存、16gb 和磁盘空间。那么,有什么想法吗?

最佳答案

我最近在 Win2008r2 上遇到了这个问题,我想我会分享我的解决方案,因为我花了一段时间才弄清楚。 Rob's comment about psexec -s是为我做的。

看来,由于用户上下文,在 Vista 和更高版本的 jstack 上无法针对服务工作。它与内存无关。我怀疑这与人们在 2003 年通过远程桌面看到此问题的原因相同,除非您在 mstsc 上使用/admin 或/console 开关。在 Vista 中,加强的安全性可能是破坏它的原因。

从 cmd 窗口启动我的应用程序运行良好,但这并不能帮助我调试我们的标准安装。启用 java 调试端口(对于 VisualVM、Eclipse 或大多数 Java 调试器)需要重新启动应用程序,因此如果您尚未启用调试,您可能会丢失您可能试图捕获的状态。在我的用户凭据下启动服务不起作用 - 我对此有点惊讶。但是 psexec -s 从系统上下文中运行 jstack,这就像一个魅力。哦,如果 UAC 已打开,您需要从提升的 cmd 提示符运行 psexec。

关于java - Jstack 和没有足够的存储空间来处理这个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/906620/

相关文章:

java - 在 Hadoop 上运行时出现 NoSuchMethodError 而在本地运行时则不会

java - 我在打印数组中的元素时遇到问题,以便任何两个重复的元素出现一次

java - 想在java中实现简单的面向消息的中间件

java - 使用 jstack 清空 Tomcat 线程转储

java - 如何从 log4j2 root logger 获取所有 apender

java - 使用 hibernate、dao、服务和工作单元重构 dal : how to put all togheter

java - 分析java进程 "not responding"?

linux - 用于收集进程的线程转储日志的 unix 脚本

java - 使用不同用户执行jstack导致Full GC

java - 这些java线程是否正在等待它获取的锁?