【问题标题】:Tomcat 6 | What's the significance of antiResourceLocking & antiJARLocking?雄猫 6 | antiResourceLocking & antiJARLocking 有什么意义?
【发布时间】:2011-02-13 20:15:21
【问题描述】:

我正在开展一个项目,我们将使用 Tomcat 6.0.20 进行开发和生产。

我遇到了一些与热部署相关的问题,需要在 server.xml 中将 Context.antiResourceLocking 设置为 false。我对 antiResourceLocking 和 antiJARLocking 有一些疑问。 我已经查看了http://tomcat.apache.org/tomcat-6.0-doc/config/context.html 的参考资料。

我无法理解 JAR 被锁定或资源被锁定究竟是什么意思。到目前为止,我所读到的是,当您取消部署由于文件/jar 上的进程锁定而失败的应用程序时,通常会出现锁定问题。有人可以指出我可以在此问题上阅读更多内容的任何内容吗?

我的问题是: 1) 如果我将 antiJARLocking 和/或 antiResourceLocking 设置为 false,我会遇到什么问题?有人可以提供一个例子吗? 2) 在生产环境中将这些属性设置为 false 是一种不好的做法吗? 2) Linux 机器上的锁定不会像 Windows 机器上那样频繁发生吗?

感谢您的帮助。

谢谢。

戈文德·N.

【问题讨论】:

    标签: tomcat6 server-configuration


    【解决方案1】:

    以下是我对这些问题的回答:

    1) 据我所知,将 antiJARLocking 和/或 antiResourceLocking 设置为 false 只会在 Windows 上导致问题(尽管我隐约记得一位 Tomcat 开发人员声称它也会影响 Linux ——我忽略了这一点,因为我已经看到零证据,没有例子/详细解释证明)。

    2) 当 Tomcat 在 Windows 上运行时,将这些设置为 false 是一种不好的做法。

    第二 2)!!十多年来,我一直在多个 Linux 发行版和版本上运行 Tomcat。由于未将这些属性之一设置为 true,我从未见过 jar 锁定或资源锁定问题。据我所知,这不会发生,但这可能取决于您使用的文件系统实现,而且我总是使用 EXT2、EXT3 或 EXT4。

    如果您对此仍有疑问,请在 Tomcat 用户邮件列表中询问。

    干杯!

    杰森·布里顿 合著者,Tomcat:权威指南 (O'Reilly)

    【讨论】:

      【解决方案2】:

      1) 我已经围绕 svn 构建了一个系统来自动构建和部署 webapp,部署是通过 Tomcat ant 任务进行的,并且 antiJARLocking 和/或 antiResourceLocking 为 false 应用程序未正确取消部署,因为 tomcat 无法删除一些 jars 和 log4j.properties 配置文件,因此部署失败。所以我不得不将这些属性设置为 true,然后 tomcat 在 temp 目录中复制了 webapp。这使得部署速度变慢,并且几乎每次重新部署临时目录的大小都会增加,因此我必须制定一个程序来从临时目录中删除我的应用程序的旧部署。随时从临时目录中删除部署是安全的,因为 Tomcat 会将应用重新部署到临时目录。

      2) 从 tomcat 文档中,我了解到 jar 锁定或资源锁定的问题仅发生在 Windows 上。我不会在生产环境中将这些属性设置为 true,因为不需要如此频繁地重新部署,并且使用 java 在生产环境中重新部署后重新启动服务器总是一个好主意(OutOfMemoryError 总是潜伏在黑暗中,即使您自己的代码没有泄漏)。另一个小问题是正在部署到临时目录的应用程序,如果您修改了 webapps 目录中的 jsp 或其他文件,除非您也将更改复制到临时目录,否则它不会被重新部署。

      【讨论】:

        猜你喜欢
        • 2012-07-21
        • 2015-01-30
        • 2011-05-22
        • 2012-06-07
        • 2011-09-26
        • 2010-11-29
        相关资源
        最近更新 更多