java - Glassfish 在完成请求时不关闭线程

标签 java linux servlets glassfish-3

我有一个具有 doPost 方法的 Java Servlet,当 doPost 完成时,我假设 Glassfish 会关闭连接,但我错了。 Servlet 在 Linux 服务器上,在 300 个帖子后返回线程数:

ps -eLFU glassfish | grep domain1 | wc -l
362

在任何帖子之前,线程数为 72。响应全部成功,但我不明白为什么 Glassfish 不关闭连接。我正在使用 Glassfish 的默认配置。

我试图解决这个问题的原因是当我的 servlet 在某个时候被击中时,我在 Linux 服务器上得到这个错误:

su: cannot set user id: Resource temporarily unavailable

在/etc/security/limits.conf 我有这个:

glassfish hard nproc 4192
glassfish soft nproc 2024

我不想更新 limits.conf,而是尝试确保它不会达到这些数字。

最佳答案

glassfish 是否保持连接打开?或线程运行?它们是不同的东西。线程可能会启动,并且不会关闭以在将来为新连接提供服务。这是标准行为。您能否使用“kill -3 PID”进行线程转储,其中 PID 是 glassfish 进程的进程 ID?这会将所有正在运行的线程转储到标准输出,您可以看到每个线程在做什么。在那里您将能够看到它是否卡在您的代码中或正在等待新连接。您可以找到更多信息 here关于如何获取线程转储。

关于java - Glassfish 在完成请求时不关闭线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14958598/

相关文章:

java - fragment 中带有 setText 的 NullpointerException (Android)

linux - 将标准错误流输出传递给函数

jquery - jQuery 中的 AJAX 为空白 "url"

jsp - 免费的 Java servlet 托管?

java - Android - 在应用程序内输入文本不起作用

java - 使用fasterxml将json回复解析为对象时出现com.fasterxml.jackson.databind.exc.MismatchedInputException

Java AWT 边界

c - 错误 : incompatible types when assigning to and returning to type

Linux glib 需要 pkg-config 而 pkg-config 需要 glib?

Java servlet 映射