當前位置:首頁 » 數據倉庫 » javatomcat資料庫連接池
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

javatomcat資料庫連接池

發布時間: 2022-07-11 18:07:02

A. java配置tomcat連接池

Tomcat6.0以後的版本Context.xml已經從server.xml中分離出來了,因為server.xml是不能動態載入的。而Context.xml是可以動態載入的。這就是區別。例外你的資料庫驅動包也要放到tomcat指定的目錄下,否則將會出現你上面的異常....

B. tomcat資料庫連接池出現異常

第一步,把驅動有放在了tomcat/common/lib下面,第二步修改tomcat/conf/context.xml。 代碼如下
<Resource name="jdbc/bank" auth="Container"
type="javax.sql.DataSource" maxActive="100"
maxIdle="30" maxWait="10000" username="sa"
password="sa"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=bank"
/>
然後帶連接類里 Context ic = new InitialContext();
DataSource ds = (DataSource)ic.lookup("java:comp/env/jdbc/food");

conn = ds.getConnection();
獲得連接,然後就可以用了

C. 怎樣配置Tomcat6.0的資料庫連接池詳解

此文只針對Tomcat6.0進行配置。
1.在自己的項目下的META-INF(注意:不是WEB-INF,我看網上很多人都弄錯了)下面新建一個context.xml文件,文件內容為:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource> //監聽資源
<Resource
name="myoracle" //給資源隨便起一個名字,用於在程序中調用。
auth="Container" //
type="javax.sql.DataSource" //資源類型
driverClassName="oracle.jdbc.OracleDriver" //載入驅動,每種資料庫的方式不同,自己參考資料。
url="jdbc:oracle:thin:@localhost:1521:ICSS" //連接字元串,相信大家不陌生。
username="jsp" //訪問資料庫用戶名
password="jsp" //訪問資料庫的密碼
maxActive="200" //最大可以有200名用戶連接數據源
maxIdle="10" //如果沒有用戶連接,空出10個連接等待用戶連接
maxWait="5000"/> //如果已連接用戶5000秒內沒有再次連接數據源,則放棄此連接
</Context>

2.如果不是用的myeclipse自帶的tomcat,則要到那個tomcat下面conf\Catalina\localhost刪除host-manager.xml和manager.xml。
3.然後就在servlet裡面調用了,調用方法:
需要用到的引用:

import javax.sql.DataSource;
import javax.naming.InitialContext;
import java.sql.Connection;
InitialContext initCtx = new InitialContext(); //
//下面的」 java:comp/env」是固定的,」myoracle」是在context.xml中指定的name。
DataSource ds = (DataSource)initCtx.lookup("java:comp/env/myoracle");
Connection conn = ds.getConnection(); //獲取連接。

附加:

1.Sql server 的context.xml配置:

<Resource
name="名字"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="5000"
username="用戶名"
password="密碼"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=資料庫名"
/>

D. TOMCAT怎麼配置連接池

Tomcat的連接池配置方式具體如下:
一.配置tomcat連接池
1. 修改server.xml或者在conf/Catalina/localhost下添加對應的xml片段。此處使用的是第二種方法。
在conf/Catalina/localhost文件夾下新建ROOT.xml片段,添加以下內容:
<?xmlversion="1.0"encoding="UTF-8"?>
<Context crossContext="true" useHttpOnly="true">
<Resourcename="jdbc/infogrid" type="javax.sql.DataSource" password="123456" driverClassName="com.mysql.jdbc.Driver" maxIdle="10" maxWait="50" username="root" url="jdbc:mysql://localhost:3306/infogrid?autoReconnect=true" maxActive="20"/>
</Context>
2. 為tomcat添加資料庫連接驅動包,本用例使用mysql,將mysql的驅動包添加到common/lib下
二.編寫java測試類(該類必須部署在tomcat容器中,否則無法獲得JNDI資源)
PreparedStatement ps=null;
ResultSet rs=null;
try{
InitialContext ctx=new InitialContext();
DataSource dataSource=(DataSource)ctx.lookup("java:comp/env/jdbc/infogrid");
Connection connection=dataSource.getConnection();
ps=connection.prepareStatement("select count(*) from test");
rs=ps.executeQuery();
rs.next();
System.out.println("表中行數為:"+rs.getInt(1));
rs.close();
ps.close();
System.out.println(connection.getClass());
//class org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper
Field field=connection.getClass().getDeclaredField("delegate");
field.setAccessible(true);
System.out.println(field.get(connection).getClass());
//class org.apache.tomcat.dbcp.dbcp.PoolableConnection
connection.close();
//此關閉並非為真得關閉資料庫連接,具體該close實現可見上面的兩個Connection代理類,其實只是告訴連接池,該Connection已經用完了,可以被再次利用了
}catch(Exception ex){
ex.printStackTrace();
}

E. 如何配置Tomcat資料庫連接池

查看Tomcat訪問日誌及錯誤日誌,容易發現經絕大部分屬於內存溢出、Tomcat進程數滿等性能問題。
加大tomcat內存配置能夠很好的解決溢出問題。
命令行啟動方式的內存配置
修改bin目錄下catalina.bat文件的第97行以下:rem --------------------------------------------------------------在該行下面加入以下內容:set JAVA_OPTS=-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=trueset JAVA_OPTS=-server -Xms768m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:NewSize=192m -XX:MaxNewSize=384mset CATALINA_OPTS=-server -Xms768m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:NewSize=192m -XX:MaxNewSize=384m

安裝tomcat服務時,進行配置

檢測是否配置成功tomcat內存

<%@ page contentType="text/html; charset=GBK"%><% out.println("總 內 存: " + java.lang.Runtime.getRuntime().totalMemory() / 1024 / 1024 + "MB");
out.println("<br>");
out.println("可用內存: " + java.lang.Runtime.getRuntime().freeMemory() / 1024 / 1024 + "MB");%>

F. Java資料庫連接池的幾種配置方法(以MySQL數

連接先建立一些連接,並且這些連接允許共享,因此這樣就節省了每次連接的時間開銷。Mysql資料庫為例,連接池在Tomcat中的配置與使用。
1、創建資料庫Student,表student
2、配置server.xml文件。Tomcat安裝目錄下conf中server.xml文件。
<GlobalNamingResources>
<Resource
name="jdbc/DBPool"
type="javax.sql.DataSource"
password=""
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="root"
url="jdbc:mysql://localhost:3306/student"
maxActive="3"
/>
</GlobalNamingResources>
name:指定連接池的名稱
type:指定連接池的類,他負責連接池的事務處理
url:指定要連接的資料庫
driverClassName:指定連接資料庫使用的驅動程序
username:資料庫用戶名
password:資料庫密碼
maxWait:指定最大建立連接等待時間,如果超過此時間將接到異常
maxIdle:指定連接池中連接的最大空閑數
maxActive:指定連接池最大連接數
3、配置web.xml文件。
<web-app>
<resource-ref>
<description>mysql資料庫連接池配置</description>
<res-ref-name>jdbc/DBPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
</web-app>
4、配置context.xml文件
與server.xml文件所在的位置相同。
<Context>
<ResourceLink
name="jdbc/DBPool"
type="javax.sql.DataSource"
global="jdbc/DBPool"
/>
</Context>
5、測試
DataSource pool = null;
Context env = null;
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try{
env = (Context)new InitialContext().lookup("java:comp/env");
//檢索指定的對象,返回此上下文的一個新實例
pool = (DataSource)env.lookup("jdbc/DBPool");
//獲得資料庫連接池
if(pool==null){out.printl("找不到指定的連接池!");}
con = pool.getConnection();
st = con.createStatement();
rs = st.executeQuery("select * from student");
}catch(Exception ex){out.printl(ne.toString());}

G. java中建立資料庫連接池,有哪幾個步驟

Context context=new InitialContext();
DataSource ds=(DataSource)context.lookup("java:comp/env/jdbc/"+projectName);這里的projectName指的是你的項目名稱然後在tomcatde 的\conf\Catalina\localhost目錄下配置一個和你項目名稱相同的xml文件文件的配置方法可以去網路下很多的,這樣就可以使用連接池了。

H. java的3種資料庫連接池用哪個好

1
dbcp
dbcp可能是使用最多的開源連接池,原因大概是因為配置方便,而且很多開源和tomcat應用例子都是使用的這個連接池吧。
這個連接池可以設置最大和最小連接,連接等待時間等,基本功能都有。這個連接池的配置參見附件壓縮包中的:dbcp.xml
使用評價:在具體項目應用中,發現此連接池的持續運行的穩定性還是可以,不過速度稍慢,在大並發量的壓力下穩定性
有所下降,此外不提供連接池監控
2
c3p0
c3p0是另外一個開源的連接池,在業界也是比較有名的,這個連接池可以設置最大和最小連接,連接等待時間等,基本功能都有。
這個連接池的配置參見附件壓縮包中的:c3p0.xml。
使用評價:在具體項目應用中,發現此連接池的持續運行的穩定性相當不錯,在大並發量的壓力下穩定性也有一定保證,
此外不提供連接池監控。
3
proxool
proxool這個連接池可能用到的人比較少,但也有一定知名度,這個連接池可以設置最大和最小連接,連接等待時間等,基本功能都有。
這個連接池的配置參見附件壓縮包中的:proxool.xml。
使用評價:在具體項目應用中,發現此連接池的持續運行的穩定性有一定問題,有一個需要長時間跑批的任務場景任務,同樣的代碼

I. java的3種資料庫連接池用哪個好

1 dbcp
dbcp可能是使用最多的開源連接池,原因大概是因為配置方便,而且很多開源和tomcat應用例子都是使用的這個連接池吧。
這個連接池可以設置最大和最小連接,連接等待時間等,基本功能都有。這個連接池的配置參見附件壓縮包中的:dbcp.xml
使用評價:在具體項目應用中,發現此連接池的持續運行的穩定性還是可以,不過速度稍慢,在大並發量的壓力下穩定性有所下降,此外不提供連接池監控

2 c3p0
c3p0是另外一個開源的連接池,在業界也是比較有名的,這個連接池可以設置最大和最小連接,連接等待時間等,基本功能都有。
這個連接池的配置參見附件壓縮包中的:c3p0.xml。
使用評價:在具體項目應用中,發現此連接池的持續運行的穩定性相當不錯,在大並發量的壓力下穩定性也有一定保證,此外不提供連接池監控。

3 proxool
proxool這個連接池可能用到的人比較少,但也有一定知名度,這個連接池可以設置最大和最小連接,連接等待時間等,基本功能都有。
這個連接池的配置參見附件壓縮包中的:proxool.xml。
使用評價:在具體項目應用中,發現此連接池的持續運行的穩定性有一定問題

J. 如何在tomcat配置mysql數據連接池

eb開發中與資料庫的連接是必不可少的,而資料庫連接池技術很好的優化了動態頁與資料庫的連接,相比單個連接資料庫連接池節省了很大的資源。用一個通俗的比喻:如果一個人洗澡需花一桶水,那一百個人就要花一百桶水,太浪費了.如果都在池子里洗,洗多少個人都不怕了。
1.將MySQL的JDBC驅動復制到Tomcat安裝目錄里的lib文件夾下。驅動可以從MySQL官網上下載,為jar包。
2.將Tomcat的配置文件Context.xml做如下修改:
<Context path="/DBTest" docBase="DBTest"
debug="5" reloadable="true" crossContext="true">

<!-- maxActive: Maximum number of dB connections in pool. Make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. Set to -1 for no limit.
-->

<!-- maxIdle: Maximum number of idle dB connections to retain in pool.
Set to -1 for no limit. See also the DBCP documentation on this
and the minEvictableIdleTimeMillis configuration parameter.
-->

<!-- maxWait: Maximum time to wait for a dB connection to become available
in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded. Set to -1 to wait indefinitely.
-->

<!-- username and password: MySQL dB username and password for dB connections -->

<!-- driverClassName: Class name for the old mm.mysql JDBC driver is
org.gjt.mm.mysql.Driver - we recommend using Connector/J though.
Class name for the official MySQL Connector/J driver is com.mysql.jdbc.Driver.
-->

<!-- url: The JDBC connection url for connecting to your MySQL dB.
The autoReconnect=true argument to the url makes sure that the
mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
connection. mysqld by default closes idle connections after 8 hours.
-->

<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="javauser" password="javade" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/>

</Context>
注意代碼中紅色部分:DBTest 改為自己的項目路徑;TestDB改為自己的數據源名,但是後面使用時候要與這里的配置保持一致;javauser和 javauser改為自己MySQL的用戶名密碼;url的格式依次為jdbc:mysql://{你的資料庫服務所在的IP,如果為本機就為localhost}:{你的資料庫服務埠號}/{MySQL中要使用的資料庫名稱}?autoReconnect=true 。
3.修改項目WEB-INF/web.xml 配置文件(若無,請新建),在「</web-app>」之上添加如下代碼:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
上步中若修改了數據源名此步中紅色部分請保持與上步中的一致。
4.代碼示例:
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/TestDB");
Connection conn = ds.getConnection();
Statement st = null;
ResultSet rs = null;
st = conn.createStatement();
rs = st.executeQuery(yoursql);
注意紅色部分與上兩步中的一致;yoursql處寫你的sql代碼。
通過1-3步就在Tomcat中配置好了MySQL的資料庫連接池。