Articles of tomcat

Tomcat会话不会过期

我在积累会议时遇到问题。 我在Windows服务器上运行Tomcat 6.0.18的一个实例。 我有3个应用程序。 我一直有内存问题(接近堆大小,或OOM)。 当我看看Tomcatpipe理器时,我在3个应用程序中都会看到500-1000个会话。 当我在Tomcatpipe理器中查看会话时,我可以看到有些会话在空闲时间内是多个小时,但它们并没有过期。 其中一个webapps有10分钟的超时时间,但是代码设置为60分钟(对于某些用户)。 其他应用程序有15和30分钟的超时。 我也有一个问题,在networking应用程序1重复点击与错误的会话cookie(它必须做我的mod_jk负载平衡),这驱动了会话计数。 (许多会话创build一个单一的请求,然后有一个60分钟超时)。 但是让我感到困惑的是,webapp 2和3也越来越高,而且在超时之后他们仍然坚持。 我理论上说,会话清理只发生在服务器负载不重的情况下,并且(在这种情况下)这么多会话累积,服务器的可用CPU空间不足,清理从不运行。 但我找不到任何提及这个理论的提法。 有谁知道会话到期algorithm的细节? 它不会在超时分钟上运行 – 它何时运行?

Ubuntu LTS 10.04.2的Tomcat7 PPA

有谁知道将安装tomcat7的ppa / repo。 我知道我可以从源代码安装,但我宁愿如果可能的话使用PPA /回购。 我发现太阳咳嗽 oracle-java是一个不错的,但似乎没有任何tomcat7到目前为止。 我已经安装tomcat6没有问题,并像布局。 我们正在validation我们的tomcat7的应用程序,我想有一个坚实的生产准备安装。 这里是在干净的Ubuntu LTS服务器上安装sun cough oracle-java的作弊: sudo apt-get install python-software-properties sudo add-apt-repository ppa:sun-java-community-team / sun-java6 sudo apt-get update sudo apt-get install sun-java6-jdk ubuntu @ ubuntu:/ etc / apt $ java -version java版本“1.6.0_24” Java(TM)SE运行时环境(build 1.6.0_24-b07) Java HotSpot(TM)64位服务器虚拟机(构build19.1-b02,混合模式)

停止Tomcat后SSH无响应,许多ksoftirqd CPU使用率

我有一个奇怪的问题。 每当我停止Tomcat,SSH变得非常缓慢,几乎完全没有响应。 SSH需要一分钟甚至更多时间才能接受任何命令。 当我终于使Tomcat重新开始时,一切都恢复正常。 这发生在一个非常繁忙的服务器上。 问题是我需要经常停止Tomcat,因为应用程序升级。 升级通常需要几秒钟的时间,但这需要将近10分钟,因此我们正在经历不必要的停机时间。 我看到的一件事是,当我停止Tomcat top显示了100%CPU的ksoftirqd/X进程。 这可能是问题吗? 内核版本是: 2.6.18-308.11.1.el5 红帽版本是: Red Hat Enterprise Linux Server release 5.9 (Tikanga) 任何想法为什么发生这种情况?

在Tomcat的虚拟主机的主机别名中使用通配符

我想用Tomcat 5.5来做以下事情: * .mydomain.com应该去我的webapp,位于虚拟主机mydomain.com。 所以我有一个虚拟主机mydomain.com,我想所有* .mydomain.com也去那里。 现在,如果我这样做,它不会拿起虚拟主机,只是默认的(没有设置为mydomain.com)。 如何解决这个问题? 我基本上想在主机别名或虚拟主机名称本身允许通配符。 (通过这种方式DNS设置是正常的)

Apache2反向代理似乎间歇性地冻结?

Apache2反向代理似乎间歇性地冻结时,代理一个tomcat的Web应用程序。 问题是,每当我尝试login到代理的这个web应用程序时,每隔一段时间(通常在闲置之后一天或两天)就会冻结。 应用程序只是无限期地冻结,没有500响应代码…浏览器只是等待和等待。 如果我一直试图从我的浏览器提示url,它最终会再次开始工作。 我试图通过直接导航到Tomcat端口8080上的Web应用程序来重现此问题,但是我从来没有能够不经过反向代理重现此问题。 这是我的反向代理configuration…任何错误发现想法? 谢谢 在/ etc / apache2的/网站可用/默认 ProxyPass /manage/ http://localhost:8080/manage/ ProxyPassReverse /manage/ http://localhost:8080/manage/ ProxyPass /manage http://localhost:8080/manage ProxyPassReverse /manage http://localhost:8080/manage /etc/apache2/mods-available/proxy.conf <IfModule mod_proxy.c> #turning ProxyRequests on and allowing proxying from all may allow #spammers to use your proxy to send email. ProxyRequests Off <Proxy *> AddDefaultCharset off Order deny,allow Deny from all […]

如何为Tomcat webdav servlet设置默认的umask?

标题说明了一切。 我需要Tomcat的webdav servlet来创build具有rw-rw-r权限的文件,但是它一直以rw-r-r–的forms创build它。 我尝试在/ etc / profile中设置umask,但没有帮助(虽然手动创build的新文件具有所需的权限设置)。 根据/ etc / passwd,运行Tomcat的用户将/ etc / false作为shell,并且在其主目录中没有bashrc。 主机的操作系统是Debian。

将WAR重新部署到Tomcat的最佳做法是什么?

将WAR重新部署到Tomcat的最佳做法是什么? 假设我有一个服务于长时间运行types的用户的web应用程序(早上login,使用所有说法),并希望不停地重新部署应用程序,以便当前用户可以继续login,但新会话获取创build一个重新部署的战争。 我最好的猜测是使用一个负载平衡器和两套Tomcat实例,但是最好的做法和最好的软件是做什么的(目前的环境是基于Ubuntu,Tomcat和Nginx的。

使用ab运行一些基准,而tomcat开始真的放慢速度

我正在运行一些基准使用Apache的工作台上运行的Tomcat上的Java应用程序。 说我运行一个testing,如: ab -c 10 -n 10000 http://localhost:8080/hello/world 它会运行得很好。 如果我遵循它: ab -c 50 -n 50000 http://localhost:8080/hello/world 它会再次运行良好,但如果我再试一次,它可能会在3500个完成的请求后开始减慢。 我试图debugging这个根本原因需要帮助。 我跑了上面,我有一些未使用的内存的演出,所以内存似乎不是问题。 tomcat6过程确实达到了70-80甚至107%。 似乎重新启动tomcat解决了这个问题,但有时需要重新启动服务器。 这是一个默认的tomcat安装,有200个线程分配给它。 Tomcat日志是空的。 更新 所以我把tcp_tw_recycle / reuse重新设置为1,现在运行netstat显示的计数很低。 在改变tcp_tw_recycle /重用之前,我注意到事情放缓并运行netstat,并且我有32400个tcp TIME_WAIT连接。 所以现在运行基准testing的更新,使用-k开关,我看到更多的吞吐量。 但是,在某些时候,事情再次开始放缓,但重新启动tomcat现在使事情恢复正常。 之前,即使我重新启动tomcat,运行ab的响应时间也会非常慢。 现在改变tcp_tw_recycle / reuse后,重新启动tomcat使事情恢复正常。 运行顶部显示tomcat只有CPU的20%左右,所以现在看来​​问题是与tomcat,但我怎么能弄清楚什么?

IIS 6.0中的HTTP压缩导致某些用户出现问题

我们正在收到一些零星的客户电话(less于我们用户的0.1%)抱怨无法访问我公司的网站 – 他们得到一个空白页面(如果他们使用IE),或“内容编码错误”说该页面使用无效或不支持的压缩forms(如果他们使用FireFox的话)。 目前的怀疑是,当一个HTTP 1.1浏览器请求通过HTTP 1.0代理发送时,我们发回了压缩的HTTP 1.1浏览器请求,这个请求在某种程度上被HTTP 1.0代理所破坏。 该网站是一个Tomcat 4.2.2后端,在IIS服务器上启用了GZIP和DEFLATE的IIS 6.0前端。 有没有人遇到过这种错误? 有没有一个build议的修复,以避免破坏旧的代理实现? 编辑:我们可以用squid-2.5的默认设置复制这个问题,然而新版本的squid似乎工作得很好。

如何优化Tomcat 6的SSL性能

我们在slicehost.com上的Ubuntu 2GB切片上运行Tomcat 6 JSP应用程序fwiw是Open Clinica 3.1。我可以看到,本书几乎实现了SSL。 <Connector port="8443" scheme="https" SSLEnabled="true" keystorePass="XXXXX" keystoreFile="XXXXX" maxKeepAliveRequests="0" sessionCacheSize="0" sessionTimeout="0" compression="on" maxThreads="500" clientAuth="false" sslProtocol="TLS" /> 问题在于Open Clinica Java应用程序执行大量HTTP请求来构build页面 – 使用Chrome开发人员工具,我可以看到典型页面的70-80个请求。 当您为每个请求添加SSL握手时,额外的networking延迟只会杀死应用程序响应时间。 FWIW – 客户端用户位于以色列,欧洲和美国 – 所以在用户旁边运行本地服务器的选项并不是真的可行。 我知道,由于slicehose是在美国 – 以色列的networking延迟很差,但我觉得,由于服务器的HTTP性能是可以接受的 – 我们应该能够做得更好。 为了尽量减lessssl握手 – 我定义了无限的sessionCacheSize和SessionTimeout,可以在上面的连接器定义中看到 但是,当我在客户端运行ssldump时,我仍然看到很多握手进行,似乎表明Tomcat实际上忽略了这些参数 服务器没有压力 – 与5个同时用户,有大约100MB的可用内存和几乎没有交换。