Tomcat不一致+设置路径的不确定性

时间:2011-11-16 08:33:34

标签: java linux jvm amazon-ec2 tomcat6

背景

由于这是我发布的第一个问题,我会尝试尽可能地将其分解,并为任何不正确的格式道歉。我还应该指出,我对Linux,Tomcat和Java都是全新的(所有这些都在过去几周内),所以如果你有答案,请尽量减少它。谢谢!

这个问题实际上是几个问题,但我觉得问题在某种程度上是相关的,所以我将把它们全部包括在内。至于我的环境,我正在运行EC2 Amazon Linux实例。返回的详细信息 cat /proc/version是:

  • Linux版本2.6.35.14-97.44.amzn1.x86_64 (mockbuild@build-31006.build)
  • (gcc版本4.4.5 20110214(Red Hat 4.4.5-6)(GCC)

java -version给了我:

  • java版“1.6.0_29”Java(TM)SE运行时环境(构建 1.6.0_29-b11)
  • Java HotSpot(TM)64位服务器VM(内置20.4-b02,混合模式)

版本(S)

  1. 什么会让我有时停止/重启Tomcat,但不是 其他?我更改配置参数后需要重启 Tomcat,我使用/etc/init.d/tomcat6 restartservice tomcat6 restart取得了不同程度的成功:有时是漂亮的绿色 好吧,其他人红色失败了。似乎没有押韵或理由 为什么它有时工作而不是其他工作。当它不起作用我检查 service tomcat6 status的状态,产生一些东西 喜欢 tomcat6(pid ####)正在运行。另外值得注意的是我的 无论何时,Putty SSH会话都会在同一时间显着降低 我无法阻止Tomcat。我真的要等待每次按键处理!
  2. 我不能使用任何特定于JVM的-XX参数。我收到一个错误 每次都无法创建Java虚拟机。 线程我已经读过这个,大多数环绕堆内存分配 问题,但我不认为这是我的问题,因为当我运行java -XX时,它应该像java -X那样给我一个可用命令的列表,我只是得到:

    无法识别的选项:-XX无法创建Java虚拟机。

  3. 我应该注意到我在这个操作系统上至少有两个版本的Java - 它带有Open JDK,但是我需要Sun Java,因为Geoserver推荐了它的性能(这是我学习所有这些的全部要点) 。我读到有两个版本不是问题,只要我的JAVA_HOME路径指向正确的目录,但它是否有可能仍然以某种方式查看原始配置中的某些内容?这就是我的想法,所以为了排除它,我做了一个yum remove java,它删除了原始版本(由于依赖性而与Tomcat一起,但是whatevs,我可以稍后再回来),运行java -version确保我仍然拥有我想要的版本。我做了,然后跑了java -XX,希望它在用不需要的OpenJDK删除清理房子之后神奇地修复了自己,但是NOPE,和以前一样错误。

    结论

    我现在假设旧路径没有问题。我也尝试在每个可能的位置将我的JAVA_HOME变量更改为适当的路径( /usr/java/jre1.6.0_29 ):

    • in bash_profile
    • in bashrc
    • java.conf
    • tomcat6.conf(好吧,在删除Tomcat之前,就是这样)
    • 可能是其他一些文件。真的很模糊。
    • shell中的
    • export JAVA_HOME

    ......除了使用export JAVA_HOME=/usr/java/jre1.6.0_29之外,所有影响均为零。每次我运行echo $JAVA_HOME时,我仍然会得到原始的JAVA_HOME路径,我很确定这不是我想要的。即使重置变量成功(通过shell中的导出),我仍然得到了-XX错误。我还尝试设置一些JAVA_OPTS参数,特别是内存设置,然后运行一个没有返回任何内容的echo $JAVA_OPTS

    我花了两天时间在这上面,我准备放弃了。如果可能的话,我真的想避免重新安装和重新配置一大堆东西,更不用说我甚至不知道这是否能解决我的问题,但我真的非常想知道为什么我遇到这些问题以及是否或者不是他们是相关的,所以如果你们有任何关于这个或一般我不正确的建议,请告诉我。谢谢!

1 个答案:

答案 0 :(得分:0)

我无法帮你解决第一个问题,但关于你的第二个问题:“我不能使用任何特定于JVM的-XX参数。”:

环境变量CATALINA_OPTS由tomcat在启动JVM时使用。因此,如果你想使用512mb的堆和128mb的perm gen空间,你可以在bash shell上发出follwing命令,用一些自定义的java选项启动tomcat。

#> CATALINA_OPTS="$CATALINA_OPTS -Xmx512m -XX:MaxPermSize=128m" $TOMCAT_HOME/bin/catalina.sh run

您也可以通过在tomcat的启动脚本中更改CATALINA_OPTS来更改默认参数,或者您可以将参数添加到您的环境中(例如$ HOME / .bashrc)。

希望有所帮助。