刚才正在运行的系统突然不能访问,检查 tomcat 日志发现如下信息:
2012-8-10 9:09:54 org.apache.tomcat.util.net.JIoEndpoint createWorkerThread
信息:Maximum number of threads (200) created for connector with address null and port 8888
问题明显是 tomcat 线程数量达到默认最大值 200;

解决方案:
1. 修改 tomcat 的 server.xml 配置文件,增加 maxThreads 和 acceptCount 配置。配置这两个参数,主要为了明确设置 tomcat 的最大线程数和最大排队数,防止出现 tomcat 的莫名宕机;
修改后配置如下:
<Connector port="8888" protocol="HTTP/1.1" enableLookups="false" redirectPort="8443" maxThreads="200" minSpareThreads="25" maxSpareThreads="100" acceptCount="120" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />
2. 修改程序里的数据库连接参数,增加 maxActivemaxldle、maxWait 配置连接池的最大连接数、最大空闲时间、最大建立连接等待时间;