我正在使用带有集成测试环境的 Rational Application Developer v7.0。当我开始调试我的 web 应用程序时, Debug模式下的服务器启动时间接近 5-6 分钟 - 足够喝杯咖啡的时间了!
有时,这让我很生气,我开始诅咒 IBM 构建操作系统而不是应用服务器!产生 20 多个进程和无用的服务,没有记录配置来调整它,以更快地启动。
我相信有很多 Java 开发人员会同意我的观点。我尝试通过我的管理控制台禁用默认应用程序和一组服务,但这并没有太大帮助。
我没有 web 服务,没有企业 bean,没有队列,只有一个需要连接池的简单 web 应用程序。您过去是否做过一些事情来使您的集成测试环境在 Debug模式下快速启动并消耗更少的 RAM?
更新: 我尝试禁用一些服务(国际化、默认应用程序等),现在 WebSphere 服务器变得越来越差。它不仅不会花费可怕的启动时间,它还会时不时地卡住长达 2 分钟。 :-( 听起来,优化总是不是一件好事!
最佳答案
调试服务器代码的最佳方法是使用远程调试。
首先您需要在服务器启动脚本中的 JVM 参数中添加以下内容:
-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
这将导致 JVM 监听指定端口,然后您可以从您的 IDE 启动针对该端口的远程调试 session 并像代码在同一进程中运行一样进行调试。
以这种方式工作可以防止您如此频繁地重新启动服务器,从而回避您与 Websphere 启动时间有关的问题。
如果服务器上的二进制文件和 IDE 中的源不同步,您可能会得到一些奇怪的结果,但总的来说这不是问题。
关于java - Websphere Application Server - 究竟需要什么才能快速启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1178210/