翻译原文.docx
- 文档编号:26398820
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:38
- 大小:95.02KB
翻译原文.docx
《翻译原文.docx》由会员分享,可在线阅读,更多相关《翻译原文.docx(38页珍藏版)》请在冰豆网上搜索。
翻译原文
翻译原文
Inthe$CATALINA_HOME/conf/server.xmlconfigurationfile,withinthescopeofthelocalhost
type=”javax.sql.DataSource”/> mysql: //localhost/wroxtomcat TheurlparameterisoftennameddriverNameinolddocumentationforlegacyreasons(olderversionname),andcanstillbespecifiedusingtheoldname.Forallnewwork,useurl. ThisconfigurationwillworkfinewithTomcat5or4,astheybothuseDBCPconnectionpooling. Twooptionalparameters(removeAbandonedandremoveAbandonedTimout)helpwiththerecyclingofdatabaseconnections,evenforthosethatmaynotbereleasedproperlybecauseoffaultydevelopercoding. Whenthenumberofavailableconnectionsinthepoolrunslow,theDBCPpoolmanagementcodewillrecycleconnectionsbasedonanelapsedidletimeout.Forexample,thefollowingadditionalparameters willcausetheDBCPpoolmanagementcodetorecycleallJDBCconnectionsthatareidledformorethan15minutes: IfyouarerunninganolderTomcatreleasethatusestheTyrex(licensed)data-sourcefactorybydefault(Tomcat4.0.4orlaterupto4.1.3),youwillneedtoaddthefollowingparametertothe ... Inaddition,becauseTomcat5includestherequiredJakartaCommonslibrariesbydefault,youwillfindtheDBCPanddependentlibrariesinthe$CATALINA_HOME/common/libdirectory.Thesebinariesincludethefollowing: ❑commons-dbcp-1.1.jar ❑commons-collection.jar ❑commons-pool-1.1.jar Tomcat4alsoalreadyusestheDBCPlibrarycodebydefaultsincethereleaseofTomcat4.1.3.Ifyouareusingversionspriorto4.1.3,youwillneedtodownloadtheaforementionedJARfilesfromtheJakarta CommonssiteatthefollowingURLandcopythemintothedirectorymanually: http: //jakarta.apache.org/commons/index.html Step2—Addthe InsteadofcreatinganewWebapplication,aneasywaytoaddatestJSPisbyaddingittoanexistingexampleapplicationfromTomcat.Todothis,changedirectoryto$CATALINA_HOME/webapps/jsp-examples/WEB-INFandedittheweb.xmlfile(thisisthedeploymentdescriptorofthejsp-examplesWebapplication).Addthefollowinghighlightedcodetoweb.xml(notethatitshouldbeaddedimmediatelyafterthelast ... This Step3—UseJNDItolookupadatasource Finally,itistimetowritethecodethatwilllookupthedatasourceandstartqueryingthedatabase.Thefollowing JSP,JDBCTest.jsp,willdoexactlythis.Putitintoa$CATALINA_HOME/webapps/jsp-examples/ wroxjdbcdirectory(createthisdirectoryyourself).PayspecialattentiontothewayJNDIisusedtoobtainthedatasource(codehighlighted).
<%@pageerrorPage=”errorpg.jsp”
import=”java.sql.*,
javax.sql.*,
java.io.*,
javax.naming.InitialContext,
javax.naming.Context”%>
JDBCJNDIResourceTest
<%
InitialContextinitCtx=newInitialContext();
DataSourceds=(DataSource)
initCtx.lookup(“java:
comp/env/jdbc/WroxTC5”);
Connectionconn=ds.getConnection();
Statementstmt=conn.createStatement();
ResultSetrset=stmt.executeQuery(“select*fromemployee;”);
%>
<%
while(rset.next()){
%>
(1)%>
(2)%>
<%}
rset.close();
stmt.close();
conn.close();
initCtx.close();
%>
TheJNDIcodehighlightedherefirstobtainstheInitialContextfromTomcat.ItthenusesthiscontexttolookuptheJNDIresourcethatwehaveconfigured.NotethatallTomcatJNDIresourcesarefoundrelativetojava:
comp/env/.OncethedatasourceisobtainedthroughJNDI,itisusedtocreateaconnection(actuallypooledthroughDBCP).TheJSPthenperformsaSELECT*ontheemployeetable,andprintsoutalltherowsthatareretrieved.Finally,itcreatesanHTMLtablecontainingallthetable
rows.
AnyexceptioncaughtduringexecutionofthisJSPisredirectedtoaverysimpleerror-handlingpagecalledtheerrorpg.jspfile.ThisfileisspecifiedviatheerrorPageattributeofthe@pagedirective.
Hereisthecontentoferrorpg.jsp:
<%@pageisErrorPage=”true”%>
Anerrorhasoccurred
<%=exception.getMessage()%>
Thispagewillsimplydisplayamessageindicatingtheexceptioncaught.
TestingtheJNDIResourceConfiguration
Atthispoint,theJNDIresourcesareprepared,thedatabasetablesarepopulated,the
StartTomcat5andthen,fromabrowser,attempttoreachthefollowingURL:
http:
//localhost:
8080/jsp-examples/wroxjdbc/JDBCTest.jsp
ThiswillcompileandexecutetheJSPcode.Ifeverythingisconfiguredcorrectlyandworking,yourbrowserdisplayshouldbesimilartowhatisshowninFigure14-4.
TheWebpageshowninFigure14-4istheresultofaJDBCquerytotheMySQLdatabasedata,viaaconnectionobtainedfromtheJNDIlookup.
Youmayfaceexceptionssuchastheserverdenyingaccesstothedatasource,orsomeserverconnectionfailures,whicharecausedbytheMySQLuseraccountnothavingenoughprivileges.
AlternativeJDBCConfiguration
InTomcat5,theJNDIAPIisthepreferredandrecommendedwaytopassaJDBCdatasourcetoyour
Webapplications.Itiscurrentlythebest-supportedmechanismtoaccessJDBCdatasources.
However,inproduction,youmightencountersituationsinwhichyouhavetoconsideralternativemeansofJDBCdatasourceorconnectionaccess.
Typically,thereisnoreasonwhynewlydevelopeddatabaseaccesscodeslatedforWebapplicationdeploymentshouldnotusethepreferredJNDImechanismfordataaccess.However,becauseJDBC1wasawidelyusedandhighlyfunctionalAPIlongbeforethearrivalofJDBC2andJDBC3,alarge
legacybaseofworkingJDBCcoderemainsunawareofdatasourcesandconnectionpooling.
Theremaybecircumstancesinwhichyoumustintegratelegacycode,andthesourcecodeiseithernotavailableorcannotbechanged.Typically,legacyJDBC1codehasboththeJDBCdriverandtheURLofthedatabasehard-coded.Thankfully,JDBC2andJDBC3continuetomaintainbackwardcompatibilitywithJDBC1.Thismeansthatlegacycodecancontinuetorun,eveninTomcat5servers.
Anotherpotentialreasonfordeviatingfromtherecommendedconfigurationisthedeploymentofanalternativeconnectionpoolmanager.Thiscouldhappen,forexample,withasharedhostingISPusingacommercialproductthatdoesnotsupporttheJakartaCommonsDBCPpooling.Inaddition,developerssometimesdisagreeaboutthemeritsofonepoolmanagerimplementationoveranother.
AlternativeConnectionPoolManagers
UpuntilTomcat4.1.x,connection-poolingimplementationonTomcatservershasevolvedinaroll-yourownmanner.BecauseTomcatdidnotprovidedefaultsupport,anyonewhoneededthefunctionality(whichincludedanyonewhodeployedanylarge-ormedium-scaleWebapplication)hadtowritetheir
owncode,orfindathird-partysolutiontotheproblem.
Asaresult,itisquitelikelythatsomelegacyprojectsonTomcatareusinganalternativeconnectionpoolingmanager,withitsownrequirementsfordata-sourceconfiguration.
Thefollowingsectionexaminesonesuchpoolmanager,andshowshowitsconfigurationandaccessdifferfromthepreferredmethod.ThealternatepoolmanagerisPoolMan(PoolManager).ItisanopensourceprojectthatishostedonSourceForgeatthefollowingURL:
AboutPoolMan
SincewellbeforetheintroductionofDBCP,theopen-sourcePoolManhasprovidedflexibleobjectpoolingfordevelopers.PoolManprovidesagenericpoolingmechanismforJavalanguageobjects,withspecializedfocusonJDBCconnections.PoolMan2.0(thelatestversionavailableasofthiswriting)providesthefollowingfeatures:
❑Flexiblepoolconfigurationacrossserverinstance,Webapplication,orotherboundaries
❑Supportformultiplepoolsoperatingconcurrently
❑Timeout-basedautomaticconnectionrecovery(thisfeaturehasbeenrecentlyimplementedin
DBCP)
❑API-basedprogrammaticaccessto
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 翻译 原文