Azure WebApp - 关闭Tomcat

时间:2015-12-17 15:32:00

标签: java tomcat azure web-applications azure-web-sites

我有一些Azure Java WebApp。 "最新的Tomcat 8"是我们使用的应用程序容器。 选项" Always On"启用我们的网络应用程序。

每天tomcat优雅地关闭:

17-Dec-2015 07:07:32.867 INFO [Thread-114] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-127.0.0.1-1170"]
17-Dec-2015 07:07:32.976 INFO [Thread-114] org.apache.catalina.core.StandardService.stopInternal Stopping service Catalina

当我们在我们的应用程序tomcat自动启动中进行第一次访问时

17-Dec-2015 09:45:47.802 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 498942 ms

每天都会发生这种情况。

还有其他人遇到过这个问题吗? 我怎么能阻止tomcat关机?

提前致谢!

2 个答案:

答案 0 :(得分:1)

据我所知,似乎不是Azure问题。如果您为webapp启用了选项Always On,则如果webapp闲置一段时间,Azure将不会卸载Web应用程序。

以下是Azure官方文档https://azure.microsoft.com/en-us/documentation/articles/web-sites-configure/中选项Always On的说明。

  

始终开启。默认情况下,如果Web应用程序闲置一段时间,则会将其卸载。这使系统可以节省资源。在“基本”或“标准”模式下,您可以启用“始终开启”以始终加载应用程序。如果您的应用运行连续的Web作业,则应启用Always On,否则Web作业可能无法可靠运行。

但是,问题可能是由于错误处理异常等情况造成的。

作为参考,有一个解答过的帖子(Tomcat randomly shuts down with an AbstractProtocol pause after mild usage)解释了这个问题。您可以尝试查看它并检查您的问题。

如有任何疑虑,请随时告诉我。

答案 1 :(得分:0)

我们解决了这个问题。 我们的应用程序已配置为将所有流量重定向到https。

问题是alwaysOn服务没有遵循重定向到https并停止在Web服务器层工作而不ping应用层。

我们将重写URL更改为不将https重定向到tomcat默认根应用程序,这将导致Worker / Java进程因AlwaysON ping而一直处于启动状态