﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Java之旅-文章分类-Tomcat</title><link>http://www.blogjava.net/hoocoral/category/18351.html</link><description>Record my Java-learning process.</description><language>zh-cn</language><lastBuildDate>Mon, 14 Apr 2008 11:21:09 GMT</lastBuildDate><pubDate>Mon, 14 Apr 2008 11:21:09 GMT</pubDate><ttl>60</ttl><item><title>数据库连接池自动重新连接问题(转)</title><link>http://www.blogjava.net/hoocoral/articles/192684.html</link><dc:creator>胡昆荣</dc:creator><author>胡昆荣</author><pubDate>Mon, 14 Apr 2008 02:42:00 GMT</pubDate><guid>http://www.blogjava.net/hoocoral/articles/192684.html</guid><wfw:comment>http://www.blogjava.net/hoocoral/comments/192684.html</wfw:comment><comments>http://www.blogjava.net/hoocoral/articles/192684.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hoocoral/comments/commentRss/192684.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hoocoral/services/trackbacks/192684.html</trackback:ping><description><![CDATA[转自：http://www.newwhy.com/archiver/tid-1096.html<br />
<br />
在以往的开发中，常常遇到tomcat连接池断掉后(比如网络断线)，无法自动重新连接，导致数据库连接始终无效，今天发现此问题的一个解决方案。<br />
首先，在连接池的配置中(XXX.XML)，DB的url后加上参数，如sqlserver的加;autoReconnect=true，这是自动重连的基础保证。<br />
其次，一定要在tomcat中抛出连接异常，这一点很重要。一般我们的连接都会用class封装起来，一场也会在class中捕获，并处理掉，这样会导致连接无法自动恢复。估计tomcat所带的dbcp连接池的重连机制是捕获tomcat中抛出的连接异常再重新连接，所以，连接异常一定要被抛出而不是自行处理掉。否则连接池会无法重新连接。<br />
所以，实现tomcat自带连接池dbcp自动重连的解决方案是，1。加上autoReconnect=true的参数&nbsp;&nbsp;2。连接异常要被抛出
<img src ="http://www.blogjava.net/hoocoral/aggbug/192684.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hoocoral/" target="_blank">胡昆荣</a> 2008-04-14 10:42 <a href="http://www.blogjava.net/hoocoral/articles/192684.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat中access denied错误的解决方法</title><link>http://www.blogjava.net/hoocoral/articles/130720.html</link><dc:creator>胡昆荣</dc:creator><author>胡昆荣</author><pubDate>Tue, 17 Jul 2007 01:35:00 GMT</pubDate><guid>http://www.blogjava.net/hoocoral/articles/130720.html</guid><wfw:comment>http://www.blogjava.net/hoocoral/comments/130720.html</wfw:comment><comments>http://www.blogjava.net/hoocoral/articles/130720.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hoocoral/comments/commentRss/130720.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hoocoral/services/trackbacks/130720.html</trackback:ping><description><![CDATA[<p>在Eclipse中构建J2EE项目时，Tomcat出现access denied错误，不能正常启动Tomcat：<br><br>STACKTRACE:</p>
<p>java.net.SocketException: java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:3306 connect,resolve)<br>at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)<br>at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:276)<br>at com.mysql.jdbc.Connection.createNewIO(Connection.java:2641)<br>at com.mysql.jdbc.Connection.<init>(Connection.java:1531)<br>at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)<br>at java.sql.DriverManager.getConnection(Unknown Source)<br>at java.sql.DriverManager.getConnection(Unknown Source)<br>at com.s.util.logic.DBconn.initiconn(DBconn.java:68)<br>at com.s.util.logic.DBconn.<init>(DBconn.java:50)<br>at com.s.util.logic.SimpDB.<init>(SimpDB.java:20)<br>at com.s.p.ui.LoginServlet.doGet(LoginServlet.java:40)<br>at com.s.p.ui.LoginServlet.doPost(LoginServlet.java:153)<br>at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)<br>at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)<br>at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br>at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br>at java.lang.reflect.Method.invoke(Unknown Source)<br>at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:239)<br>at java.security.AccessController.doPrivileged(Native Method)<br>at javax.security.auth.Subject.doAsPrivileged(Unknown Source)<br>at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:268)<br>at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:157)<br>at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)<br>at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:50)<br>at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:140)<br>at java.security.AccessController.doPrivileged(Native Method)<br>at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:136)<br>at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)<br>at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)<br>at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)<br>at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)<br>at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)<br>at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)<br>at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)<br>at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)<br>at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)<br>at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)<br>at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)<br>at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)<br>at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)<br>at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)<br>at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)<br>at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)<br>at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)<br>at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)<br>at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)<br>at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)<br>at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)<br>at java.lang.Thread.run(Unknown Source<br><br>解决方法：<br>在Eclipse配置里面，windows--&gt;Preferences--&gt;Tomcat--&gt;advanced，把"Launch tomcat using Security Manager"选项的勾去掉，重新启动Tomcat。<br>可以解决问题。</p>
<img src ="http://www.blogjava.net/hoocoral/aggbug/130720.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hoocoral/" target="_blank">胡昆荣</a> 2007-07-17 09:35 <a href="http://www.blogjava.net/hoocoral/articles/130720.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>