java - 如何从 web start 下运行的客户端获取 Java 堆栈跟踪?

标签 java stack-trace java-web-start

我想从 SO 社区获取关于这个问题的想法。

问题是这样的:

我们有一位位于世界另一端的用户通过 WebStart 启动我们的应用程序。然而,用户提示她的整个应用程序卡住并变得无响应。通常,客户端会对分布式数据库进行大量数据库查询。

问题:

  1. 如果我们要求她对她的应用程序执行 CTRL-Break,JVM 会将堆栈跟踪写入何处?
  2. 仅使用 JConsole 就足够了吗?
  3. 在客户端上实现 JMX beans 会不会太过分?它真的有助于解决生产中的问题吗?

目前用户正在 JRE 1.5.0-b08 上运行,但我们计划在几个月内迁移到 JRE 6。

你觉得怎么样?

最佳答案

José,您可以通过多种方式从 JVM 获取大量信息。

最好的办法可能是在远程 JVM 中启用调试。您可以使用描述符 XML 中的 j2se 元素来设置它们,如 here 所示。 。既然你可以设置 -Xdebug 你就有了一个好的开始;我从未尝试过在网络启动应用程序上进行远程调试,因此设置远程部分可能有点问题。

您还可以通过添加单独的线程来远程与您交谈并发送调试消息来自行设置一些内容。

您可以使用 native javalog4j remote logger .

如果它按照您描述的方式挂起,那么发生的情况很可能是某种网络挂起。您可以在对话的端进行一些跟踪/调试吗?

关于java - 如何从 web start 下运行的客户端获取 Java 堆栈跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/726812/

相关文章:

lua - 使用嵌入式lua从C代码打印stacktrace

java - 为什么我在创建自己的异常时得到一个空的堆栈跟踪?

java - 将信息传递给 Java Web Start?

java - Hadoop:TaskTracker 和 JobTracker 不以 start-dfs.sh 开头

java - 方法错误计算元音数量

php - 通过运行 cron 来更改访问的代码

java - 使用 ant build 生成 war 时替换 jnlp 中的字符串

java - 通知和等待对于同步块(synchronized block)不起作用

java - Java 中基于代理的建模 - 动画问题

java - Java Web Start 是否提供默认程序文件夹?