问题标签 [thread-dump]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - Web 应用程序冻结。我如何找到原因?
该应用程序在 apache tomcat 7.0.37 上运行。它是一个使用 JPA 和 MySql 的 Java/GWT 应用程序。
有时我们会发现它完全没有反应。今天是 5 个月内第二次发生这种情况。重新启动后它工作正常。在流量较少时观察到此行为的时间。
我分析了线程转储,没有发现任何死锁。
感谢您对解决问题的任何帮助。
谢谢,基索尔
java - jstack:关于 Java 线程转储的帮助
我在玩jstack。没有太多关于线程转储显示的信息。
在玩耍时,我得到了两个不同的线程转储:
转储 1:
[...]
转储 2:
[...]
(为了完整起见:两个转储均取自 Tomcat 6 安装)
这里看到的是: - 两个线程都处于 WAITING 状态。- 两个线程都进入了方法 borrowObject() 中的同步块 - 两个线程似乎都在 GenericObjectPool$Latch 类型的(不同)对象上调用了 wait()。
我还看到,转储 2 显示“-正在等待...”,但转储 1 没有。为什么以及它是什么意思?
提前感谢您的回答。
最好的问候,马库斯
java - kill -3 或 jstack :有什么区别?
我想获取在 jboss 服务器上运行的 Web 应用程序的线程转储。
我为我的问题找到了两种解决方案:
- 使用 unix 命令:kill -3
- 使用 JDK 中存在的 jstack 工具。
谁能向我解释这两种方法之间的区别?
提前致谢 !
android - 在线程转储中看到什么
我在 Google Play Market 中发布了一些应用程序,并且keyDispatchingTimedOut
在我的 MainActivity 中不断收到 ANR(应用程序无响应)报告。如您所知,Google 为我提供Thread Dumps
了它。我不知道如何分析它,我应该仔细看看哪个部分。
我在eclipse中使用虚拟设备测试了所有android版本的应用程序,一切正常。
这是我的线程转储中的几行,完整的列表真的很长。
任何帮助表示赞赏。
java - 哪个 JVM 会打印出这样的线程转储?
我习惯于看到如下所示的 Java 线程转储,这是由 Sun HotSpot JVM 及其衍生产品(例如 OpenJDK)生成的:
现在,在帮助其他用户使用我的软件时,我偶尔会遇到另一种形式的线程转储,如下所示:
如您所见,格式完全不同,而且质量较差。它不报告它持有的锁,也不报告它正在等待的对象。
有谁知道哪个 JavaVM 系列产生第二种堆栈跟踪样式?我自己从来没有使用过,这一直困扰着我一段时间!
java - 多个线程获取同一个监视器?
问题是围绕“多个 Java 线程看似锁定同一个监视器”的讨论。在我们的应用程序中,我们面临着类似的问题。有时应用程序运行非常缓慢。已捕获多个线程转储。线程转储表明有 2/3 个线程在同一时间点获取了相同的锁对象并处于 BLOCKED 状态。其他线程(在不同时间点有 10 到 20 个)在等待同一个锁对象时被阻塞。伪线程转储如下所示:
MyThread-91 和 MyThread-2 在锁定 <0xce1fb810> 时被阻塞。MyThread-14 在等待同一个锁 <0xce1fb810> 时处于阻塞状态。
我们肯定不会在这里遇到任何线程死锁问题。请注意,在任何时间点被锁 (0xce1fb810) 阻塞的线程随后都会释放它。但是,其他一些线程在获取相同的锁对象后会被阻塞。根据上面提到的讨论(&格雷提供的示例代码),这可能是因为在同步块中调用了 wait()。但是,我们检查了我们的代码,我们没有看到在同步块中调用了任何 wait()。在我们的例子中,它是链表的内部实现,而链表又具有实现迭代器的内部类。迭代器实现的next()和hasNext()锁在同一个外部类的实例上,即自定义链表的实例上。当多个线程调用 next() 和 hasNext() 时,它们在“获取”同一个锁后进入 BLOCKED 状态。
这是伪代码:
所以,问题是还有什么(除了wait())可能导致这种情况?
此博客讨论了类似的情况(在“示例 2:当处理性能异常缓慢时”部分下)。但不确定这里是否发生了类似的事情。
不要将此线程作为this或this的副本关闭。如前所述,行为相似,但我想根本原因可能不是。
想法??
thread-dump - 应用程序挂起时我们如何分析线程转储
我们面临一个问题,我们的应用程序挂起,我们需要重新启动应用程序。
这是线程转储。我想了解我们如何分析线程转储,我的意思是我们有什么方法可以找到问题所在的代码。
java - 使用 Samurai 进行线程转储分析
我尝试使用Samurai来分析我的线程转储。
我从 Java VisualVM 保存了一个线程转储,它提供了一个 .tdump 文件。然后我开始了武士
我将线程转储文件拖到 Samurai 中,并在控制台中出现以下错误:
我该怎么做才能使 Samurai 运行而不会出现错误?
java - Tomcat 线程转储
是否可以从 Tomcat中获取线程转储?我想在某个时间点监控Tomcat中运行的线程。
注意:我在 Web 逻辑上执行此操作,但我不知道如何在 Tomcat 上执行此操作。
java - 如何使用 Weblogic 控制台或 WLST 从 Weblogic 生成完整的线程转储?
我正在寻找一种从Weblogic
控制台和/或WLST
. 我无权访问Weblogic
正在运行的服务器,因此我无法发送 QUIT 信号或使用该jstack
实用程序。我知道您可以在Weblogic
控制台中转储线程堆栈,或者WLST
通过该方法使用相同的threadDump()
方法,但这似乎不是一个完整的线程转储(不包含 JVM 中每个线程的信息,不显示线程锁定信息),并且它似乎无法被各种线程转储分析实用程序(tda、samurai 等)解析。有没有办法完成我想做的事情?