诊断停止响应的Java应用程序服务器的好策略是什么?

我在Glassfish上安装了OpenSSO。 一切都很简单,尽可能less的configuration让系统工作。 我已经开始遇到服务器将停止响应的问题。 它会接受请求,但挂在回应。 二十分钟左右,所有的请求完成,闪电般快速,一切都恢复正常。 可悲的是,日志没有显示出任何不寻常的事情会导致这种情况。

我正在寻找的是一个总体战略。 如何在Java应用程序服务器上诊断和解决这些问题?

谢谢!

以下是诊断Java问题的一些常规技巧。

  • 最近的JDK随VisualVM提供 。 您可以将其附加到正在运行的JVM实例来监视线程和内存使用情况。
  • 如果你在Linux上,你可以使用kill -3来获得线程转储,并使用线程转储分析器寻找死锁
  • 查看Glassfish可能通过JMX公开的信息。 然后,您可以使用JConsole附加到进程并在运行时查看JMX信息。
  • 你提到日志不显示任何东西。 如果这是一个反复出现的问题,你应该增加日志级别。

我已经听说了有关Glassbox的好消息,还有关于使用Glassbox和Glassfish pluss其他选项的介绍。