【问题标题】:Liferay 6.2 - tomcat bundle shutdown issueLiferay 6.2 - tomcat bundle 关闭问题
【发布时间】:2015-04-28 12:59:52
【问题描述】:

我遇到了一个问题,我无法通过新 linux 服务器上的捆绑关闭脚本关闭服务器上的 Liferay 6.2 tomcat 包。

我采取的步骤是:

  • 通过解压安装包。
  • 在默认的liferay主文件夹中上传了自定义portal-ext.properties
  • 按照 tomcat home/bin/setenv.sh 中部署最佳实践指南中的定义更改内存参数
  • 在 tomcat home/conf/context.xml 中添加了 Oracle 自定义数据源
  • JDK - jdk1.7.0_75
  • 导航到 tomcat home/bin 文件夹 -> 运行 ./startup.sh
  • Liferay 和捆绑包出现了。
  • 要关机 - 导航到 tomcat home/bin 文件夹 -> 运行 ./shutdown.sh
  • 这会显示以下内容,但 tomcat 未关闭:
$ ./shutdown.sh
Using CATALINA_BASE:   /.../liferay-portal-6.2-ee-sp2/tomcat-7.0.42
Using CATALINA_HOME:   /.../liferay-portal-6.2-ee-sp2/tomcat-7.0.42
Using CATALINA_TMPDIR: /.../liferay-portal-6.2-ee-sp2/tomcat-7.0.42/temp
Using JRE_HOME:        /.../java/jdk1.7.0_75
Using CLASSPATH:       /.../liferay-portal-6.2-ee-sp2/tomcat-7.0.42/bin/bootstrap.jar:/.../liferay-portal-6.2-ee-sp2/tomcat-7.0.42/bin/tomcat-juli.jar

我在 Tomcat 日志中看到以下内容。

apr 27, 2015 1:18:23 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [] appears to have started a thread named [org.python.google.common.base.internal.Finalizer] but has failed to stop it. This is very likely to create a memory leak.
Apr 27, 2015 1:18:23 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [] appears to have started a thread named [MulticastListener-239.255.0.523305] but has failed to stop it. This is very likely to create a memory leak.
Apr 27, 2015 1:18:23 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [] appears to have started a thread named [pool-3-thread-1] but has failed to stop it. This is very likely to create a memory leak.
Apr 27, 2015 1:18:29 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/opensocial-portlet] appears to have started a thread named [com.google.inject.internal.Finalizer] but has failed to stop it. This is very likely to create a memory leak.
Apr 27, 2015 1:18:45 PM org.apache.coyote.AbstractProtocol stop
INFO: Stopping ProtocolHandler ["http-bio-8080"]
Apr 27, 2015 1:18:45 PM org.apache.coyote.AbstractProtocol stop
INFO: Stopping ProtocolHandler ["ajp-bio-8009"]
Apr 27, 2015 1:18:45 PM org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["http-bio-8080"]
Apr 27, 2015 1:18:45 PM org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["ajp-bio-8009"]
  • tomcat 进程在几分钟后仍显示为活动进程,需要手动终止。关闭脚本在一分钟左右运行后,Liferay 似乎已关闭。

我需要它来工作,以便干净地释放所有资源,并且我可以根据需要编写启动和关闭脚本。

有没有人看到这个并解决了这个问题?任何见解将不胜感激。

谢谢!

【问题讨论】:

  • 如果你卸载所有的 web 应用程序,它会正常关闭吗?通过简单地删除 webapps 文件夹中的所有内容(webapps 是默认的,它可能会被命名为其他名称。无论如何,它是包含您的 opensocial-portlet 应用程序的目录)。此外,您可以尝试在调试模式下启动 tomcat 并将其保留在前面,并将 jpda run start 参数设置为 catalina.sh
  • 我无法将所有 webapps 作为 liferay tomcat bundle 的一部分卸载。我确实卸载了 opensocial-portlet。这消除了关闭日志中的 portlet 特定问题,但不是其他 3。我会尝试您的其他建议并让您知道。谢谢

标签: java linux tomcat liferay-6


【解决方案1】:

解决此问题并按照以下步骤操作后,tomcat 进程会在大约一分钟内通过关闭脚本关闭,无需手动终止该进程。

  • 将 setenv.sh 中的 maxpermsize catalina_opts 参数增加到 512m(原为 200m) - 这解决了关闭时日志中的 2 条内存泄漏消息,并导致 tomcat 进程正确关闭。
  • 删除 opensocial-portlet 删除了 maxpermsize 更改之前的 1 个内存泄漏错误,但进程仍未正确关闭。
  • 关闭日志中有 1 个剩余的内存泄漏错误,但目前这并不能阻止 tomcat 关闭,并且似乎是 tomcat 的一部分,不一定是由 liferay 引起的。根据下面的此 LPS 问题,现在似乎可以安全地忽略此消息 https://issues.liferay.com/browse/LPS-34498

希望这对某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-03
    相关资源
    最近更新 更多