Articles of tomcat

Tomcat Web服务器的可靠性如何?

在我过去的经验(Tomcat 4.x)中,Tomcat开发人员build议不要使用Tomcat内置的Web服务器,并说这不可靠,不推荐在生产环境中使用。 这是在lighttpd之前和nginx之前 – 和清漆之前等 在Tomcat 6.x等人的这些日子里,似乎事情已经改变了。 任何人都可以通过Apache基金会的详细build议和他们自己的个人经验来启发我吗?

在tomcat中定期的无反应

在我们的生产环境中,我正在经历tomcat的定期无响应。 我不能在testing环境中重现这一点,并且在事件发生之前或事件发生期间没有任何内容出现在日志中。 Tomcat继续运行,但停止服务请求。 我读过这个线程,并在JAVA_OPTS中放置了垃圾收集输出选项,但是我还没有重新启动tomcat来使它们生效。 我的情况不同在于,tomcat / jvm显然不会恢复或“醒来”。 我已经确认,我们的应用在多个场合中至less有15分钟没有响应。 解决scheme总是重新启动tomcat(使用daemontools)。 频率变化,有时在高峰负荷,有时在半夜(非常轻的负荷)。 我已经允许jvm(-Xms2g -Xmx4g)的内存高达4g。 服务器有16克内存,正在运行64位jvm。 Sun关于Java调优的白皮书声称:“承诺过多的系统物理内存很可能导致虚拟内存分页到磁盘,很可能在垃圾收集操作期间,导致显着的性能问题。 我是否将堆大小设置得太大? 将最小尺寸设置为与最大尺寸相同,我会受益吗? 我不相信系统正在将内存交换到磁盘。 free -m的输出不显示交换使用情况,我在系统上将swappiness设置为0。 当今天凌晨2:30发生无反应时,我在重新启动tomcat之前运行了一个快速的jstat和ps: 除了一些例外情况,jstat显示了类似的值:YGC是431比44现在,YGCT 10/1,FGC 59/7,FGCT 39/2,GCT 49/3 ps的输出显示了1422832个常驻和5723580个虚拟内存使用情况。 这与昨天正常运营期间的1390036和5642668相比。 我不是这方面的专家,所以任何帮助,将不胜感激。 更新:好的,我已经添加到JAVA_OPTS以下将暂时重新启动tomcat: -XX:+ UseConcMarkSweepGC -Xms2g -Xmx2g -verbose:gc -XX:+ PrintGCTimeStamps -XX:+ PrintGCDetails 变化是:1)swich gcalgorithm。 2)降低最大堆大小,因为它似乎我不需要4克,显然过度使用可以导致周期性的大规模gc。 3)打开vebose gc日志logging。 谢谢大家。

运行Tomcat,catalina抛出exception

所以我不得不说,我不熟悉tomcat / catalina,但试图解决这个问题。 无论如何,我看到/var/log/tomcat5/catalina.out我看到这些错误: Using CATALINA_BASE: /usr/share/tomcat5 Using CATALINA_HOME: /usr/share/tomcat5 Using CATALINA_TMPDIR: /usr/share/tomcat5/temp Using JRE_HOME: java.lang.ClassNotFoundException: org.apache.catalina.startup.Catalina at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:223) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:410) 我不确定这是什么意思。 这个安装在一个星期前工作…做了一些损坏? 我怎么会这样做呢…还有什么其他的信息在这里很有价值? Tomcat似乎正在运行,开始罚款… 更新:这可能是相关的: Jun 19, 2011 11:00:25 PM org.apache.coyote.http11.Http11BaseProtocol pause INFO: Pausing Coyote HTTP/1.1 on http-9080 Jun 19, 2011 11:00:26 PM […]

简单的负载平衡和故障切换tomcat的设置?

作为Tomcat基础设施的新手,我想知道一个可行的设置是如何让两台物理机器运行一个Tomcat实例来进行负载平衡并且能够相互故障切换? 我看过很多post,但是对于我来说目前还不清楚最好的实现是什么。 我需要一个Apache Web服务器来实现这一目标吗? 还是使用硬件负载平衡器更好? 等等。我如何获得这两个tomcat服务器来形成某种故障转移? 任何言论将不胜感激。

无法连接到remoteJMX,但可以在设置Dcom.sun.management.jmxremote环境variables后在同一端口上Telnet?

在这一点上我感到困惑,因为我们需要通过remotejxm连接来通过监视应用程序来监视服务器上的JDK,但是在尝试连接时却一再被告知它没有运行。 我们已经检查了端口和8999端口是开放的,但它不让我通过remotejxm连接,但我可以通过在同一端口上的telnet进行连接,我有Java选项设置如下(我们在Windows Server 2003上运行Tomcat) 。 任何意见,我可以看看什么,将不胜感激 -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 6.0 -Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 6.0 -javaagent:C:\Program Files\Apache Software Foundation\Tomcat 6.0\AppManager\WebTransactionAgent.jar -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 6.0\endorsed -Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 6.0\temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\logging.properties -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -Xloggc:C:\Program Files\Apache Software Foundation\Tomcat 6.0\logs\heap.log -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC -XX:NewSize=1024m -Dfile.encoding=UTF-8 -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8999 […]

在应用程序重新加载时使所有会话失效

有没有一种方式,当通过pipe理界面手动重新加载应用程序时,tomcat 7会使应用程序的所有会话失效? 一切顺利,托马斯

使.htaccessredirect大小写敏感

我需要redirect到文件夹从80到8080 1.默认索引到/ somename 2. / admin到/ somename 我尝试了一个.htaccess RewriteEngine on Redirect / http://example.com:8080/somename Redirect /admin http://example.com:8080/someAdmin 但我正在运行的JSP,所以我使用的文件夹名称是someAdmin(注意大写)我不可能改变我的代码中的path(对此感到遗憾) 问题所以,因为这我得到错误页(CASE sEnSiTive)redirect(自动它在浏览器中转换为小案例) 添加我会很高兴,如果.htaccess可以屏蔽8080端口从用户通过反向代理。 RewriteEngine on RewriteCond %{SERVER_PORT} !^8080$ RewriteRule ^(.*) http://%{SERVER_NAME}:8080/somefolder%{REQUEST_URI} Redirect /admin http://%{SERVER_NAME}:8080/someAdmin

服务器挂起关机

我最近开始使用/startServer.sh服务器,一切都很完美。 突然间,这里发生电力故障,我的操作系统closures了。 启动后,当我尝试再次运行./startServer.sh时,它挂在: [信息]按Ctrl-C停止容器… 结果,我无法再次启动服务器。 我真的不知道原因,但是我会很感激任何指导。 我有一个mac osx 10.6上午使用Tomcat和MySQL(作为守护进程运行)。 谢谢!

tomcat负载平衡的问题

我有一个数据中心(linode)的cpanel VPS,我有一堆客户的帐户,我想平衡负载使用2个额外的VPS在与私有IP连接相同的数据中心。 我正在考虑设置这个平衡负载: VPS 1:Cpanel,邮件服务器,Apache(Proxy)。 获取请求,公共IP。 VPS 2:Mysql。 VPS 3:Tomcat。 现在我的重点是设置VPS 3。 Cpanel体系结构通过apache加载加载Java模块,包括在虚拟主机定义中的一个mod_jk,我正在考虑将servlet更改为tomcat VPS,并将其位置更改为如下所示: DocumentRoot IP_OF_VPS:/home/didactac/public_html 我怎么不知道这是否会炒锅! 这里是apache的虚拟主机: <VirtualHost 173.230.130.64:80> ServerName danielakosanstore.com ServerAlias www.danielakosanstore.com DocumentRoot /home/danielak/public_html ServerAdmin [email protected] UseCanonicalName Off CustomLog /usr/local/apache/domlogs/danielakosanstore.com combined CustomLog /usr/local/apache/domlogs/danielakosanstore.com-bytes_log "%{%s}t %I .\n%{%s}t %O ." ## User danielak # Needed for Cpanel::ApacheConf <IfModule mod_suphp.c> suPHP_UserGroup danielak danielak </IfModule> <IfModule !mod_disable_suexec.c> […]

在Ubuntu 10.04上将JRE_HOME设置为Sun的Java的最佳方法

我安装了Ubuntu 10.04,默认是OpenJDK。 我从此使用apt-get安装了Sun的Java 6。 当我键入java -version我得到: java version "1.6.0_26" Java(TM) SE Runtime Environment (build 1.6.0_26-b03) Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode) 但是,当我启动Tomcat时,它似乎仍然使用Open JDK。 Using JRE_HOME: /usr/lib/jvm/java-6-openjdk 全球指向Sun Java的最佳方式是什么? 有没有办法卸载打开JDK?