JAVA编程:办理tomcat频仍逝世失落的成绩
在1995年5月23日以“Java”的名称正式发布了。办理|成绩某天在服务器上的网页打不开了,频仍报以下毛病。2007-3-181:08:26org.apache.tomcat.util.threads.ThreadPoollogFull
严峻:Allthreads(150)arecurrentlybusy,waiting.IncreasemaxThreads(150)orchecktheservletstatus
在网上找了些回覆,以下是我以为准确的回覆:
1.我想你的部分资本没有开释,积存卡逝世的
2.毗连池成绩
3.应当是服务器端呼应request的线程的处置工夫太长招致的
剖析:
事先利用网站的人数只要2团体,不成能答到到了并发线程150的上线。以是应当不是数据库的成绩。
经由过程对堕落的提醒判别,应当是毗连池利用分歧理酿成的,大概基本没设置毗连池。和数据库毗连的部分是利用Spring的数据源JDBC连的,以下:
<beans>
<beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!--driverforMySQL-->
<propertyname="driverClassName"><value>org.gjt.mm.mysql.Driver</value></property>
<propertyname="url"><value>jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF8</value></property>
<propertyname="username"><value>test</value></property>
<propertyname="password"><value>test</value></property>
</beans>
成绩应当呈现在Spring的DriverManagerDataSource上,它卖力办理这些毗连的。
下边是对DriverManagerDataSource的注释
DriverManagerDataSourceinSpringFramework
javax.sqlInterfaceDataSource
ImplementationofSmartDataSourcethatconfiguresaplainoldJDBCDrivervia
beanproperties,andreturnsanewConnectioneverytime.
UsefulfortestorstandaloneenvironmentsoutsideofaJ2EEcontainer,either
asaDataSourcebeaninarespectiveApplicationContext,orinconjunctionwith
asimpleJNDIenvironment.Pool-assumingConnection.close()callswillsimply
closetheconnection,soanyDataSource-awarepersistencecodeshouldwork.
InaJ2EEcontainer,itisrecommendedtouseaJNDIDataSourceprovidedbythe
container.SuchaDataSourcecanbeexportedasaDataSourcebeaninan
ApplicationContextviaJndiObjectFactoryBean,forseamlessswitchingtoandfrom
alocalDataSourcebeanlikethisclass.
Ifyouneeda"real"connectionpooloutsideofaJ2EEcontainer,consider
ApachesJakartaCommonsDBCP.ItsBasicDataSourceisafullconnectionpool
bean,supportingthesamebasicpropertiesasthisclassplusspecificsettings.
Itcanbeusedasareplacementforaninstanceofthisclassjustbychanging
theclassnameofthebeandefinitionto
"org.apache.commons.dbcp.BasicDataSource".
-----------------------------------------------
ManyJakartaprojectssupportinteractionwitharelationaldatabase.Creatinga
newconnectionforeachusercanbetimeconsuming(oftenrequiringmultiple
secondsofclocktime),inordertoperformadatabasetransactionthatmight
takemilliseconds.Openingaconnectionperusercanbeunfeasibleina
publicly-hostedInternetapplicationwherethenumberofsimultaneoususerscan
beverylarge.Accordingly,developersoftenwishtosharea"pool"ofopen
connectionsbetweenalloftheapplicationscurrentusers.Thenumberofusers
actuallyperformingarequestatanygiventimeisusuallyaverysmall
percentageofthetotalnumberofactiveusers,andduringrequestprocessingis
theonlytimethatadatabaseconnectionisrequired.Theapplicationitself
logsintotheDBMS,andhandlesanyuseraccountissuesinternally.
ThereareseveralDatabaseConnectionPoolsalreadyavailable,bothwithin
Jakartaproductsandelsewhere.ThisCommonspackageprovidesanopportunityto
coordinatetheeffortsrequiredtocreateandmaintainanefficient,
feature-richpackageundertheASFlicense.
Thecommons-dbcppackagereliesoncodeinthecommons-poolpackagetoprovide
theunderlyingobjectpoolmechanismsthatitutilizes.
Applicationscanusethecommons-dbcpcomponentdirectlyorthroughtheexisting
interfaceoftheircontainer/supportingframework.ForexampletheTomcat
servletcontainerpresentsaDBCPDataSourceasaJNDIDatasource.James(Java
ApacheMailEnterpriseServer)hasintegratedDBCPintotheAvalonframework.A
Avalon-styledatasourceiscreatedbywrappingtheDBCPimplementation.The
poolinglogicofDBCPandtheconfigurationfoundinAvalonsexcaliburcodeis
whatwasneededtocreateanintegratedreliableDataSource.
看完懂得释,现实上是由于DriverManagerDataSource创建毗连是只需有毗连就新建一个connection,基本没有毗连池的感化。改成以下开源的毗连池会好点。
<beanid="myDataSource"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">
<propertyname="driverClassName">
<value>org.hsqldb.jdbcDriver</value>
</property>
<propertyname="url">
<value>jdbc:hsqldb:hsql://localhost:9001</value>
</property>
<propertyname="username">
<value>sa</value>
</property>
<propertyname="password">
<value></value>
</property>
</bean>
测试经由过程,成绩打消,假如没有搜刮引擎找谜底不会这么快办理成绩。
没有那个大公司会傻了吧唧用.net开发大型项目,开发了,那等于自己一半的生命线被微软握着呢。而.net不行,限制在window系统,又是捆绑,鄙视微软之! 是一种将安全性(Security)列为第一优先考虑的语言 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧! 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 Java 编程语言的风格十分接近C、C++语言。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
页:
[1]