java - Websphere Application Server - 究竟需要什么才能快速启动?

标签 java performance jakarta-ee websphere

我正在使用带有集成测试环境的 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/

相关文章:

java - 使请求参数绑定(bind)不区分大小写

javascript - 提高重复性 Mongo 数据库访问任务的性能

R - 循环子集并使用数据表获取输出的最快方法(计算每月度量)

java.lang.NumberFormatException 尝试从查询中呈现值后

java - 如何在 RESTful Web 服务中为 "action oriented"方法创建路径?

java - 如何在jsp中访问struts2属性值?

java - 在 Java 中连接两个 ByteBuffer

java - 如何创建一个 JUnit 测试,该测试在满足特定条件之前一直运行?

不同Activity中的Java/Android ArrayList

java - Python 代码比 Java 慢 60 倍