大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> JSP专区 -> JSP中tomcat的SQL Server2000数据库连接池的配置

JSP中tomcat的SQL Server2000数据库连接池的配置

时间: 2021-07-31 作者:daque

jsp中tomcat的sql server2000数据库贯穿池的摆设情况:1. 数据库:microsoft sql server 20002. 数据库启动步调:net.sourceforge.jtds.jdbc.driverjndi(java naming and directory interface)概括:tomcat4(5)供给了一个与java enterprise edition运用效劳相兼容的jndi--initialcontext实行范例。它的初始数据树立在$catalina_home/conf/server.xml文献里,并大概在网页运用情况刻画(/web-inf/web.xml)里被下列元素援用:1) <env-entry>--情况进口,树立运用步调怎样操纵。2) <resource-ref>--资源参数,普遍是数据库启动步调、javamail session、自设置类工场等。3) <resource-env-ref>--在servlet 2.4里用来简化树立不需认证消息的资源资源如情况参数、resource-ref变量。initialcontext在网页运用步调初始化时被树立,用来扶助网页运用步调组件。一切的进口和资源都放在jndi定名空间里的java:comp/env段里。点击下列网址以获得更多消息:1) java定名和目次接口(java naming and directory interface)2) j2ee平台证明(j2ee platform specification)树立jndi资源树立jndi资源要在$catalina_home/conf/server.xml文献里运用下列标记符:1) <environment>--树立域个可变的jndi initialcontext进口的名字和值(同上头说的<env-entry>等价)。2) <resource>--树立运用步调可用的资源的名字和典型(同上头说的<resource-ref>等价)。3) <resourceparams>--树立java资源类工场的称呼或将用的javabean属性。4) <resourcelink>--给全部jndi情况(jndi context)增添一个链接。上述那些标记符必需放在<context>和</context>之间(对准特意的网页运用步调)或<defaultcontext>和</defaultcontext>之间。其余,设在网页运用情况刻画(web application descriptor)(/web-inf/web.xml)里的名字和值也在初始情况(initial context)里被树立,当被<environemt>元素值承诺时将被重设初始值。全部变量能在<server>子元素的<globalnamingresources>里树立。数据库贯穿池概括:数据库贯穿是一种要害的有限的高贵的资源,这一点在多用户的网页运用步调中展现得尤为超过。对数据库贯穿的处置能明显感化到所有运用步调的舒卷性和兴盛性,感化到步调的本能目标。数据库贯穿池恰是对准这个题目提出来的。数据库贯穿池控制调配、处置和开释数据库贯穿,它承诺运用步调反复运用一个现有的数据库贯穿,而再不是从新创造一个;开释清闲功夫胜过最大清闲功夫的数据库贯穿来制止由于没有开释数据库贯穿而惹起的数据库贯穿脱漏。这项本领能鲜明普及对数据库操纵的本能。数据库贯穿池在初始化时将创造确定数目的数据库贯穿放到贯穿池中,那些数据库贯穿的数目是由最少量据库贯穿数来设定的。不管那些数据库贯穿能否被运用,贯穿池都将从来保护起码具有这么多的贯穿数目。贯穿池的最大数据库贯穿数目控制了这个贯穿池能占领的最大贯穿数,当运用步调向贯穿池乞求的贯穿数胜过最大贯穿数目时,那些乞求将被介入到等候部队中。数据库贯穿池的最小贯穿数和最大贯穿数的树立要商量到下列几个成分:1) 最小贯穿数是贯穿池从来维持的数据库贯穿,以是即使运用步调对数据库贯穿的运用量不大,将会有洪量的数据库贯穿资源被滥用;2) 最大贯穿数是贯穿池能请求的最大贯穿数,即使数据库贯穿乞求胜过此数,反面的数据库贯穿乞求将被介入到等候部队中,这会感化之后的数据库操纵。3) 即使最小贯穿数与最大贯穿数出入太大,那么最先的贯穿乞求将会收获,之后胜过最小贯穿数目的贯穿乞求等价于创造一个新的数据库贯穿。然而,那些大于最小贯穿数的数据库贯穿在运用完不会赶快被开释,它将被放到贯穿池平淡待反复运用或是清闲超时后被开释。摆设tomcat数据库贯穿池的基础:1. 必需装有java运转情况;2. 必需有sql server2000数据库效劳器(不妨不在当地);3. 必需有jtds.jar,并将它放在$catalina_home/common/lib目次下(只能是这边)。运用它是由于microsoft公司的java sql server启动步调不扶助二次查问,可到网上搜到。暂时运用的是jtds-0.6.jar。在$catalina_home/conf/server.xml里树立数据库贯穿池:底下是摆设的代码,必需放在<host>和</host>之间。<context path="/quality" docbase="quality" debug="0" reloadable="true" crosscontext="true"><logger classname="org.apache.catalina.logger.filelogger" prefix="localhost_quality_log." suffix=".txt" timestamp="true"/><resource name="jdbc/connectdb" auth="container" type="javax.sql.datasource"/><resourceparams name="jdbc/connectdb"> <parameter>  <name>maxactive</name>  <!-- maximum number of db connections in pool.set to 0 for no limit. -->  <value>100</value> </parameter> <parameter>  <name>maxidle</name>  <!-- maximum number of idle db connections to retain in pool.set to 0 for no limit. -->  <value>30</value> </parameter> <parameter>  <name>maxwait</name>  <!-- maximum time to wait for a db connection to become available in ms.an exception is thrown if this timeout is exceeded.set to -1 to wait indefinitely. -->  <value>10000</value> </parameter> <parameter>  <name>removeabandoned</name>  <!-- abandoned db connections are removed and recycled -->  <value>true</value> </parameter> <parameter>  <name>removeabandonedtimeout</name>  <!-- use the removeabandonedtimeout parameter to set the number of seconds a db connection has been idle before it is considered abandoned.  -->  <value>60</value> </parameter> <parameter>  <name>logabandoned</name>  <!-- log a stack trace of the code which abandoned -->  <value>false</value> </parameter> <parameter>  <name>factory</name>  <!-dbcp basic datasource factory -->  <value>org.apache.commons.dbcp.basicdatasourcefactory</value> </parameter> <parameter>  <name>username</name>  <!-- database user name -->  <value>iorishinier</value> </parameter> <parameter>  <name>password</name>  <!-- user password -->  <value>mypasswd</value> </parameter> <parameter>  <name>driverclassname</name>  <!-- database driver class name -->  <value>net.sourceforge.jtds.jdbc.driver</value> </parameter> <parameter>  <name>url</name>  <!-- database address -->  <value>jdbc:jtds:sqlserver://127.127.127.127:1433/northwind</value> </parameter></resourceparams></context>底下是少许参数的证明:<context path="/quality" docbase="quality" debug="0" reloadable="true" crosscontext="true">个中:1) path  指定路途,这边设定的是$catalina_home/webapps下的quality目次;2) docbase 文献根目次。3) reloader  当网页被革新时能否从新编写翻译。4) maxactive 贯穿池的最大数据库贯穿数。设为0表白无穷制。5) maxidle  数据库贯穿的最大清闲功夫。胜过此清闲功夫,数据库贯穿将被标志为不行用,而后被开释。设为0表白无穷制。6) maxwait 最大创造贯穿等候功夫。即使胜过此功夫将接到特殊。设为-1表白无穷制。7) removeabandoned 接收被唾弃的(普遍是忘了开释的)数据库贯穿到贯穿池中。8) removeabandonedtimeout 数据库贯穿过多长功夫不必将被视为被唾弃而收回贯穿池中。9) logabandoned 将被唾弃的数据库贯穿的接收记入日记。10) driverclassname jdbc启动步调。11) url   数据库贯穿字符串在$catalina_home/webapps/quality/web-inf/web.xml里树立被援用的资源:底下是摆设代码,必需放在<web-app>和</web-app>里。<!-- database config start --><resource-ref><description>connectdb test</description><res-ref-name>jdbc/connectdb</res-ref-name><res-type>javax.sql.datasource</res-type><res-auth>container</res-auth></resource-ref><!-- database config end -->底下是一下参数的需要证明:1) description  对被援用的资源的刻画。2) res-ref-name  资源称呼。见上头的<resourceparams name="jdbc/connectdb">3) res-type  资源典型。见上头的<resource name="jdbc/connectdb" auth="container" type="javax.sql.datasource"/>在jsp中运用资源:这是在$catalina_home/webapps/quality下的某级子目次里的jsp网页文献局部代码:<%@ page contenttype="text/html;charset=gbk"%><%@ page errorpage="error.jsp"%><%@ page import="javax.naming.*"%><%@ page import="javax.sql.*"%><%@ page import="java.sql.*"%><html> <head> </head> <body>  <%

   ………………   ………………

   // 数据库操纵   context ctx=null;   connection cnn=null;   statement stmt=null;   resultset rs=null;   try   {    ctx=new initialcontext();    if(ctx==null)     throw new exception("没有配合的情况");    datasource ds=(datasource)ctx.lookup("java:comp/env/jdbc/connectdb");    if(ds==null)     throw new exception("没有配合数据库");        cnn=ds.getconnection();    stmt=cnn.createstatement(resultset.type_scroll_sensitive,resultset.concur_read_only);    rs=stmt.executequery("select * from table1");

    ………………    ………………

   }   finally   {    if(rs!=null)     rs.close();    if(stmt!=null)     stmt.close();    if(cnn!=null)     cnn.close();    if(ctx!=null)     ctx.close();   }    %> </body></html>代码证明:datasource ds=(datasource)ctx.lookup("java:comp/env/jdbc/connectdb");上头这句运用了方才设的资源。资源运用完要开释,更加是context资源,见try-catch-finally局部的finally代码段,这是一种好的风气。资源开释时即使开释了上司资源,部下资源将先被开释。如:开释了ctx,那么资源开释程序将是rs,stmt,cnn,ctx。换句话说,即使开释了ctx,那么rs,stmt和cnn都将不行用了。这边的开释资源不过将数据库贯穿归来贯穿池中,并不是把资源真实开释掉,见数据库贯穿池概括。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.