当它返回HTTP 503,返回mod_jk错误,耗尽线程池或达到连接限制时,如何使Glassfish 3进行记录?

时间:2019-04-16 16:26:52

标签: glassfish glassfish-3 mod-jk

我负责支持在Glassfish上运行的旧版应用程序。确切的版本是“ GlassFish Server开源版3.1.2.2(内部版本5)”。

我还有两个与Glassfish通信的应用程序,它们以以下形式报告“服务不可用”错误:

  • Apache带有mod_jk报告errno=110
  • 从另一个应用程序直接调用SOAP API,该应用程序直接路由到Glassfish报告HTTP 503“服务不可用”异常

针对这些错误的一般建议是,应用程序调整不佳,不忙或根本没有部署。我想获得更多信息,以确定我应该首先关注应用程序或Glassfish托管的哪些方面。

应用程序登录server.log时,在Glassfish中运行的应用程序看起来很正常。他们没有记录任何异常或错误。 Glassfish访问日志也看起来很健康。访问日志很不寻常,因为它们仅记录通过Apache + mod_jk从UI发出的请求,而不记录SOAP UI调用。

为了解决这个问题,我认为我需要查看Glassfish的日志文件,该文件报告以下一项或多项内容:

  • 向呼叫者返回503或类似的“不可用”或“我正忙”错误
  • 达到连接限制
  • 线程池耗尽时

我希望进行日志记录,而不是进行监视。我想要问题的静态记录。

Glassfish是否具有这样的日志记录功能?如果是这样,如何启用它们?

如果Glassfish不具备这些功能,那么我还应该考虑其他哪些选择来获取有关所见症状的信息?

更新#3

我已经有一个星期的日志记录了。在那儿看不到任何细节。

由于其他原因,我们不得不重新启动该服务。重新启动后,问题消除。我不喜欢预防性重启。

更新#2

我认为我需要的是来自Grizzly的更多日志记录。 Grizzy基于this SO thread控制HTTP连接,然后将其移交给GF。因此,如果我得到的503没有打到我的应用程序日志中,那么它必须来自Grizzly。假设我的理解是正确的,当它返回503时,如何使Grizzy记录日志?

更新#1

我已打开对线程池和http服务的监视。

监视设置为: Screenshot of Glassfish 3 monitoring settings

捕获的服务器统计信息是: Screenshot of Glassfish 3 server monitoring statistics

这是为我的Web服务提供服务的HTTP侦听器的统计信息: Screenshot of Glassfish 3 http pool statistics

我认为http池统计信息页面告诉我我有很多排队的连接,并且我需要增加http连接池的大小,而不是我的线程池。

0 个答案:

没有答案