<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 22, comments - 8, trackbacks - 0, articles - 0
       :: 首頁 ::  :: 聯系 :: 聚合  :: 管理

    Tomcat4/5連接池的設置及簡單應用示例

    Posted on 2006-12-28 19:23 路易 閱讀(191) 評論(0)  編輯  收藏 所屬分類: 東方夜譚
    1.安裝JDK1.4和jakarta-tomcat-4.1.27.exe。

    ??路徑分別為?D:\jdk1.4?和?D:\Tomcat?4.1。
    ??安裝Tomcat?4時,會要求填寫web訪問端口、用戶名、密碼等信息。
    ??web訪問端口默認為8080,用戶名默認為admin,密碼自己填寫。

    ??啟動Tomcat4,訪問http://127.0.0.1:8080/?,就能看到Apache?Tomcat/4.1.27的歡迎訪問頁面,頁面上有一些相關介紹信息等。


    2.設置數據庫的驅動

    ??以Oracle的JDBC驅動設置為例:

    ??oracle8i的驅動在\oracle\ora81\jdbc\lib\目錄下。名字為classes12.zip。

    ??oracle9i的驅動在\oracle9i\jdbc\lib\目錄下,名字為ojdbc14.jar。

    ??將這個文件copy到D:\Tomcat?4.1\common\lib?下。

    ??注意,如果使用Oracle8i?的驅動,則需要在D:\Tomcat?4.1\common\lib?目錄下將classes12.zip更名為classes12.jar,因為Tomcat4不認識zip的后綴名。


    3.設置Web應用。

    ??新建一個文件夾,名字為mypool,位置為D:\mypool。這個D:\mypool路徑將是web應用的主目錄。

    ??打開D:\Tomcat?4.1\conf\server.xml?文件,找到如下行:
    ??
    ???<!--?Tomcat?Root?Context?-->
    ?????<!--
    ?????????<Context?path=""?docBase="ROOT"?debug="0"/>
    ?????-->
    ?
    ?
    ??在這下面,加入如下行:
    ??
    ??<Context?path="/mypool"?docBase="D:\mypool"?privileged="true"?reloadable="true"/>

    ??
    ??完成后,成為這個樣子:

    ????<!--?Tomcat?Root?Context?-->
    ?????<!--
    ??????????<Context?path=""?docBase="ROOT"?debug="0"/>
    ??????-->
    ????
    ?????<Context?path="/mypool"?docBase="D:\mypool"?privileged="true"?reloadable="true"/>

    ??保存D:\Tomcat?4.1\conf\server.xml?文件。

    ??配置完成后,重新啟動Tomcat,就可以這樣訪問這個web應用了:?http://127.0.0.1:8080/mypool/?。


    4.設置Tomcat的連接池數據源。

    ??訪問?http://127.0.0.1:8080/admin?頁面,用剛才安裝?Tomcat4?時填寫的用戶名和密碼登錄。

    ??登錄成功后,會出現Tomcat?的web應用管理界面(Tomcat?Web?Server?Administration?Tool)。

    ??然后在左邊的目錄樹點擊“Data?Sources”項,右邊可以看到JNDI配置的頁面。
    ?
    ??在右上角的下拉框中選擇“Create?New?Data?Source”,接下來填寫配置信息:
    ??
    ??JNDI?Name:?jdbc/myOrcl??
    ??Data?Source?URL:?jdbc:oracle:thin:@192.168.6.40:1521:dbserver
    ??JDBC?Driver?Class:?oracle.jdbc.driver.OracleDriver
    ??User?Name:?myname
    ??Password:?mypassword
    ??Max.?Active?Connections:??可用默認值?
    ??Max.?Idle?Connections:????可用默認值
    ??Max.?Wait?for?Connection:?可用默認值
    ??Validation?Query:?可不填寫。

    ??然后,按下“save”按鈕保存。
    ??再按下“Commit?Changes”按鈕將配置更改提交完成。

    ??此時如果看看?Tomcat4?的窗口,會發現在最下面有一行文字提示:??

    ???Debugging?--?changes?saved?to?conf/server.xml
    ?
    ??此時?D:\Tomcat?4.1\conf\server.xml?文件的配置已經更改保存完畢。


    ??如果此時打開D:\Tomcat?4.1\conf\server.xml?文件,會發現server.xml?文件的內容改變了很多。
    ??一些注釋文字都被去掉了。

    ??還會發現上面第三步配置Web應用的如下文字
    ????
    ???<!--?Tomcat?Root?Context?-->
    ?????<!--
    ??????????<Context?path=""?docBase="ROOT"?debug="0"/>
    ??????-->
    ????
    ?????<Context?path="/mypool"?docBase="D:\mypool"?privileged="true"?reloadable="true"/>

    ??則被自動修改成了這樣的:

    ?????<Context?className="org.apache.catalina.core.StandardContext"?cachingAllowed="true"?charsetMapperClass="org.apache.catalina.util.CharsetMapper"?cookies="true"?crossContext="false"?debug="0"?docBase="D:\mypool"?mapperClass="org.apache.catalina.core.StandardContextMapper"?path="/mypool"?privileged="true"?reloadable="true"?swallowOutput="false"?useNaming="true"?wrapperClass="org.apache.catalina.core.StandardWrapper">
    ????????</Context>

    ????
    ???好了,至此位置,對Oracle的應用連接池已經配置完畢。
    ???
    ???仔細對照server.xml?文件,會發現剛才所配置的連接池信息被放置在<GlobalNamingResources>標簽中,這意味著這個信息是可以被全局引用的,大致是如下的樣子:

    ????<GlobalNamingResources>
    ????<Environment?name="simpleValue"?override="true"?type="java.lang.Integer"?value="30"/>
    ????<Resource?name="jdbc/myOrcl"?scope="Shareable"?type="javax.sql.DataSource"/>
    ????<Resource?auth="Container"?description="User?database?that?can?be?updated?and?saved"?name="UserDatabase"?scope="Shareable"?type="org.apache.catalina.UserDatabase"/>
    ????
    ????<ResourceParams?name="jdbc/myOrcl">
    ??????<parameter>
    ????????<name>maxWait</name>
    ????????<value>5000</value>
    ??????</parameter>
    ??????<parameter>
    ????????<name>maxActive</name>
    ????????<value>200</value>
    ??????</parameter>
    ??????<parameter>
    ????????<name>password</name>
    ????????<value>mypassword</value>
    ??????</parameter>
    ??????<parameter>
    ????????<name>url</name>
    ????????<value>jdbc:oracle:thin:@192.168.6.40:1521:dbserver</value>
    ??????</parameter>
    ??????<parameter>
    ????????<name>driverClassName</name>
    ????????<value>oracle.jdbc.driver.OracleDriver</value>
    ??????</parameter>
    ??????<parameter>
    ????????<name>maxIdle</name>
    ????????<value>20</value>
    ??????</parameter>
    ??????<parameter>
    ????????<name>username</name>
    ????????<value>myname</value>
    ??????</parameter>
    ????</ResourceParams>
    ????<ResourceParams?name="UserDatabase">
    ??????<parameter>
    ????????<name>factory</name>
    ????????<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
    ??????</parameter>
    ??????<parameter>
    ????????<name>pathname</name>
    ????????<value>conf/tomcat-users.xml</value>
    ??????</parameter>
    ????</ResourceParams>
    ??</GlobalNamingResources>??


    5.設置web應用對連接池的引用。
    ??
    ??打開D:\Tomcat?4.1\conf\server.xml?文件,找到剛才配置的web應用文字,由于剛才server.xml?文件被自動修改過,并去掉了很多注釋內容,所以剛才配置的web應用

    ???<Context?path="/mypool"?docBase="D:\mypool"?privileged="true"?reloadable="true"/>

    ??被自動修改成了這樣的:

    ?????<Context?className="org.apache.catalina.core.StandardContext"?cachingAllowed="true"?charsetMapperClass="org.apache.catalina.util.CharsetMapper"?cookies="true"?crossContext="false"?debug="0"?docBase="D:\mypool"?mapperClass="org.apache.catalina.core.StandardContextMapper"?path="/mypool"?privileged="true"?reloadable="true"?swallowOutput="false"?useNaming="true"?wrapperClass="org.apache.catalina.core.StandardWrapper">
    ????????</Context>

    ??在<Context></Context>的描述中加上本web應用對全局連接池的引用說明,如下文字:

    ????<ResourceLink?global="jdbc/myOrcl"?name="jdbc/myOrcl"?type="javax.sql.DataSource"/>??

    ??設置完成后,web應用的描述大致如下面的樣子:

    ????<Context?className="org.apache.catalina.core.StandardContext"?cachingAllowed="true"?charsetMapperClass="org.apache.catalina.util.CharsetMapper"?cookies="true"?crossContext="false"?debug="0"?docBase="D:\mypool"?mapperClass="org.apache.catalina.core.StandardContextMapper"?path="/mypool"?privileged="true"?reloadable="true"?swallowOutput="false"?useNaming="true"?wrapperClass="org.apache.catalina.core.StandardWrapper">???
    ???
    ??????<ResourceLink?global="jdbc/myOrcl"?name="jdbc/myOrcl"?type="javax.sql.DataSource"/>??????
    ???
    ?</Context>


    ??保存D:\Tomcat?4.1\conf\server.xml?文件。

    ??注意,設置這個連接池的引用說明是非常重要的一步。
    ??一些朋友在Tomcat4中配置連接池失敗的原因大都歸咎與此。還有網上一些文章說這是一個Tomcat4的一個Bug。
    ??我用了整整兩天兩夜的時間才明白其中的奧秘。[:(]
    ??當時離瘋掉只查一點點。因為畢竟配置一個連接池是很簡單的。[:(]


    6.一般情況下,到此,連接池的設置就完成了。

    ??然后需要重新啟動Tomcat,這樣就可以使用連接池來工作了。

    ??但是,看到很多文章上說,還需要設置一下web.xml才能應用。我沒有設置web.xml,連接池也可以完全使用。

    ??現在說一下web.xml的配置方法。

    ??在D:\mypool中新建文件夾,命名為WEB-INF,注意是大寫的字母。

    ??然后在D:\mypool\WEB-INF\?下新建文件web.xml,其內容為:

    ??<web-app>
    ????<resource-ref>
    ????????<description>Oracle?DataSource?example</description>
    ????????<res-ref-name>jdbc/myOrcl</res-ref-name>
    ????????<res-type>javax.sql.DataSource</res-type>
    ????????<res-auth>Container</res-auth>
    ????</resource-ref>
    ??</web-app>

    ??保存D:\mypool\WEB-INF\web.xml?文件。


    7.一個簡單的應用示例。

    ??寫了一個簡單的JSP頁面,用連接池來訪問數據庫。

    內容如下:
    ---------------------
    <%@?page?contentType="text/html;charset=GBK"%>
    <%@?page?import="javax.naming.*"%>
    <%@?page?import="javax.sql.*"%>
    <%@?page?import="java.sql.*"%>
    <%
    ????try
    ????{???????????????????
    ???????Context?initCtx?=?new?InitialContext();
    ?
    ???????if(initCtx==null)
    ??????????throw?new?Exception("沒有匹配的環境");

    ???????Context?ctx?=?(Context)?initCtx.lookup("java:comp/env");
    ??????
    ???????//獲取連接池對象???????????????????
    ???????Object?obj?=?(Object)?ctx.lookup("jdbc/myOrcl");??
    ??????
    ??????//類型轉換
    ???????javax.sql.DataSource?ds?=?(javax.sql.DataSource)obj;
    ?????????
    ???????if(ds==null)
    ??????????throw?new?Exception("沒有匹配數據庫");??
    ????
    ???????Connection?conn?=?ds.getConnection();
    ??????
    ???????Statement?stmt?=?conn.createStatement();???????????????????
    ?????????????????????????????
    ???????String?strSql="select?*?from?grade";??//SQL,要保證grade數據表里面有記錄。
    ??????????????????????
    ???????ResultSet?rs=stmt.executeQuery(strSql);

    ???????if(rs.next())
    ?????????{?????????????????????
    ??????????out.println(rs.getString(1));??????????????????????????
    ??????????out.println(rs.getString(2));??????????????????????
    ?????????}
    ???????rs.close();??????//關閉ResultSet??
    ???????stmt.close();????//關閉Statement
    ???????conn.close();????//將連接放回到連接池
    ?????}

    ?????catch(Exception?ex)

    ?????{????
    ?????????ex.printStackTrace();
    ?????????throw?new?SQLException("cannot?get?Connection?pool."+ex);
    ?????}
    %>

    <hr>
    --------------------
    ??
    記住,用完后的數據庫連接要釋放。
    不然當打開的連接過多或惡意刷屏,連接池的連接數目會被用完。
    當連接池的連接數目用完后,再訪問jsp頁面時,會在頁面出現如下的錯誤信息,報告連接池的連接被耗盡:
    java.sql.SQLException:?DBCP?could?not?obtain?an?idle?db?connection,?pool?exhausted




    二、Win2k下Tomcat5?的連接池的配置

    安裝jakarta-tomcat-5.0.13.exe,假如Tomcat5的安裝目錄為?D:\Tomcat?5.0?。

    別忘了把oracle的驅動程序classes12.jar文件copy到目錄?D:\Tomcat?5.0\common\lib\?下。

    Tomcat5的連接池設置和Tomcat4?的差不多,僅說明一下不同點或需要特別注意的地方。


    1.?Tomcat5啟動后,訪問?http://127.0.0.1:8080/admin?頁面,當設置完Tomcat的連接池數據源后,打開D:\Tomcat?5.0\conf\server.xml?文件,會看到配置的連接池相關信息大致如下樣子:

    <GlobalNamingResources>
    ????<Environment?name="simpleValue"?type="java.lang.Integer"?value="30"/>
    ????<Resource?name="jdbc/myOrcl"?type="javax.sql.DataSource"/>
    ????<Resource?auth="Container"?description="User?database?that?can?be?updated?and?saved"?name="UserDatabase"?type="org.apache.catalina.UserDatabase"/>
    ????<ResourceParams?name="jdbc/myOrcl">
    ??????<parameter>
    ????????<name>maxWait</name>
    ????????<value>5000</value>
    ??????</parameter>
    ??????<parameter>
    ????????<name>maxActive</name>
    ????????<value>4</value>
    ??????</parameter>
    ??????<parameter>
    ????????<name>password</name>
    ????????<value>mypassword</value>
    ??????</parameter>
    ??????<parameter>
    ????????<name>url</name>
    ????????<value>jdbc:oracle:thin:@127.0.0.1:1521:dbserver</value>
    ??????</parameter>
    ??????<parameter>
    ????????<name>driverClassName</name>
    ????????<value>oracle.jdbc.driver.OracleDriver</value>
    ??????</parameter>
    ??????<parameter>
    ????????<name>maxIdle</name>
    ????????<value>2</value>
    ??????</parameter>
    ??????<parameter>
    ????????<name>username</name>
    ????????<value>myusername</value>
    ??????</parameter>
    ????</ResourceParams>
    ????<ResourceParams?name="UserDatabase">
    ??????<parameter>
    ????????<name>factory</name>
    ????????<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
    ??????</parameter>
    ??????<parameter>
    ????????<name>pathname</name>
    ????????<value>conf/tomcat-users.xml</value>
    ??????</parameter>
    ????</ResourceParams>
    ??</GlobalNamingResources>

    可以看到,一些連接池的信息配置參數已經和Tomcat4不同了。
    但大致配置步驟和方法都是一樣的。


    2.設置web應用對連接池的引用。

    ?打開D:\Tomcat?5.0\conf\Catalina\localhost\?目錄,找到和web應用同名的xml文件(mypool.xml),打開這個文件,
    修該其<Context></Context>的描述信息,添加如下行:

    ???<ResourceLink?global="jdbc/myOrcl"?name="jdbc/myOrcl"?type="javax.sql.DataSource"/>??

    使mypool.xml文件的內容看起來大致這個:
    ??
    ???<Context?docBase="D:/mypool"?path="/mypool"?privileged="true"?reloadable="true">
    ?????<ResourceLink?global="jdbc/myOrcl"?name="jdbc/myOrcl"?type="javax.sql.DataSource"/>
    ???</Context>

    然后保存mypool.xml,需要重新Tomcat5服務,使之生效。


    3.JSP頁面測試文件的寫法也是一樣的,不再贅述。

    4.一些補充:

    ??如果web應用沒有配置對連接池的引用,即沒有配置<ResourceLink>,則會在訪問jsp頁面時出現如下錯誤:
    ????NameNotFoundException:?Name?jdbc?is?not?bound?in?this?Context

    ??如果缺少Oracle的JDBC驅動,則會在訪問jsp頁面時出現如下錯誤:
    ????java.sql.SQLException:?Cannot?load?JDBC?driver?class?'oracle.jdbc.driver.OracleDriver'
    主站蜘蛛池模板: 午夜无码A级毛片免费视频| 久久精品国产精品亚洲艾| 成年人视频免费在线观看| 国产A∨免费精品视频| 亚洲av无码有乱码在线观看| 久久99亚洲网美利坚合众国| 亚洲色无码一区二区三区| 日本免费人成黄页网观看视频| 亚洲天堂中文资源| 亚洲人成影院在线无码观看| 国产精品酒店视频免费看| 182tv免费视频在线观看| 黄网站在线播放视频免费观看| 在线观看亚洲精品国产| 午夜男人一级毛片免费| 台湾一级毛片永久免费| 999久久久免费精品播放| 在线观看亚洲免费| 国产男女爽爽爽爽爽免费视频| 亚洲av日韩av永久在线观看| 亚洲欧洲日产v特级毛片| 久久精品亚洲中文字幕无码网站| 性xxxxx免费视频播放| 99久热只有精品视频免费观看17| 亚洲砖码砖专无区2023| 亚洲Av无码一区二区二三区| 亚洲熟妇av一区| 亚洲国产美女精品久久久久| 亚洲美女在线观看播放| 亚洲综合无码一区二区三区| 久久精品国产亚洲av高清漫画| 四虎永久免费地址在线观看| 在线观看免费国产视频| 免费一级毛片正在播放| 免费a级毛片无码a∨性按摩| 亚洲第一区精品日韩在线播放| 99精品视频在线免费观看| 免费无码一区二区三区| 免费无码VA一区二区三区 | 免费人成在线观看69式小视频| 污网站免费在线观看|