??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲av无码专区在线观看亚,亚洲日韩中文无码久久,亚洲综合在线另类色区奇米http://m.tkk7.com/anchor110/category/45618.htmlzh-cnSat, 11 Aug 2018 07:01:18 GMTSat, 11 Aug 2018 07:01:18 GMT60java.lang.NoClassDefFoundErrort坑l历http://m.tkk7.com/anchor110/articles/433323.html一败涂?/dc:creator>一败涂?/author>Thu, 09 Aug 2018 09:13:00 GMThttp://m.tkk7.com/anchor110/articles/433323.htmlhttp://m.tkk7.com/anchor110/comments/433323.htmlhttp://m.tkk7.com/anchor110/articles/433323.html#Feedback0http://m.tkk7.com/anchor110/comments/commentRss/433323.htmlhttp://m.tkk7.com/anchor110/services/trackbacks/433323.htmll历如下Q?/strong>
eclipse web本地工程Qnew一个java对象Q编译时都没问题Q但q行时就直接没反应,也没M报错。查找了最半天时_原来以ؓ是类之间怺依赖造成的,可能某些依赖cL加蝲q来或初始化的时候有问题。但最l定位确定不是,l过不断折磨和探索,最后在debugӞ选择new ***()q行watchQ发现报了java.lang.NoClassDefFoundError错误Q这才开始有一点眉目?br />
最l定位问题原因:java web工程build后的WEB-INF/lib下,没有引入依赖的lib包,Dq行时出现诡异现象?br />


]]>
catalina.out无限增长问题的解军_?/title><link>http://m.tkk7.com/anchor110/articles/404926.html</link><dc:creator>一败涂?/dc:creator><author>一败涂?/author><pubDate>Sun, 13 Oct 2013 04:41:00 GMT</pubDate><guid>http://m.tkk7.com/anchor110/articles/404926.html</guid><wfw:comment>http://m.tkk7.com/anchor110/comments/404926.html</wfw:comment><comments>http://m.tkk7.com/anchor110/articles/404926.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/anchor110/comments/commentRss/404926.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/anchor110/services/trackbacks/404926.html</trackback:ping><description><![CDATA[<div><p>tomcat默认情况下,catalina.out日志增长都是无限的,从而导致日志文件超大?/p> <p>1、下载安装cronologQ步骤如下:</p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">安装q程如下Q?br /><br />A、下载(最新版本)<br /><br />    #  wget http:</span><span style="color: #008000; ">//</span><span style="color: #008000; ">cronolog.org/download/cronolog-1.6.2.tar.gz</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br />B、解压羃<br /><br />    # tar zxvf cronolog</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1.6</span><span style="color: #000000; ">.</span><span style="color: #000000; ">2</span><span style="color: #000000; ">.tar.gz<br /><br />C、进入cronolog安装文g所在目?br /><br />    # cd cronolog</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1.6</span><span style="color: #000000; ">.</span><span style="color: #000000; ">2</span><span style="color: #000000; "><br /><br />D、运行安?br /><br />    # .</span><span style="color: #000000; ">/</span><span style="color: #000000; ">configure<br />    # make<br />    # make install<br /><br />E、查看cronolog安装后所在目录(验证安装是否成功Q?br /><br />    # which cronolog<br /><br />一般情况下昄为:</span><span style="color: #000000; ">/</span><span style="color: #000000; ">usr</span><span style="color: #000000; ">/</span><span style="color: #000000; ">local</span><span style="color: #000000; ">/</span><span style="color: #000000; ">sbin</span><span style="color: #000000; ">/</span><span style="color: #000000; ">cronolog</span></div><p><br />2、修改tomcat启动文g<a target="_blank" >catalina.sh</a></p><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">A、将touch </span><span style="color: #000000; ">"</span><span style="color: #000000; ">$CATALINA_OUT</span><span style="color: #000000; ">"</span><span style="color: #000000; ">行注释掉?br /><br />B、将<br />org.apache.catalina.startup.Bootstrap </span><span style="color: #000000; ">"</span><span style="color: #000000; ">$@</span><span style="color: #000000; ">"</span><span style="color: #000000; "> start \  </span><span style="color: #000000; ">>></span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">$CATALINA_BASE</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/</span><span style="color: #000000; ">logs</span><span style="color: #000000; ">/</span><span style="color: #000000; ">catalina.out </span><span style="color: #000000; ">2</span><span style="color: #000000; ">>&</span><span style="color: #000000; ">1</span><span style="color: #000000; "> </span><span style="color: #000000; ">&</span><span style="color: #000000; ">  替换?<br />org.apache.catalina.startup.Bootstrap </span><span style="color: #000000; ">"</span><span style="color: #000000; ">$@</span><span style="color: #000000; ">"</span><span style="color: #000000; "> start </span><span style="color: #000000; ">2</span><span style="color: #000000; ">>&</span><span style="color: #000000; ">1</span><span style="color: #000000; "> \<br /><br /></span><span style="color: #000000; ">|</span><span style="color: #000000; "> cronolog </span><span style="color: #000000; ">"</span><span style="color: #000000; ">$CATALINA_BASE</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/</span><span style="color: #000000; ">logs</span><span style="color: #000000; ">/</span><span style="color: #000000; ">catalina.out.</span><span style="color: #000000; ">%</span><span style="color: #000000; ">Y</span><span style="color: #000000; ">-%</span><span style="color: #000000; ">m</span><span style="color: #000000; ">-%</span><span style="color: #000000; ">d </span><span style="color: #000000; ">>></span><span style="color: #000000; "> </span><span style="color: #000000; ">/</span><span style="color: #000000; ">dev</span><span style="color: #000000; ">/</span><span style="color: #0000FF; ">null</span><span style="color: #000000; "> </span><span style="color: #000000; ">&</span><span style="color: #000000; ">  <br />重启tomcatQ则下次会在catalina.out后面加上q月日,从而按日进行日志输出?/span></div><pre><pre></pre></pre></div><img src ="http://m.tkk7.com/anchor110/aggbug/404926.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/anchor110/" target="_blank">一败涂?/a> 2013-10-13 12:41 <a href="http://m.tkk7.com/anchor110/articles/404926.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tomcat查看q发q接?/title><link>http://m.tkk7.com/anchor110/articles/404240.html</link><dc:creator>一败涂?/dc:creator><author>一败涂?/author><pubDate>Thu, 19 Sep 2013 17:28:00 GMT</pubDate><guid>http://m.tkk7.com/anchor110/articles/404240.html</guid><wfw:comment>http://m.tkk7.com/anchor110/comments/404240.html</wfw:comment><comments>http://m.tkk7.com/anchor110/articles/404240.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/anchor110/comments/commentRss/404240.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/anchor110/services/trackbacks/404240.html</trackback:ping><description><![CDATA[<div>netstat -na | grep ESTAB | grep 8080 | wc -l</div><img src ="http://m.tkk7.com/anchor110/aggbug/404240.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/anchor110/" target="_blank">一败涂?/a> 2013-09-20 01:28 <a href="http://m.tkk7.com/anchor110/articles/404240.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>apache服务器安装配|错误集?/title><link>http://m.tkk7.com/anchor110/articles/404084.html</link><dc:creator>一败涂?/dc:creator><author>一败涂?/author><pubDate>Sat, 14 Sep 2013 13:33:00 GMT</pubDate><guid>http://m.tkk7.com/anchor110/articles/404084.html</guid><wfw:comment>http://m.tkk7.com/anchor110/comments/404084.html</wfw:comment><comments>http://m.tkk7.com/anchor110/articles/404084.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/anchor110/comments/commentRss/404084.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/anchor110/services/trackbacks/404084.html</trackback:ping><description><![CDATA[1、apache 配置、编译、安装完毕后Q启动apache :apachectl startQ报错如下:<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">httpd: Syntax error on line </span><span style="color: #000000; ">140</span><span style="color: #000000; "> of </span><span style="color: #000000; ">/</span><span style="color: #000000; ">usr</span><span style="color: #000000; ">/</span><span style="color: #000000; ">local</span><span style="color: #000000; ">/</span><span style="color: #000000; ">apache2</span><span style="color: #000000; ">/</span><span style="color: #000000; ">conf</span><span style="color: #000000; ">/</span><span style="color: #000000; ">httpd.conf: Cannot load<br /></span><span style="color: #000000; ">/</span><span style="color: #000000; ">usr</span><span style="color: #000000; ">/</span><span style="color: #000000; ">local</span><span style="color: #000000; ">/</span><span style="color: #000000; ">apache2</span><span style="color: #000000; ">/</span><span style="color: #000000; ">modules</span><span style="color: #000000; ">/</span><span style="color: #000000; ">mod_dir.so into server: </span><span style="color: #000000; ">/</span><span style="color: #000000; ">usr</span><span style="color: #000000; ">/</span><span style="color: #000000; ">local</span><span style="color: #000000; ">/</span><span style="color: #000000; ">apache2</span><span style="color: #000000; ">/</span><span style="color: #000000; ">modules</span><span style="color: #000000; ">/</span><span style="color: #000000; ">mod_dir.so: undefined symbol: apr_array_clear</span></div>解决办法Q?br />重新配置、编译与安装apacheQ在configure的时候,带上选项Q?-with-included-apr?br />重新配置、编译与安装的步骤如下:<br />.cd httpd.2.4.6<br />.make clean<br /><div>./configure --prefix=/usr/local/apache  --enable-so –enable-mods-shared=most --with-mpm=worker --with-apr=/usr/local/apr/   --with-apr-util=/usr/local/apr-util   --with-pcre=/usr/local/pcre    --with-included-apr<br />.make<br />.make install<br /><br />2、启动apache遇到错误Qhttpd: Could not reliably determine the server's fully qualified domain nameQ具体ؓQ?br /><div>httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName</div>问题原因与解军_法:q一般是׃本机DNS讄错误或不惌接外|,所以故意不讄D成的。解军_法如下:<br /><div><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">[root@server conf]# vi httpd.conf<br />#ServerName www.example.com:</span><span style="color: #000000; ">80</span><span style="color: #000000; "><br />ServerName localhost:</span><span style="color: #000000;">80</span></div></div>注意Q端口号要与实际启动的端口号Q即Listen配置相同。若启动了多个Listen实例Q则需要对应的配置多个ServerName与之相对应,否则q会报错?br /><br />参考链接:<div>http://www.2cto.com/os/201201/117797.html</div><div>http://hi.baidu.com/zeldady/item/96f1ae30742006c31a969631</div><br />3、源码编译apache报错Q?div><span style="color: #333333; font-family: 'Lucida Grande',Verdana,Arial,sans-serif; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: #ffffff;">configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.<br /><br />解决办法Q?br /><div><span style="color: #333333; font-family: 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: #ffffff; ">APR和APR-util源码下蝲Q解压放到httpd-2.4.3/srclib里面Qƈ去除版本?br />cp -r apr-1.4.6 httpd-2.4.3/srclib/apr<br />cp -r apr-util-1.4.1 httpd-2.4.3/srclib/apr-util</span></div><br />参考:<div>http://blog.sina.com.cn/s/blog_a45d5a3a01016ycc.html</div><br /></span></div></div><img src ="http://m.tkk7.com/anchor110/aggbug/404084.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/anchor110/" target="_blank">一败涂?/a> 2013-09-14 21:33 <a href="http://m.tkk7.com/anchor110/articles/404084.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tomcat session一直无法清?/title><link>http://m.tkk7.com/anchor110/articles/402330.html</link><dc:creator>一败涂?/dc:creator><author>一败涂?/author><pubDate>Sun, 04 Aug 2013 01:50:00 GMT</pubDate><guid>http://m.tkk7.com/anchor110/articles/402330.html</guid><wfw:comment>http://m.tkk7.com/anchor110/comments/402330.html</wfw:comment><comments>http://m.tkk7.com/anchor110/articles/402330.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/anchor110/comments/commentRss/402330.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/anchor110/services/trackbacks/402330.html</trackback:ping><description><![CDATA[?web应用中设|了会话的超时控制ؓ1分钟Q如下:<br /><session-config><br />    <session-timeout>1</session-timeout><br /></session-config><br />但会话过?分钟的一Q却不清除,查看tomcat理控制収ͼ发现session 是一直递增Q从未清除过q期的session?br /><br />解决办法如下Q?br />1、删?TOMCAT_HOME/work目录下的所有文件?br />2、重启tomcat?br />3、完毕?img src ="http://m.tkk7.com/anchor110/aggbug/402330.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/anchor110/" target="_blank">一败涂?/a> 2013-08-04 09:50 <a href="http://m.tkk7.com/anchor110/articles/402330.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何l定域名和iphttp://m.tkk7.com/anchor110/articles/391435.html一败涂?/dc:creator>一败涂?/author>Fri, 16 Nov 2012 04:28:00 GMThttp://m.tkk7.com/anchor110/articles/391435.htmlhttp://m.tkk7.com/anchor110/comments/391435.htmlhttp://m.tkk7.com/anchor110/articles/391435.html#Feedback0http://m.tkk7.com/anchor110/comments/commentRss/391435.htmlhttp://m.tkk7.com/anchor110/services/trackbacks/391435.html1、进入注册域名的服务|站Q登录后台管理系l?br />2、选择“讄域名解析”Q选择要绑定的域名和要l定的IP地址?br />3、注Q凡?cn域名Q没备案前,都不支持l定。只?com域名支持?br />
q个30分钟左右Q具体等待时间可能略有差异,ping域名Q就能ping通了Q此Ӟ已l绑定了?br />
接下来,可以用域名替换ip讉K|站或自qWEBE序了?img src ="http://m.tkk7.com/anchor110/aggbug/391435.html" width = "1" height = "1" />

]]>
如何替换tomcat下的猫咪图?/title><link>http://m.tkk7.com/anchor110/articles/391431.html</link><dc:creator>一败涂?/dc:creator><author>一败涂?/author><pubDate>Fri, 16 Nov 2012 03:19:00 GMT</pubDate><guid>http://m.tkk7.com/anchor110/articles/391431.html</guid><wfw:comment>http://m.tkk7.com/anchor110/comments/391431.html</wfw:comment><comments>http://m.tkk7.com/anchor110/articles/391431.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/anchor110/comments/commentRss/391431.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/anchor110/services/trackbacks/391431.html</trackback:ping><description><![CDATA[在tomcat下部|应用程序,q行后,发现在地址栏中有个tomcat的小猫咪图标?br />有时候,我们自己不想昄q个图标Q想换成自己定义的的图标Q那么按如下Ҏ操作卛_Q?br />1、将$TOMCAT_HOME/webapps/ROOT/tomcat.svg改名?br />2、将自定义的图标文g改名为favicon.icoQƈ覆盖$TOMCAT_HOME/webapps/ROOT/favicon.ico?br /><br />清空览器缓存,h界面卛_看到自定义效果的图标?img src ="http://m.tkk7.com/anchor110/aggbug/391431.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/anchor110/" target="_blank">一败涂?/a> 2012-11-16 11:19 <a href="http://m.tkk7.com/anchor110/articles/391431.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Caused by: java.lang.NoClassDefFoundError: com/sun/xml/bind/CycleRecoverablehttp://m.tkk7.com/anchor110/articles/391408.html一败涂?/dc:creator>一败涂?/author>Thu, 15 Nov 2012 20:53:00 GMThttp://m.tkk7.com/anchor110/articles/391408.htmlhttp://m.tkk7.com/anchor110/comments/391408.htmlhttp://m.tkk7.com/anchor110/articles/391408.html#Feedback1http://m.tkk7.com/anchor110/comments/commentRss/391408.htmlhttp://m.tkk7.com/anchor110/services/trackbacks/391408.html1、将jaxb-impl-2.1.12.jar和jaxb-api-2.1.jar攑ֈjre/lib/endorsed/目录下,如果没有endorsed目录Q则新徏之,一般情况下是没有的?br />2、将jaxb-impl-2.1.12.jar和jaxb-api-2.1.jar攑ֈ$TOMCAT_HOME/lib/endorsed/目录下,如果没有endorsed目录Q则新徏之,一般情况下是没有的?img src ="http://m.tkk7.com/anchor110/aggbug/391408.html" width = "1" height = "1" />

]]>
webwork文g上传中文文g名上传问题解?/title><link>http://m.tkk7.com/anchor110/articles/388236.html</link><dc:creator>一败涂?/dc:creator><author>一败涂?/author><pubDate>Fri, 21 Sep 2012 03:28:00 GMT</pubDate><guid>http://m.tkk7.com/anchor110/articles/388236.html</guid><wfw:comment>http://m.tkk7.com/anchor110/comments/388236.html</wfw:comment><comments>http://m.tkk7.com/anchor110/articles/388236.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/anchor110/comments/commentRss/388236.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/anchor110/services/trackbacks/388236.html</trackback:ping><description><![CDATA[场景Q?br />用webwork上传中文文g名的文gӞ在action中接收到的文件名已经q?br /><br />解决办法Q?br />修改webwork.properties文gQ将上传文g的解析器Q修ҎpellQ如下:<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; "># multipart parser<br />#弃用jakartaQ解决中文上传文件时文g名ؕ码问?br />webwork.multipart.parser</span><span style="color: #000000; ">=</span><span style="color: #000000; ">pell</span></div><img src ="http://m.tkk7.com/anchor110/aggbug/388236.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/anchor110/" target="_blank">一败涂?/a> 2012-09-21 11:28 <a href="http://m.tkk7.com/anchor110/articles/388236.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat6启动或者发布项目时提示Publishing failed:Resource /xxxx does not existhttp://m.tkk7.com/anchor110/articles/349571.html一败涂?/dc:creator>一败涂?/author>Thu, 05 May 2011 03:25:00 GMThttp://m.tkk7.com/anchor110/articles/349571.htmlhttp://m.tkk7.com/anchor110/comments/349571.htmlhttp://m.tkk7.com/anchor110/articles/349571.html#Feedback0http://m.tkk7.com/anchor110/comments/commentRss/349571.htmlhttp://m.tkk7.com/anchor110/services/trackbacks/349571.html
解决ҎQ?
h一下项目,有可能是盘文g和Eclipse目中文件不一致造成的?

]]>
关于web.xml中的<welcome-file-list>(注:转蝲于http://yjshengshe.javaeye.com/blog/641934)http://m.tkk7.com/anchor110/articles/341547.html一败涂?/dc:creator>一败涂?/author>Sun, 26 Dec 2010 02:21:00 GMThttp://m.tkk7.com/anchor110/articles/341547.htmlhttp://m.tkk7.com/anchor110/comments/341547.htmlhttp://m.tkk7.com/anchor110/articles/341547.html#Feedback0http://m.tkk7.com/anchor110/comments/commentRss/341547.htmlhttp://m.tkk7.com/anchor110/services/trackbacks/341547.html <welcome-file-list>中的<welcome-file>标签部分除了攑օ体的jsp或html面Q例如下Q?
  <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
  <welcome-file>index.html</welcome-file>
  </welcome-file-list>
外能不能放一个请求在里面Q(例如下)
  <welcome-file-list>
  <welcome-file>index.do</welcome-file>
  </welcome-file-list>

我用spring MVCQ按照以下配|?
  <welcome-file-list>
  <welcome-file>index.do</welcome-file>
  </welcome-file-list>
启动服务器,l是?04错误Q但我在地址栏手工加入index.doӞ面正常昄Q这是ؓ什么,是不是服务器不支持这L写法Qindex.doQ?Q?Q如果支持应该如何写Q?Q?

回答:

支持...不过tomcat 会去查有没有index.doq个文g.

意思大概就是这?首先d welcome list,然后取得W一个index,然后到web中的路径中查找有没有q个文g,没有l箋W二?
然后l箋下去没有,提C没有主?

解决办法:
在你的WebRoot 下添加一个空白的文g命名?index.do

]]>
Tomcat配置GZIP压羃l网站提?转蝲于:http://blog.csdn.net/TechChan/archive/2009/02/20/3910524.aspx)http://m.tkk7.com/anchor110/articles/340083.html一败涂?/dc:creator>一败涂?/author>Wed, 08 Dec 2010 09:34:00 GMThttp://m.tkk7.com/anchor110/articles/340083.htmlhttp://m.tkk7.com/anchor110/comments/340083.htmlhttp://m.tkk7.com/anchor110/articles/340083.html#Feedback0http://m.tkk7.com/anchor110/comments/commentRss/340083.htmlhttp://m.tkk7.com/anchor110/services/trackbacks/340083.html Tomcat配置GZIP压羃l网站提?

打开conf/server.xml文g可以看到Q?/p>

<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
    <Connector
port="8080"               maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />
    <!-- Note : To disable connection timeouts, set connectionTimeout value
     to 0 -->

<!-- Note : To use gzip compression you could set the following properties :

      compression="on"
      compressionMinSize="2048"
      noCompressionUserAgents="gozilla, traviata"
      compressableMimeType="text/html,text/xml"
-->

要用gzip压羃功能Q可以在Connector实例中加上如下属?

1) compression="on" 打开压羃功能
2) compressionMinSize="2048" 启用压羃的输出内容大,q里面默认ؓ2KB
3) noCompressionUserAgents="gozilla, traviata" 对于以下的浏览器Q不启用压羃&<60;
4) compressableMimeType="text/html,text/xml" 压羃cd


修改完成?/p>

<Connector
port="8080"               maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true"
      compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla,traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
/>

卛_Connector里面增加U色部分卛_?/p>

]]>
公网讉K不了80端口的解x?/title><link>http://m.tkk7.com/anchor110/articles/332001.html</link><dc:creator>一败涂?/dc:creator><author>一败涂?/author><pubDate>Tue, 14 Sep 2010 10:09:00 GMT</pubDate><guid>http://m.tkk7.com/anchor110/articles/332001.html</guid><wfw:comment>http://m.tkk7.com/anchor110/comments/332001.html</wfw:comment><comments>http://m.tkk7.com/anchor110/articles/332001.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/anchor110/comments/commentRss/332001.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/anchor110/services/trackbacks/332001.html</trackback:ping><description><![CDATA[<br /> 问题描述Q?br />     linux上部|了一个APACHEQ在服务器上讉Khttp://IP地址Q可以访问?br />     但在公网上,讉KQ却讉K不了?br /> <br /> l查Q原因如下:<br />     ׃服务器托在IDC机房Q电信公司对80端口做了Ҏ限制Q必L工信部备案的|站Q才能开?0端口?br /> <br /> <img src ="http://m.tkk7.com/anchor110/aggbug/332001.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/anchor110/" target="_blank">一败涂?/a> 2010-09-14 18:09 <a href="http://m.tkk7.com/anchor110/articles/332001.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Windows pȝ下Tomcat与Apache服务器集?注:转蝲于http://news.newhua.com/news1/Skills_System/2010/91/109113342436764B1G8HBG9JJEDCAH141DKDG0DAG979ADH5197n.html)http://m.tkk7.com/anchor110/articles/331471.html一败涂?/dc:creator>一败涂?/author>Thu, 09 Sep 2010 02:17:00 GMThttp://m.tkk7.com/anchor110/articles/331471.htmlhttp://m.tkk7.com/anchor110/comments/331471.htmlhttp://m.tkk7.com/anchor110/articles/331471.html#Feedback0http://m.tkk7.com/anchor110/comments/commentRss/331471.htmlhttp://m.tkk7.com/anchor110/services/trackbacks/331471.html

Apache 服务器本w没有提?Servlet/JSP 容器。因此,在实际应用中Q把 Tomcat与Apache服务器集成,可以建立h实用价值的商业化的Webq_?/p>

安装Apache服务?/strong>

q行 apache_2.0.63-win32-x86-no_ssl.msiQ就启动?Apache 服务器的安装E序Q只要按默认讄q行安装卛_。如果安装成功,会自动在Windows中加入Apache HTTP服务?

假定Apache服务器的根目录ؓQ在其conf子目录下有一个配|文件httpd.conf。如果Apache安装在本ZQƈ且采用默认的80端口作ؓHTTP端口Q则在httpd.conf文g中会看到如下属性:

Listen 80

在操作系l的【开始?#8594;【程序?#8594;【Apache HTTP Server 2.0?#8594;【ControApacheServer】菜单中Q提供了重启QRestartQ、启动(StartQ和关闭QStopQApache 服务器的子菜单?

Tips

应该保操作pȝ?0端口没有被占用,否则Apache服务器无法启动。当Apache服务器启动后Q就可以通过讉KApache的测试页来确定是否安装成功?

在Apache服务器中加入JK插g

要在Apache服务器中加入JK插gQ只要把mod_jk.so复制?modules目录下即可?

创徏workers.properties文g

Apache 服务器把 Tomcat 看做是ؓ自己工作的工人(workerQ。workers.properties文g用于配置 Tomcat 的信息,它的存放位置?/conf/workers.

properties。在本书附赠光盘? sourcecode/chapter26/windows_apache 目录下提供了workers.properties文gQ它的内容如下(“#”后面为注释信息)Q?

worker.list=worker1worker.worker1.port=8009 #工作端口Q若没占用则不用修改worker.worker1.host=localhost #Tomcat服务器的地址worker.worker1.type=ajp13 #cdworker.worker1.lbfactor=1 #负蝲q因数

以上worker.list指定Tomcat服务器名单。例?#8220;worker.list=worker1”表示只有一? Tomcat 服务器,名ؓ“worker1”。再例如“worker.list=worker1,worker2”表示有两

?Tomcat 服务器,分别名ؓ“worker1”?#8220;worker2”。worker.worker1.port 及worker.worker1.host用于讄名ؓ“worker1”的Tomcat服务器的有关属性,如果要设|worker2的port属性,则可以采?#8220;worker.worker2.port=8109”的Ş式?

试配置

重启Tomcat服务器和Apache服务器,q过览器访问http://localhost/index.jspQ如果出现Tomcat的默认主,p明配|已l成功。此外,如果在Tomcat服务器上已经发布了helloapp应用Q把本书附赠光盘的sourcecode/chapter26 目录下的 helloapp目录复制?webapps 目录下)Q则可以讉K http://localhost/helloapp/hello.htmQ如果正常返回helloapp应用的hello.htm|页Q说明配|已l成功。如果配|有误,可以查看JK插g生成的日志信息,它有助于查找错误原因。在Apache服务器的配置文g httpd.conf 中设定该日志文g的存放位|ؓ/logs/mod_jk.log?





]]>
java.net.SocketException: Too many open fileshttp://m.tkk7.com/anchor110/articles/331469.html一败涂?/dc:creator>一败涂?/author>Thu, 09 Sep 2010 02:12:00 GMThttp://m.tkk7.com/anchor110/articles/331469.htmlhttp://m.tkk7.com/anchor110/comments/331469.htmlhttp://m.tkk7.com/anchor110/articles/331469.html#Feedback0http://m.tkk7.com/anchor110/comments/commentRss/331469.htmlhttp://m.tkk7.com/anchor110/services/trackbacks/331469.html   tomcat与apache整合的时候,在tomcat/conf/server.xml中配|ajp最大连接参数maxThreads?024。然后重启服务器Q当U程数达?024峰值的时候,?strong>java.net.SocketException: Too many open files错误?br />  
  以下为网上摘抄的解决Ҏ与解惑:

  在Unix/Linuxpȝ中,无论是socketq是file讉KQ在后台讉KE序分配了一个文件描q符QdescriptorQ,该文件描 q符为应用程序与基础操作pȝ之间的交互提供了通用接口。Unix/LinuxpȝҎ个进E能打开文g描述W有最大限Ӟ一般默认是1024。如果在? 作socket和file的时候忘记关闭,当超q系l默认的最大限Ӟ则出现java.net.SocketException: Too many open files?/p>  

查看pȝ默认文g描述W的最大限制数
#ulimit 
-a
core file size          (blocks, 
-c) 0
data seg size           (kbytes, 
-d) unlimited
file size               (blocks, 
-f) unlimited
pending signals                 (
-i) 1024
max locked memory       (kbytes, 
-l) 32
max memory size         (kbytes, 
-m) unlimited
open files                      (
-n) 1024
pipe size            (
512 bytes, -p) 8
POSIX message queues     (bytes, 
-q) 819200
stack size              (kbytes, 
-s) 10240
cpu time               (seconds, 
-t) unlimited
max user processes              (
-u) 32764
virtual memory          (kbytes, 
-v) unlimited
file locks                      (
-x) unlimited

查看某一q程打开的文件描q符
#lsof 
-p q程ID
java    
12451 root    1w   REG    8,2     6130    2297363 /opt/log.txt
java    
12451 root   43u  sock    0,5             6741803 can't identify protocol


  针对q个问题Q解军_法如下:

ulimit -2048 增加文g描述W最大数


  我目前遇到的问题,的确是因为socket打开q接太多了?/p>

  当然Q网上其他h说的Q诸如文件流没有关闭Q也可能会导致这个问题。如果是q种情况Q请查程序,把不必要的socket或file操作关闭掉即可解冟?br />




一败涂?/a> 2010-09-09 10:12 发表评论
]]>
Tomcat性能调整(注:转蝲于http://www.jspcn.net/htmlnews/11220922973431762.html)http://m.tkk7.com/anchor110/articles/331465.html一败涂?/dc:creator>一败涂?/author>Thu, 09 Sep 2010 01:56:00 GMThttp://m.tkk7.com/anchor110/articles/331465.htmlhttp://m.tkk7.com/anchor110/comments/331465.htmlhttp://m.tkk7.com/anchor110/articles/331465.html#Feedback0http://m.tkk7.com/anchor110/comments/commentRss/331465.htmlhttp://m.tkk7.com/anchor110/services/trackbacks/331465.html
一. 引言
性能试与分析是软g开发过E中介于架构和调整的一个广泛ƈ比较不容易理解的领域Q更是一较为复 杂的zd。就像下游戏一P有效的性能试和分析只能在一个良好的计划{略和具备了对不可预料事件的处理能力的条件下利地完成。一个下高手赢得比? 靠的不仅仅是Ҏ戏规则的认识Q更是靠他的自己的能力和不断C注于分析自己Ҏ的实力来更加有效地利用和发挥规则的作用。同样一个优U的性能试和分? 人员要面对的是来自一个全新的应用E序和环境下带来的整个项目的挑战。本文中作者结合自q使用l验和参考文档,对Tomcat性能斚w的调整做一? 的介l,q给出Tomcat性能的测试、分析和调整优化的一些方法?br />
? 量Web服务器的性能
? 量web服务器的性能是一让人感到畏~的dQ但是我们在q里给Z些需要注意的地方q且指点你了解其中更多的l节性的内容。它不像一些简单的dQ? 如测量CPU的速率或者是量E序占用CPU的比例,web服务器的性能优化中包括许调整许多变量来达到目标。许多的量{略中都包含了一个看似简单的? 览实际上是在向服务器发送大量的hQ我们称之ؓ客户端的E序Q来量响应旉。客L和服务器端是在同一台机器上吗?服务器在试的时候还q行着其它? 什么程序吗Q客L和服务器端的通讯是通过局域网Q?00baseTQ?0baseTq是使用调制解调器?客户端是否一直重复请求相同的面Q还是随机地 讉K不同的页面?Q这些媄响到了服务缓存的性能Q客L发送请求的有规律的q是H发的?你是在最l的配置环境下运行服务的q是在调试的配置环境下运行服? 的?客户端请求中包含囄q是只有HTML面Q是否有h是通过servlets和JSP的,CGIE序Q服务端包含QServer- Side Includes QSSI是一个可以让你用动态HTML文g的技术)Q所有这些都是我们要关心的Qƈ且几乎我们不可能_地把所有的问题 都清楚地列出来?br />
1.压力试工具

“工欲善其事,必先利其?#8221;Q压力测试只有借助于一些工h可得以实施?br />
? 多数web压力试工具的实现原理都是通过重复的大量的面h来模拟多用户对被系l的q发讉KQ以此达C生压力的目的。生压力的手段都是通过录制 或者是~写压力脚本Q这些脚本以多个q程或者线E的形式在客Lq行Q这样通过Zؓ刉各U类型的压力Q我们可以观察被系l在各种压力状况下的表现Q从 而定位系l瓶颈,作ؓpȝ调优的基。目前已l存在的性能试工具林林L,数量不下一癄Q从单一的开放源码的免费工具如 Aapache 自带 ?nbsp;web 性能试工具 Apache Benchmark、开源的Jmeter 到大而全的商业性能试软g ?nbsp;Mercury ?nbsp;LoadRunner {等。Q何性能试工具都有其优~点Q我们可以根据实际情冉|选用最合适的工具。您可以在这里找C? web压力试工具http://www.softwareqatest.com/qatweb1.html#LOAD

q里我们所使用? 工具要支持web应用服务认证才可以,要支持接收发送cookiesQ不仅如此Tomcat支持多种认证方式Q比如基本认证、基于表单的认证、相互认证和 客户端认证,而一些工具仅仅支持HTTP基本认证。真实地模拟用户认证是性能试工具的一个重要的部分Q因证机制将对一个web站点的性能特征产生? 要的影响。基于你在品中使用的不同的认证方式Q你需要从上面的工具列表中选择使用q种Ҏ的试工具?br />
Apache Benchmark 和http_load是命令行形式的工P非常易于使用。Apache Benchmark可以模仿单独的URLhq且重复地执行,可以使用不同的命? 行参数来控制执行q代的次敎ͼq发用户数等{。它的一个特Ҏ可以周期性地打印出处理过E的信息Q而其它工具只能给Z个全局的报告?br />
2.压力试工具介绍

? 外部环境的调?/strong>
? Tomcat和应用程序进行了压力试后,如果您对应用E序的性能l果不太满意Q就可以采取一些性能调整措施了,当然了前提是应用E序没有问题Q我们这? 只讲Tomcat的调整。由于Tomcat的运行依赖于JVMQ所以在q里我们把Tomcat的调整可以分ZcL详细描述Q?br />
外部环境调整 

调整非TomcatlgQ例如Tomcatq行的操作系l和q行Tomcat的java虚拟机?br />
自n调整 

修改Tomcat自n的参敎ͼ调整Tomcat配置文g中的参数?br />
下面我们详l讲解外部环境调整的有关内容QTomcat自n调整的内容将在第2部分中阐q?.JAVA虚拟机性能优化

Tomcat本n不能直接在计机上运行,需要依赖于g基础之上的操作系l和一个java虚拟机。您可以选择自己的需要选择不同的操作系l和对应? JDK的版本(只要是符合Sun发布的Java规范的)Q但我们推荐您用Sun公司发布的JDK。确保您所使用的版本是最新的Q因为Sun公司和其它一 些公怸直在为提高性能而对java虚拟机做一些升U改q。一些报告显CJDK1.4在性能上比JDK1.3提高了将q?0%?0%?br />
可以lJava虚拟|用的内存Q但是如果你的选择不对的话Q虚拟机不会补偿。可通过命o行的方式改变虚拟Z用内存的大小。如下表所C有两个参数用来讄虚拟Z用内存的大小?br /> 参数
 描述
 
-Xms<size>
 JVM初始化堆的大?br />  
-Xmx<size>
 JVM堆的最大?br />  


q两个值的大小一般根据需要进行设|。初始化堆的大小执行了虚拟机在启动时向系l申L内存的大。一般而言Q这个参C重要。但是有的应用程序在大负 载的情况下会急剧地占用更多的内存Q此时这个参数就是显得非帔R要,如果虚拟机启动时讄使用的内存比较小而在q种情况下有许多对象q行初始化,虚拟机就 必须重复地增加内存来满使用。由于这U原因,我们一般把-Xms?Xmx设ؓ一样大Q而堆的最大值受限于pȝ使用的物理内存。一般用数据量较大的应 用程序会使用持久对象Q内存用有可能q速地增长。当应用E序需要的内存出堆的最大值时虚拟机就会提C内存溢出,q且D应用服务崩溃。因此一般徏议堆 的最大D|ؓ可用内存的最大值的80%?br />
Tomcat默认可以使用的内存ؓ128MBQ在较大型的应用目中,q点内存是不够的Q需要调大?br />
Windows下,在文件{tomcat_home}/bin/catalina.batQUnix下,在文件{tomcat_home}/bin/catalina.sh的前面,增加如下讄Q?br />
JAVA_OPTS='-Xms【初始化内存大小?nbsp;-Xmx【可以用的最大内存?

需要把q个两个参数D大。例如:

JAVA_OPTS='-Xms256m -Xmx512m'

表示初始化内存ؓ256MBQ可以用的最大内存ؓ512MB?br />
另外需要考虑的是Java提供的垃圑֛收机制。虚拟机的堆大小军_了虚拟机p在收集垃圾上的时间和频度。收集垃圑֏以接受的速度与应用有养I应该通过 分析实际的垃圾收集的旉和频率来调整。如果堆的大很大,那么完全垃圾攉׃很慢Q但是频度会降低。如果你把堆的大和内存的需要一_完全攉很 快,但是会更加频J。调整堆大小的的目的是最化垃圾攉的时_以在特定的时间内最大化处理客户的请求。在基准试的时候,Z证最好的性能Q要把堆? 大小讑֤Q保证垃圾收集不在整个基准测试的q程中出现?br />
如果pȝp很多的时间收集垃圾,请减堆大小。一ơ完全的垃圾攉应该不超 q?nbsp;3-5 U。如果垃圾收集成为瓶颈,那么需要指定代的大,查垃圾收集的详细输出Q研I?nbsp;垃圾攉参数Ҏ能的媄响。一般说来,你应该用物理内? ?nbsp;80% 作ؓ堆大。当增加处理器时Q记得增加内存,因ؓ分配可以q行q行Q而垃圾收集不是ƈ行的?br />
2.操作pȝ性能优化

q里说的操作pȝ是指q行web服务器的pȝ软gQ当Ӟ不同的操作系l是Z同的目的而设计的。比如OpenBSD是面向安全的Q因此在它的内核中有 许多的限制来防止不同形式的服务攻击(OpenBSD的一句右铭?#8220;默认是最安全?#8221;Q。这些限制或许更多地用来q行z跃的web服务器?br />
而我们常用的Linux操作pȝ的目标是易用使用Q因此它有着更高的限制。用BSD内核的系l都带有一个名?#8220;Generic”的内核,表明所有的? 动器都静态地与之相连。这样就使系l易于用,但是如果你要创徏一个自定义的内核来加强其中某些限制Q那需要排除不需要的讑֤。Linux内核中的许多 驱动都是动态地加蝲的。但是换而言之,内存现在变得来便宜,所以因为加载额外的讑֤驱动显得不是很重要的。重要的是要有更多的内存Qƈ且在服务器上 腑և更多的可用内存?br />
提C:虽然现在内存已经相当的便宜,但还是尽量不要购C宜的内存。那些有牌子的内存虽然是贵一点,但是从可靠性上来说Q性h比会更高一些?br />
如果是在Windows操作pȝ上用TomcatQ那么最好选择服务器版本。因为在非服务器版本上,最l用h权数或者操作系l本w所能承受的用户数、可用的|络q接数或其它斚w的一些方面都是有限制的。ƈ且基于安全性的考虑Q必ȝ常给操作pȝ打上最新的补丁?br />
3.Tomcat与其它web服务器整合?br />
虽然tomcat也可以作web服务?但其处理静态html的速度比不上apache,且其作ؓweb服务器的功能q不如apache,因此我们x apache和tomcat集成hQ将html与jsp的功能部分进行明分工,让tomcat只处理jsp部分Q其它的由apache,IIS{这? web服务器处理,由此大大节省了tomcat有限的工?#8220;U程”?br />
4.负蝲均衡

在负载均衡的思\下,多台服务器ؓ对称方式Q每台服务器都具有同{的CQ可以单独对外提供服务而无d他服务器的辅助。通过负蝲分担技术,外部发送来的请求按一定规则分配到对称l构中的某一台服务器上,而接收到h的服务器都独立回应客h的请求?br />
提供服务的一l服务器l成了一个应用服务器集群(cluster)Qƈ对外提供一个统一的地址。当一个服务请求被发至该集时Q根据一定规则选择一台服务器Qƈ服务{定向l该服务器承担,卛_负蝲q行均衡分摊?br />
通过应用负蝲均衡技术,使应用服务超q了一台服务器只能为有限用h供服务的限制Q可以利用多台服务器同时为大量用h供服务。当某台服务器出现故? Ӟ负蝲均衡服务器会自动q行ƈ停止服务请求分发至该服务器Q而由其他工作正常的服务器l箋提供服务Q从而保证了服务的可靠性?br />
负蝲均衡实现的方式大概有四种Q第一是通过DNSQ但只能实现单的轮流分配Q不能处理故障,W二如果是基? MS IISQWindows 2003 server本n带了负载均衡服务,W三是硬件方式,通过交换机的功能或专门的负蝲均衡讑֤可以实现Q第四种 是Y件方式,通过一台负载均衡服务器q行Q上面安装Y件。用Apache Httpd Server做负载^衡器QTomcat集群节点使用 Tomcat可以做C上第四种方式。这U方式比较灵z,成本相对也较低。另外一个很大的优点是可以Ҏ应用的情况和服务器的情况采取一些策略?nbsp;

? 自n调整
? 节将向您详细介绍一些加速可使Tomcat实例加速运行的技巧和ҎQ无论是在什么操作系l或者何UJava虚拟Z。在有些情况下,您可能没有控刉|? 环境上的操作pȝ或者Java虚拟机。在q种情况下,您就需要逐行了解以下的的一些徏议,然而你应该在修改后使之生效。我认ؓ以下Ҏ是Tomcat性能 自n调整的最x式?br />
1.用DNS查询

当web应用E序向要记录客户端的信息Ӟ它也会记录客L的IP地址 或者通过域名服务器查找机器名转换为IP地址。DNS查询需要占用网l,q且包括可能从很多很q的服务器或者不起作用的服务器上去获取对应的IP的过E, q样会消耗一定的旉。ؓ了消除DNS查询Ҏ能的媄响我们可以关闭DNS查询Q方式是修改server.xml文g中的enableLookups参数 |


Tomcat4

<Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="80" minProcessors="5" maxProcessors="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" useURIValidationHack="false" disableUploadTimeout="true" />

Tomcat5

<Connector port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true"/>


除非你需要连接到站点的每个HTTP客户端的机器名,否则我们在生产环境上关闭DNS查询功能。可以通过Tomcat以外的方式来获取机器名。这? 不仅节省了网l带宽、查询时间和内存Q而且更小的流量会使日志数据也会变得更,显而易见也节省了硬盘空间。对量较小的站Ҏ说禁用DNS查询可能没有 大流量站点的效果明显Q但是此举仍不失Z良策。谁又见C个低量的网站一夜之间就量大增呢?

2.调整U程?br />
另外一个可通过应用E序的连接器QConnectorQ进行性能控制的的参数是创建的处理h的线E数。Tomcat使用U程池加速响应速度来处理请 求。在Java中线E是E序q行时的路径Q是在一个程序中与其它控制线E无关的、能够独立运行的代码Dc它们共享相同的地址I间。多U程帮助E序员写? CPU最大利用率的高效程序,使空闲时间保持最低,从而接受更多的h?br />
Tomcat4中可以通过修改minProcessors? maxProcessors的值来控制U程数。这些值在安装后就已经讑֮为默认值ƈ且是_使用的,但是随着站点的扩容而改大这些倹{? minProcessors服务器启动时创徏的处理请求的U程数应该够处理一个小量的负蝲。也是_如果一天内每秒仅发?ơ单MӞq且每个h d处理需?U钟Q那么预先设|线E数?p够了。但在你的站点访问量较大时就需要设|更大的U程敎ͼ指定为参数maxProcessors的倹{? maxProcessors的g是有上限的,应防止流量不可控Ӟ或者恶意的服务dQ,从而导致超Z虚拟Z用内存的大小。如果要加大q发q接敎ͼ 应同时加大这两个参数。web server允许的最大连接数q受制于操作pȝ的内核参数设|,通常Windows?000个左叻ILinux? 1000个左叟?br />
在Tomcat5对这些参数进行了调整Q请看下表:
属性名
 描述
 
maxThreads
 Tomcat使用U程来处理接收的每个h。这个DCTomcat可创建的最大的U程数?br />  
acceptCount 
 指定当所有可以用的处理h的线E数都被使用Ӟ可以攑ֈ处理队列中的h敎ͼ过q个数的h不予处理?br />  
connnectionTimeout 
 |络q接时Q单位:毫秒。设|ؓ0表示怸时Q这栯|有隐患的。通常可设|ؓ30000毫秒?br />  
minSpareThreads 
 Tomcat初始化时创徏的线E数?br />  
maxSpareThreads 
 一旦创建的U程过q个|Tomcat׃关闭不再需要的socketU程?br />  


最好的方式是多讄几次q且q行试Q观察响应时间和内存使用情况。在不同的机器、操作系l或虚拟机组合的情况下可能会不同Q而且q不是所有h的web站点的流量都是一LQ因此没有一刀切的Ҏ来确定线E数的倹{?br />

3.加速JSP~译速度

当第一ơ访问一个JSP文gӞ它会被{换ؓJava serverlet源码Q接着被编译成Java字节码。你可以控制使用哪个~译器,默认情况下,Tomcat使用使用命o行javacq行使用的编译器。也可以使用更快的编译器Q但是这里我们将介绍如何优化它们?br />
另外一U方法是不要把所有的实现都用JSP面Q而是使用一些不同的java模板引擎变量。显然这是一个跨很大的军_Q但是事实证明至这U方法是 只得研究的。如果你想了解更多有兛_Tomcat可用的模板语言Q你可以参考Jason Hunter和William Crawford合著? 《Java Servlet Programming 》一书(O'Reilly公司出版Q?br />
在Tomcat 4.0中可以用流? 而且免费的Jikes~译器。Jikes~译器的速度要由于Sun的Java~译器。首先要安装JikesQ可讉K http://oss.software.ibm.com/pub/jikes 获得更多的信息)Q接着需要在环境变量中设|JIKESPATH包含pȝ q行时所需的JAR文g。装好Jikes以后q需要设|让JSP~译servlet使用JikesQ需要修改web.xml文g? jspCompilerPlugin的|


<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>
org.apache.jasper.servlet.JspServlet
</servlet-class><init-param>
<param-name>logVerbosityLevel</param-name>
<param-value>WARNING</param-value>
</init-param>
<init-param>
<param-name>jspCompilerPlugin</param-name>
<param-value>
org.apache.jasper.compiler.JikesJavaCompiler
</param-value>
</init-param>
<init-param>
<!-- <param-name>
org.apache.catalina.jsp_classpath
</param-name> -->
<param-name>classpath</param-name>
<param-value>
/usr/local/jdk1.3.1-linux/jre/lib/rt.jar:
/usr/local/lib/java/servletapi/servlet.ja
r</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>


在Tomcat 4.1Q或更高版本Q,JSP的编译由包含在Tomcat里面的AntE序控制器直接执行。这听v来有一点点奇怪,但这正是Ant有意 Z的一部分Q有一个API文档指导开发者在没有启动一个新的JVM的情况下Q用Ant。这是用Antq行Java开发的一大优ѝ另外,q也意味着 你现在能够在Ant中用Q何javac支持的编译方式,q里有一个关于Apache Ant使用手册的javac page列表。用v来是Ҏ的,? Z只需要在 元素中定义一个名字叫“compiler”Qƈ且在value中有一个支持编译的~译器名字,CZ如下Q?br />

<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>
org.apache.jasper.servlet.JspServlet
</servlet-class>
<init-param>
<param-name>logVerbosityLevel</param-name>
<param-value>WARNING</param-value>
</init-param>
<init-param>
<param-name>compiler</param-name>
<param-value>jikes</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>



Ant可用的编译器
名称
 别名
 调用的编译器
 
classic 
 javac1.1, javac1.2 
 Standard JDK 1.1/1.2 compiler 
 
modern 
 javac1.3, javac1.4 
 Standard JDK 1.3/1.4 compiler 
 
jikes 
    The Jikes compiler 
 
JVC Microsoft 
 Microsoft command-line compiler from the Microsoft SDK for Java/Visual J++ 
 
KJC    The kopi compiler 
 
GCJ    The gcj compiler (included as part of gcc) 
 
SJ Symantec 
 Symantec's Java compiler 
 
extJavac
    Runs either the modern or classic compiler in a JVM of its own 
 


׃JSP面在第一ơ用时已经被编译,那么你可能希望在更新新的jsp面后马上对它进行编译。实际上Q这个过E完全可以自动化Q因为可以确认的是新的JSP面在生产服务器和在试服务器上的运行效果是一L?nbsp;

在Tomcat4的bin目录下有一个名为jspc的脚本。它仅仅是运行翻译阶D,而不是编译阶D,使用它可以在当前目录生成Java源文件。它是调试JSP面的一U有力的手段?br />
可以通过览器访问再认一下编译的l果。这样就保了文件被转换成serverletQ被~译了可直接执行。这样也准确地模仿了真实用户讉KJSP面Q可以看到给用户提供的功能。也抓紧q最后一M改出现的bugq且修改它J

Tomcat提供了一U通过h来编译JSP面的功能。例如,你可以在览器地址栏中输入http://localhost:8080 /examples/jsp/dates/date.jsp?jsp_precompile=trueQ这样Tomcat׃~译data.jsp而不? 执行它。此丑֔手可得,不失ZU检验页面正性的捷径?br />
4. 其它

前面我们提到q操作系l通过一些限制手D|防止恶意的服务攻击,同样Tomcat也提供了防止恶意d或禁止某些机器访问的讄?br />
Tomcat提供了两个参C你配|:RemoteHostValve 和RemoteAddrValve?nbsp;

通过配置q两个参敎ͼ可以让你qo来自h的主机或IP地址Qƈ允许或拒l哪些主?IP。与之类似的Q在Apache的httpd文g里有Ҏ个目录的允许/拒绝指定?nbsp;

例如你可以把Admin Web application讄成只允许本地讉KQ设|如下:


<Context path="/path/to/secret_files" ...> 
<Valve className="org.apache.catalina.valves.RemoteAddrValve" 

allow="127.0.0.1" deny=""/> 
</Context>


如果没有l出允许L的指定,那么与拒l主机匹配的L׃被拒l,除此之外的都是允许的。与之类|如果没有l出拒绝L的指定,那么与允怸机匹配的L׃被允许,除此之外的都是拒l的?br />
? 定w计划
定w计划是在生环境中用Tomcat不得不提的提高性能的另一个重要的话题。如果你没有寚w期的|络量下的g和带宽做考虑的话那么无论你如何做配置修改和测试都无济于事?br />
q里先对提及的容量计划作一个简要的定义Q容量计划是指评估硬件、操作系l和|络带宽Q确定应用服务的服务范围Q寻求适合需求和软gҎ的软硬件的一Ҏ动。因此这里所说的软g不仅包括TomcatQ也包括与Tomcatl合使用的Q何第三方web服务器Y件?br />
如果在购买Yg或部|系l前你对定w计划一无所知,不知道现有的软硬件环境能够支撑多的讉K量,甚至更糟直到你已l交付ƈ且在生环境上部|品后 才意识到配置有问题时再进行变更可能ؓ时已晚。此时只能增加硬件投入,增加盘定w甚至购买更好的服务器。如果事先做了容量计划那么就不会搞的如此焦头? 额了?br />
我们q里只介l与Tomcat相关的内宏V?br />
首先Z定Tomcat使用机器的容量计划,你应该从一下列表项目种着手研I和计划Q?br />
1. g

采用什么样的硬件体p?需要多台计算机?使用一个大型的Q还是用多台小型机Q每个计机上用几个CPUQ用多内存?使用什么样的存储设 备,I/O的处理速度有什么要求?怎样l护q些计算机?不同的JVM在这些硬件上q行的效果如何(比如IBM AIXpȝ只能在其设计的硬件系l上q? 行)Q?br />
2. |络带宽

带宽的用极限是多少Qweb应用E序如何处理q多的请求?

3. 服务端操作系l?br />
采用哪种操作pȝ作ؓ站点服务器最好?在确定的操作pȝ上用哪个JVM最好?例如QJVM在这U系l上是否支持本地多线E,对称多处理?哪种pȝ可web服务器更快、更E_Qƈ且更便宜。是否支持多CPUQ?nbsp;
4. Tomcat定w计划

以下介绍针对Tomcat做容量计划的步骤Q?br />
1Q?nbsp;量化负蝲。如果站点已l徏立ƈq行Q可以用前面介l的工具模仿用户讉KQ确定资源的需求量?br />
2Q?nbsp;针对试l果或测试过E中q行分析。需要知道那些请求造成了负载过重或者用过多的资源Qƈ与其它请求做比较Q这样就定了系l的瓉所在。例如:如果servlet在查询数据库的步骤上耗用较长的时_那么需要考虑使用~冲池来降低响应旉?br />
3Q?nbsp;定性能最低标准。例如,你不惌用户?0U来{待l果面的返回,也就是说甚至在达到访问量的极限时Q用L待的旉也不能超q?0U种Q从 点击链接到看到返W一条返回数据)。这个时间中包含了数据库查询旉和文件访问时间。同cM品性能在不同的公司可能有不同的标准Q一般最好采取同行中的最 低标准或对这个标准做估?br />
4Q?nbsp;定如何合理使用底层资源Qƈ逐一q行试。底层资源包括CPU、内存、存储器、带宽、操作系 l、JVM{等。在各种生环境上都按顺序进行部|和试Q观察是否符合需求。在试Tomcat时尽量多采用几种JVMQƈ且调整JVM使用内存? TomcatU程池的大小q行试。同时ؓ了达到资源充分合理稳定地使用的效果,q需针对试q程中出现的gpȝ瓉q行处理定合理的资源配|。这? q程最为复杂,而且一般由于没有可参考的值所以只能靠理论推断和经验ȝ?br />
5Q?nbsp;如果通过W?步的反复试如果辑ֈ了最优的l合Q就可以在相同的生环境上部|品了?br />
此外应牢C定要文档化你的测试过E和l果Q因为此后可能还会进行测试,q样可以拿以前的测试结果做为参考。另外测试过E要反复多次q行Q每ơ的条g可能都不一P因此只有记录下来才能q行l果比较和最x件的选择?br />
q样我们通过试扑ֈ了最好的l合方式Q各U资源得C合理的配|,pȝ的性能得到了极大的提升?br />
? 附加资料
很显然本文也很难全面而详地阐述性能优化q程。如果你q行更多研究的话可能会把性能调优做的更好Q比如JavaE序的性能调整、操作系l的调整、各U复 杂环境与应用pȝ和其它所有与应用E序相关的东ѝ在q里提供一些文中提到的一些资源、文中提到的相关内容的链接以及本文的一些参考资料?br />
1. Web性能试资料及工?br />
1Q?nbsp;Jmeter Wiki首页QJmeterZ个开源的100%Java开发的性能试工具
http://wiki.apache.org/jakarta-jmeter/

2Q?nbsp;Apache Benchmark使用说明
http://httpd.apache.org/docs-2.0/programs/ab.html

3Q?nbsp;一些Java相关试工具的介l,包含可以与Tomcat集成q行试的工?br /> http://blog.csdn.net/wyingquan/

4Q?nbsp;LoadRunner? 是一U预系l行为和性能的工业标准负蝲试工具。它通过模拟数据以千万计用户来实施ƈ发负载来Ҏ个企业架构进行测试,来帮助您更快的查扑֒发现问题?br /> http://www.mercury.com/us/products/performance-center/loadrunner/


2. 文中介绍的相兛_容的介绍

1Q?nbsp;Apache 2.x + Tomcat 4.x做负载均衡,描述了如何利用jk配置集群的负载均衡?br /> http://raibledesigns.com/tomcat/index.html

2Q?nbsp;定w计划的制定,攉了许多有兛_定web站点定w计划的例子:
http://www.capacityplanning.com/

3Q?nbsp;评测Tomcat5负蝲q与集,
http://www.javaresearch.org/article/showarticle.jsp?column=556&thread=19777

4Q?nbsp;Apache与Tomcat的安装与整合之整合篇
http://www.javaresearch.org/article/showarticle.jsp?column=23&thread=18139

5Q?nbsp;性能试工具之研IӞ介绍了性能试工具的原理与思\
http://www.51testing.com/emagzine/No2_2.htm

6Q?nbsp;Java的内存泄?br /> http://www.matrix.org.cn/resource/article/409.html

7Q?nbsp;Web服务器和应用E序服务器有什么区别?
http://www.matrix.org.cn/resource/article/1429.html

8Q?nbsp;详细讲解性能中数据库集群的问?br /> http://www.theserverside.com/articles/article.tss?l=DB_Break


]]>
Tomcat 6.0 ׃nU程池的配置Shared Executor Thread pool(注:转蝲于http://www.java2000.net/p11864)http://m.tkk7.com/anchor110/articles/331461.html一败涂?/dc:creator>一败涂?/author>Thu, 09 Sep 2010 01:53:00 GMThttp://m.tkk7.com/anchor110/articles/331461.htmlhttp://m.tkk7.com/anchor110/comments/331461.htmlhttp://m.tkk7.com/anchor110/articles/331461.html#Feedback0http://m.tkk7.com/anchor110/comments/commentRss/331461.htmlhttp://m.tkk7.com/anchor110/services/trackbacks/331461.html 配置很简?
W一步,打开׃n的线E池

  1. <Service name="Catalina">  
  2.   <!--The connectors can use a shared executor, you can define one or more named thread pools-->  
  3.   
  4.     <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"   
  5.     maxThreads="1000" minSpareThreads="50" maxIdleTime="600000"/>  


默认前后是注?lt;!-- -->掉的Q去掉就可以了。其?

name
The name used to reference this pool in other places in server.xml. The name is required and must be unique.
q个是线E池的名字,必须唯一Q我们在后面的配|里要用到这个东?

namePrefix
(String) The name prefix for each thread created by the executor. The thread name for an individual thread will be namePrefix+threadNumber
U程的名字前~Q用来标记线E名字的Q这h个线E就用这个前~加上U程~号了,比如
catalina-exec-1
catalina-exec-2

maxThreads
(int) The max number of active threads in this pool, default is 200
允许的最大线E池里的U程数量Q默认是200Q大的ƈ发应该设|的高一些,反正只是限制而已Q不占用资源

minSpareThreads
(int) The minimum number of threads always kept alive, default is 25
最的保持z跃的线E数量,默认?5.q个要根据负载情况自行调整了。太了媄响反应速度Q太大了白白占用资源?

maxIdleTime
(int) The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads. Default value is 60000(1 minute)
过最活跃线E数量的U程Q如果空闲时间超q这个设|后Q会被关别。默认是1分钟?

threadPriority
(int) The thread priority for threads in the executor, the default is Thread.NORM_PRIORITY
U程的等U。默认是Thread.NORM_PRIORITY


W二?
?Connector里指定用共享线E池
  1. <Connector  
  2.   port="8009"  
  3.   protocol="AJP/1.3"  
  4.   maxThreads="5000"  
  5.   executor="tomcatThreadPool"  

注意Q一旦用了U程池,则其它的U程属性,比如 maxThreads{将被忽?


我测试了一下,׃每次h不再需要重新分配线E,pȝ响应速度q是有很明显的改善的?

]]>
L实现Apache,Tomcat集群和负载均?注:转蝲于http://hi.baidu.com/luodaijun/blog/item/5bbe4cfb5ffef864034f56a1.html)http://m.tkk7.com/anchor110/articles/331460.html一败涂?/dc:creator>一败涂?/author>Thu, 09 Sep 2010 01:48:00 GMThttp://m.tkk7.com/anchor110/articles/331460.htmlhttp://m.tkk7.com/anchor110/comments/331460.htmlhttp://m.tkk7.com/anchor110/articles/331460.html#Feedback0http://m.tkk7.com/anchor110/comments/commentRss/331460.htmlhttp://m.tkk7.com/anchor110/services/trackbacks/331460.html

环境说明

       Apache  :apache_2.0.55     1 ?/p>

       Tomcat:  apache-tomcat-5.5.17 (zip? 2?/p>

       mod_jk:: mod_jk-apache-2.0.55.so  1?/p>

W一部分Q负载均?/strong>

    负蝲均衡Q就是apache客戯求均衡的分给tomcat1,tomcat2....d?/p>

   1.安装apche,tomcat

   http://httpd.apache.org/ 下蝲Apache 2.0.55

    http://tomcat.apache.org/download-55.cgi 下蝲tomcat5.5 zip版本Q解压即可,l色版)

   http://apache.justdn.org/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.15/  下蝲mod_jk,注意?nbsp; apache版本匚w

   按照jdk,我的路径?E:"ide"apache"Apache2

   解压两䆾Tomcat, 路径分别?E:"ide"tomcat1,E:"ide"tomcat2

下蝲mod_jk

2.修改Apache配置文ghttp.conf

   在apache安装目录下conf目录中找到http.conf

   在文件最后加上下面一句话可以了

  include "E:"ide"apache"Apache2"conf"mod_jk.conf"

2. http.conf 同目录下新徏mod_jk.conf文gQ内容如?/strong>
  
#加蝲mod_jk Module
LoadModule jk_module modules/mod_jk-apache-2.0.55.so
#指定 workers.properties文g路径
JkWorkersFile conf/workers.properties
#指定那些h交给tomcat处理,"controller"为在workers.propertise里指定的负蝲分配控制?/div>
JkMount /*.jsp controller
3.在http.conf同目录下新徏 workers.properties文gQ内容如?/strong>
 
worker.list = controller,tomcat1,tomcat2  #server 列表
#========tomcat1========
worker.tomcat1.port=8009         #ajp13 端口P在tomcat下server.xml配置,默认8009
worker.tomcat1.host=localhost  #tomcat的主机地址Q如不ؓ本机Q请填写ip地址
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1   #server的加权比重,D高,分得的请求越?/div>
#========tomcat2========
worker.tomcat2.port=9009       #ajp13 端口P在tomcat下server.xml配置,默认8009
worker.tomcat2.host=localhost  #tomcat的主机地址Q如不ؓ本机Q请填写ip地址
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1   #server的加权比重,D高,分得的请求越?/div>

#========controller,负蝲均衡控制?=======
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2   #指定分担h的tomcat
worker.controller.sticky_session=1
4.修改tomcat配置文gserver.xml
如果你在不同电脑上安装tomcat,tomcat的安装数量ؓ一个,可以不必修改tomcat配置文g
我这里是在同一台电脑上安装两个tomcatQ所以需要更改其中一个的讄
打开tomcat2/conf/server.xml文g
5.~写一个测试jsp
建立一个目录test.里面新徏一个test.jsp,内容?/div>
<%
   System.out.println("===========================");
%>
把test攑ֈtomcat1,tomcat2的webapps?/div>
6.启动apache,tomcat1,tomcat2,q行试
通过 http://localhost/test/test.jsp 讉KQ查看tomcat1的窗口,可以看到打印了一?=========="
再刷Cơ,tomcat2也打C一条,再刷斎ͼ可以看到h会被tomcat1,tomcat2轮流处理,实现了负载均?/div>
W二部分Q配|集?/strong>
   只配|负载均衡还不行Q还要session复制Q也是说其中Q何一个tomcat的添加的sessionQ是要同步复制到其它tomcatQ?集群内的tomcat都有相同的session
1. 修改tomcat1, tomcat2的server.xml,集部分配|的在注释符删掉,q将tomcat2?001端口改ؓ4002Q以避免与tomcat冲突Q当Ӟ如果是两台电脑,是不用改端口的,L注释W即?/div>   
2Q修Ҏ试项目test
修改test.jsp,内容如下
  <%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
<%
  out.println("<br> ID " + session.getId()+"<br>");
  // 如果有新?Session 属性设|?br />   String dataName = request.getParameter("dataName");
  if (dataName != null && dataName.length() > 0) {
     String dataValue = request.getParameter("dataValue");
     session.setAttribute(dataName, dataValue);
  }
  out.print("<b>Session 列表</b>");
  Enumeration e = session.getAttributeNames();
  while (e.hasMoreElements()) {
     String name = (String)e.nextElement();
     String value = session.getAttribute(name).toString();
     out.println( name + " = " + value+"<br>");
         System.out.println( name + " = " + value);
   }
%>
  <form action="index.jsp" method="POST">
    名称:<input type=text size=20 name="dataName">
     <br>
    ?<input type=text size=20 name="dataValue">
     <br>
    <input type=submit>
   </form>
</body>
</html>
然后在test 新徏WEB-INF目录QWEB-INF下新建web.xml,内容如下
注意Q在你的应用的web.xml加入  <distributable/> 卛_
ok,讲test复制到tomcat1,tomcat2的webapps下,重启apache,tomcat1,tomcat2,
新徏一?名称?xiaoluo  ,gؓ cdut 的session,提交查询Q新开一个ieH口Q再提交查询Q如图,可以看到Q两个tomcat 是负载均衡,q且session同步?/div>


]]>TomcatU程池apr和threadPoolQ注Q{载于http://hi.baidu.com/%CE%E2_%F0%A9/blog/item/da3a56441965cb3386947350.htmlQ?/title><link>http://m.tkk7.com/anchor110/articles/330166.html</link><dc:creator>一败涂?/dc:creator><author>一败涂?/author><pubDate>Sun, 29 Aug 2010 06:15:00 GMT</pubDate><guid>http://m.tkk7.com/anchor110/articles/330166.html</guid><wfw:comment>http://m.tkk7.com/anchor110/comments/330166.html</wfw:comment><comments>http://m.tkk7.com/anchor110/articles/330166.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/anchor110/comments/commentRss/330166.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/anchor110/services/trackbacks/330166.html</trackback:ping><description><![CDATA[<div class="6166111" id="blog_text" class="cnt"><font size="3">Tomcat是用最q的Java <strong style="background-color: rgb(255, 255, 102); color: black;">Web容器</strong>Q功能强大,可扩展性强。最新版本的TomcatQ?.5.17Qؓ了提高响应速度和效率,使用?/font><a target="_blank" ><font size="3">Apache Portable Runtime</font></a><font size="3">QAPRQ作为最底层Q用了APR中包含Socket、缓冲池{多U技术,性能也提高了。APR也是Apache HTTPD的最底层。可惌知Q同属于</font><a target="_blank" ><font size="3">ASF</font></a><font size="3">QApache Software FoundationQ中的成员,互补互用的情况还是很多的Q虽然用了不同的开发语a?</font> <p><font size="3">Tomcat ?strong style="background-color: rgb(153, 255, 153); color: black;">U程?/strong>位于tomcat-util.jar文g中,包含了两U?strong style="background-color: rgb(153, 255, 153); color: black;">U程?/strong>Ҏ?/font></p> <p><font size="3">Ҏ一Q用APR的Pool技术,使用了JNIQ?/font></p> <p><font size="3">Ҏ二:使用Java实现的ThreadPool。这里介l的是第二种。如果想了解APR的Pool技术,可以查看APR的源代码?/font></p> <p><font size="3">ThreadPool默认创徏?个线E,保存在一?00l的U程数组中,创徏时就启动了这些线E,当然在没有请求时Q它们都处理“{待”状态(其实是一个while循环Q不停的{待notifyQ。如果有hӞI闲U程会被唤醒执行用户的请求?/font></p> <p><font size="3">具体的请求过E是Q? 服务启动Ӟ创徏一个一l线E数l(maxThreadQ?00个)Qƈ创徏I闲U程(minSpareThreadsQ??随时{待用户h? 当有用户hӞ调用 threadpool.runIt(ThreadPoolRunnable)ҎQ将一个需要执行的实例传给ThreadPool中。其中用户需要执行的 实例必须实现ThreadPoolRunnable接口?ThreadPool 首先查找I闲的线E,如果有则用它q行要执行ThreadPoolRunnableQ如果没有空闲线Eƈ且没有超qmaxThreadsQ就一ơ性创? minSpareThreads个空闲线E;如果已经过了maxThreads了,q待空闲线E了。MQ要扑ֈI闲的线E,以便用它执行实例。找? 后,该U程从线E数l中U走?接着唤醒已经扑ֈ的空闲线E,用它q行执行实例QThreadPoolRunnableQ? q行完ThreadPoolRunnable后,将该线E重新放到线E数l中Q作为空闲线E供后箋使用?</font></p> <p><font size="3">由此可以看出QTomcat?strong style="background-color: rgb(153, 255, 153); color: black;">U程?/strong>实现是比较简单的QThreadPool.java也只?40行代码。用一个一l数l保存空闲的U程Q每ơ以一个较步伐(5个)创徏I闲U程q放?strong style="background-color: rgb(153, 255, 153); color: black;">U程?/strong>中。用时从数l中U走I闲的线E,用完后,?#8220;归还”l?strong style="background-color: rgb(153, 255, 153); color: black;">U程?/strong>?/font><font size="3"><br /> </font></p> <p><font size="3">tomcat5.5.10以上版本支持aprQ支持通过apache runtime moduleq行JNI调用Q用本C码来加速网l处理?</font></p> <p><font size="3">如果不用apr之前QTomcat的ServletU程池用的是阻塞IO的模式,使用apr之后Q线E池变成? NIO的非d模式Q而且q种NIOq是使用了操作系l的本地代码Q看tomcat文档上面的说法是Q极大提升web处理能力Q不再需要专门放一个web server处理静态页面了?<br /> 我自q观的感受是,不用apr之前Q你配置多少个等待线E,tomcat׃启动多少个线E挂L待,使用apr以后Q不你配置多少Q就只有几个NIO调度的线E,q一点你可以通过kill -3 PIDQ然后察看log得知?</font></p> <p><font size="3">假设不用aprQ可能端口的U程调度能力比较差,所以通过iptablesq行端口转发Q让两个端口d担一个端口的U程调度Q就有可能减线E调度的q发Q从而提高处理能力,减少资源消耗?/font></p> </div> <img src ="http://m.tkk7.com/anchor110/aggbug/330166.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/anchor110/" target="_blank">一败涂?/a> 2010-08-29 14:15 <a href="http://m.tkk7.com/anchor110/articles/330166.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JConsoleq程监控Tomcat服务?/title><link>http://m.tkk7.com/anchor110/articles/330061.html</link><dc:creator>一败涂?/dc:creator><author>一败涂?/author><pubDate>Fri, 27 Aug 2010 06:30:00 GMT</pubDate><guid>http://m.tkk7.com/anchor110/articles/330061.html</guid><wfw:comment>http://m.tkk7.com/anchor110/comments/330061.html</wfw:comment><comments>http://m.tkk7.com/anchor110/articles/330061.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/anchor110/comments/commentRss/330061.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/anchor110/services/trackbacks/330061.html</trackback:ping><description><![CDATA[    Z解决内存溢出的问题,会用C些监视内存的工具Qjconsoleq个工具是jdk5.0自带的工P<br /> 所以如果你的jdk?.0那么׃用去安装?br />     q个工具可以查看pȝ?堆,非堆Q线E,{等的一些整体的情况Q从而可以判断出pȝ的一个大概的性能情况?<br />     <br />     那么配置如下Q如果你是用tomcatQ在catalina.bat来设|set JAVA_OPTS=%JAVA_OPTS%  -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=7080 -Dcom.sun.management.jmxremote <br /> <br />     特别注意Q?Dcom.sun.management.jmxremote.port=7080Q这个端Ҏjconsole专用的,不要和你的系l的端点冲突。再启动你的应用?<br />     okQ配|好了后Q就直接qdos命o,输入jconsoleQ它会弹Z个界面,你直接点“q程q接”的选项卡,L填你要监控的ip地址名,端口?你配?Dcom.sun.management.jmxremote.port 的端口一致就可以了,再连接就可以了。如果连接成功就会进入监控你的系l?br /> <br /> <br />     常见问题Q在linux下,q行hostname -iQ如果名U显CZؓ127.0.0.1Q则jconsole连接不上远E服务器。解军_法如下:<br />     vi /etc/hosts<br />     增加192.168.0.4    anchor110<br /> <br />     然后在jconsole的连接选项中,填写192.168.0.4:[port]卛_?br /> <img src ="http://m.tkk7.com/anchor110/aggbug/330061.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/anchor110/" target="_blank">一败涂?/a> 2010-08-27 14:30 <a href="http://m.tkk7.com/anchor110/articles/330061.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TOMCAT监控工具Probe的正安装与使用Q注Q互联网资料整理而成Q?/title><link>http://m.tkk7.com/anchor110/articles/330055.html</link><dc:creator>一败涂?/dc:creator><author>一败涂?/author><pubDate>Fri, 27 Aug 2010 06:04:00 GMT</pubDate><guid>http://m.tkk7.com/anchor110/articles/330055.html</guid><wfw:comment>http://m.tkk7.com/anchor110/comments/330055.html</wfw:comment><comments>http://m.tkk7.com/anchor110/articles/330055.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/anchor110/comments/commentRss/330055.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/anchor110/services/trackbacks/330055.html</trackback:ping><description><![CDATA[<br /> <div>LambdaProbeQ专门ؓTOMCAT监控而设计,下面讲解其用法: <br /> <br /> 1 下蝲Q? <br /> http://www.lambdaprobe.org/downloads/1.7/probe.1.7b.zip <br /> 2 解压~后Q把probe.war攑ֈTOMCAT的webapps?br /> 3 讄用户如下Q在tomcat_user.xml?<br />    vi /usr/local/tomcat/conf//tomcat-users.xml <br /> <br /> <?xml version='1.0' encoding='utf-8'?> <br /> <tomcat-users> <br />         <role rolename="manager"/><br />         <user username="tomcat" password="tomcat" roles="manager"/><br /> </tomcat-users> <br /> <br /> 4 讄环境变量Q获取服务器状?<br /> # vi /etc/profile <br /> JAVA_OPTS=-Dcom.sun.management.jmxremote <br /> export JAVA_OPTS <br /> <br /> 5 重启动服务器 <br /> 6 输入http://localhost/probe/,输入用户名和密码 <br /> 7 卛_q入Q这里比较精彩的是对内存的监视,动态显CZJVM的内存图?br /> <br /> 注:在WINDOWS环境下,上述W四步设|环境变量后Q查?#8220;内存信息”Q会昄正常囄?br /> 但在LINUX下,即讄了环境变量,也不行,会报错: <p><span>This page requires Java5 with enabled JMX Agent. To enable the JXM Agent please add "-Dcom.sun.management.jmxremote" to java command line or $JAVA_OPTS environment variable.</span></p> <p><span>解决办法如下Q?/span></p> <br /> <p>Vi /usr/local/tomcat/bin/catalina.sh </p> <p>CATALINA_HOME=/usr/local/tomcat</p> <p>JAVA_OPTS="-Xms512m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=128m <strong>-Dcom.sun.management.jmxremote</strong>"</p> <p><br /> </p> <p>再重启服务器卛_?br /> </p> <br /> <br /> </div> <img src ="http://m.tkk7.com/anchor110/aggbug/330055.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/anchor110/" target="_blank">一败涂?/a> 2010-08-27 14:04 <a href="http://m.tkk7.com/anchor110/articles/330055.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://ddm88888.com" target="_blank">ҹ˾Ʒɫ</a>| <a href="http://miya863.com" target="_blank">ۺϾþþƷ</a>| <a href="http://hlyidc.com" target="_blank">žŮվ</a>| <a href="http://gzqhit.com" target="_blank">Ʒϵ߹ۿ</a>| <a href="http://okgou58.com" target="_blank">Ƶ߹ۿ</a>| <a href="http://05942688.com" target="_blank">޾Ʒ2021</a>| <a href="http://wcnmgb.com" target="_blank">޴߶ר</a>| <a href="http://lshwork.com" target="_blank">޳AVƬWWW</a>| <a href="http://taojin5.com" target="_blank">ɫַȫ</a>| <a href="http://52xingai.com" target="_blank">վþþ</a>| <a href="http://lawelites.com" target="_blank">Ʒþþþþù</a>| <a href="http://mordernshasha.com" target="_blank">һƬѿ</a>| <a href="http://100357.com" target="_blank">ɫƬ߹ۿ</a>| <a href="http://7t53.com" target="_blank">69Ƶѹۿ</a>| <a href="http://czxgjt.com" target="_blank">Ƶ㶮</a>| <a href="http://988938.com" target="_blank">ëƬѹۿƵ</a>| <a href="http://www321fafa.com" target="_blank">ݹѾþþ</a>| <a href="http://popodino.com" target="_blank">AV˾þԭ</a>| <a href="http://tqdrhj.com" target="_blank">þþƷ5555</a>| <a href="http://01shanzhai.com" target="_blank">޳aƬ߹ۿ</a>| <a href="http://czxgjt.com" target="_blank">޹һaëƬ</a>| <a href="http://bisi666.com" target="_blank">޿һ24鶹</a>| <a href="http://zengzeyu.com" target="_blank">þþþþ޾ƷӰԺ</a>| <a href="http://jinguwj.com" target="_blank">˳վ߹ۿ</a>| <a href="http://yulongfilm.com" target="_blank">ƷؼһëƬѹۿ</a>| <a href="http://51708695.com" target="_blank">ƷѾþþþþþþ</a>| <a href="http://456jjj.com" target="_blank">޷츾</a>| <a href="http://988938.com" target="_blank">99þֻƷ</a>| <a href="http://600c20.com" target="_blank">Ƭѿ</a>| <a href="http://7uj3.com" target="_blank">ɫվWWWþþž</a>| <a href="http://douhuowang.com" target="_blank">þþƷƷɫ</a>| <a href="http://guhey.com" target="_blank">޾Ʒ߹ۿ</a>| <a href="http://wwwxue1888.com" target="_blank">ŷһղ</a>| <a href="http://ztxfkj.com" target="_blank">ɫwwwƵ߹ۿ</a>| <a href="http://ac839.com" target="_blank">Ұ߹ۿƵ </a>| <a href="http://gjwlgzs.com" target="_blank">޹Ʒþ</a>| <a href="http://maomaots.com" target="_blank">ձ޾ƷɫӰԺ </a>| <a href="http://gzmsijz.com" target="_blank">AVר޾Ʒ</a>| <a href="http://yy468.com" target="_blank">޹ۺϾƷ</a>| <a href="http://gxnnzk.com" target="_blank">ѿƷþ</a>| <a href="http://xingqiu1.com" target="_blank">߿Ƭ˳Ƶ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>