當前位置:首頁 » 編程語言 » sqlserver連接池配置
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlserver連接池配置

發布時間: 2022-04-08 08:39:46

『壹』 配置Tomcat7 sqlserver連接池。

請參考

首先配置:META-INF/context.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="" reloadable="true" crossContext="true">
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" username="root" password="root"
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/db_name" />
</Context>

再配置: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>

程序:
InitialContext ctx = new InitialContext();
Context envContext = (Context) ctx.lookup("java:comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/TestDB");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
stmt.execute(「執行的SQL語句」);
stmt.close();
conn.close();

『貳』 在tomcat5.5中配置與SQLserver2000連接池

comcat 5.5及以上+SQLserver2000都可以用下面
我這剛好有個。供參考
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%@ page import="java.lang.Thread" %>
<html>
<head>
<title>測試</title>
</head>
<body>
<%
Connection conn=null;
try {
Context ic= new InitialContext();
Context cont=(Context)ic.lookup("java:comp/env");
DataSource dataSource = (DataSource)cont.lookup("jdbc/text");
/*out.print("取得一個連接<br>");
* out.print(conn.toString());
* out.print(dataSource.getActiveSize());
*if(conn!=null){
*conn.close();
*}
*/
//測試連接池釋放與回收機制
for(int i=0;i<1000;i++){
// wait(20);
Thread.sleep(20);
conn= dataSource.getConnection();
try{
out.print("第"+i+"個連接");
//conn.close();
out.print("第"+i+"關閉及釋放成功");
if(i%4==0){
out.print("<br>");
}
}catch(Exception e){
out.print("釋放失敗");
e.printStackTrace();
}
}

} catch (NamingException e) {
e.printStackTrace();
}
%>
</body>
</html>

配置xml為自己建個目錄在Tomcat 6.0\conf\Catalina\localhost
註:Catalina\localhost是沒的在conf要自己建
DBPool為項目名,根據你自己
<Context path= "/DBPool" docBase= "${catalina.home}/webapps/DBPool"
debug= "0" reloadable= "true " crossContext= "true ">
<Resource name="jdbc/text"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=studentManage"
username="sa"
password="8123456"
maxActive="900"
maxIdle="1"
maxWait="10"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
removeAbandoned="true" removeAbandonedTimeout="1" logAbandoned="true"
/>
</Context>
對了用時還要把三資料庫驅動放到Tomcat 6.0\lib下

『叄』 Tomcat5.5+MS SQL server2000 資料庫連接池配置

設置兩個地方:
1,在Tomcat目錄下conf\server.xml文件中</host>之前加入
<Context path="/mytest" crossContext="true" reloadable="true">
<Resource
name="jdbc/FSDS" auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver "
url="jdbc:microsoft:sqlserver://localhost:1433;databasename=MyDB"
username="sa"
password="sa"
maxActive="20"
maxIdle="10"
maxWait="-1" />
</Context>
2,在mytest/web-inf/web.xml中加入以下內容
<resource-ref>
<res-ref-name>jdbc/FSDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
另外記得把MSSQL的三個驅動JAR包放到Tomcat目錄下的common\lib中就行了

『肆』 java連接SqlServer2008的資料庫連接池怎麼使用

java連接SqlServer2008的資料庫連接池使用:
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Vector;
/**資料庫連接池的公共類 **/
public class ConnectionPool {

private Vector<Connection> pool;//聲明集合,裡面只能是放Connection
/**
* 聲明要的東西
*/
private String url = "jdbc:sqlserver://localhost:1433; database=ajax";

private String username = "sa";

private String password = "sa123";

private String driverClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

/**
* 連接池的大小,也就是連接池中有多少個資料庫連接
*/
private int poolSize = 5;

private static ConnectionPool instance = null;

/**
* 私有的構造方法,禁止外部創建本類的對象,要想獲得本類的對象,通過<code>getIstance</code>方法
* 使用了設計模式中的單子模式
*/
private ConnectionPool() {
init();
}

/**
* 連接池初始化方法,讀取屬性文件的內容 建立連接池中的初始連
*/
private void init() {
pool = new Vector<Connection>(poolSize);
//readConfig();
addConnection();
}

/**
* 返回連接到連接池
*/
public synchronized void release(Connection conn) {
pool.add(conn);
}

/**
* 關閉連接池中的所有資料庫連接
*/
public synchronized void closePool() {
for (int i = 0; i < pool.size(); i++) {
try {
((Connection) pool.get(i)).close();
} catch (SQLException e) {
e.printStackTrace();
}
pool.remove(i);
}
}

/**
* 返回當前連接池的對象
*/
public static ConnectionPool getInstance() {
if (instance == null) {
instance = new ConnectionPool();
}
return instance;
}

/**
* 返回連接池中的一個資料庫連接
*/
public synchronized Connection getConnection() {
if (pool.size() > 0) {
Connection conn = pool.get(0);
pool.remove(conn);
return conn;
} else {
return null;
}
}

/**
* 在連接池中創建初始設置的的資料庫連接
*/
private void addConnection() {
Connection conn = null;
for (int i = 0; i < poolSize; i++) {

try {
Class.forName(driverClassName);
conn = java.sql.DriverManager.getConnection(url, username,
password);
pool.add(conn);

} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}

}
}
}

『伍』 如何設置sql server的最大連接數

設置最大連接數 下面的T-SQL 語句可以配置SQL Server 允許的並發用戶連接的最大數目。 exec sp_configure 'show advanced options', 1 exec sp_configure 'user connections', 100 第一句用以表示顯示sp_configure 系統存儲過程高級選項,使用user connections 時,要求show advanced options 值為1。 第二句配置最大連接數為100,0 表示不限制,但不表示無限,後面將談談。 也可以在企業管理器中配置,在企業管理器中,可以在實例上點右鍵->「屬性」->「連接」裡面更改。 需要重新啟動SQL Server,該值才會生效。 @@max_connections select @@max_connections 它總是返回32767,它並不是指上面設置的user connections,實際上它表示user connections 最大可設置為多少。由於它的最大值是32767,那麼user connections 為0 時,最大連接數也就是32767 了,並不是無限。 默認情況下user connections 值是0,也就是說默認情況下SQL Server 的最大連接數是32767。 獲得當前設置的最大連接數: select value from master.dbo.sysconfigures where [config]=103 如何監測SQLServer的連接數 /*查詢連接數*/ select loginame,count(1) as Nums from sys.sysprocesses group by loginame order by 2 desc select spid,ecid,status,loginame,hostname,cmd,request_id from sys.sysprocesses where loginame='' and hostname='' 方法二: SP_WHO 'loginName' loginName 是當然登陸Sql的用戶名,一般程序裡面都會使用一個username來登陸SQL這樣通過這個用戶名就能查看到此用戶名登陸之後佔用的連接了。 如果不寫loginName,那麼返回的就是所有的連接。 既然連接數是可預測、可監測的,那麼它就是可度量的,那麼我們就可以根據實際情況來評估或測試程序的並發放量了。

『陸』 求大神指教,JBOSS7.1怎麼配置sqlserver的資料庫連接池

next和prev分別指向對方。TailContext實現的是ChannelInboundHandler介面,HeadContext實現的是ChannelOutboundHandler,一進一出,官方文檔對handler的執行順序是這樣說明的:

對於Inbound,是從頭head開始依次執行,而對於Outbound,則是從tail向前執行,

『柒』 sqlserver 資料庫連接數設置多大合適

SQL SERVER 理論上有32767個邏輯連接,SQL SERVER根據系統自行調配連接池。

操作系統的用戶數:即同時通過網路連接到這台電腦上面的用戶限制,以5用戶操作系統,搭建的文件伺服器為例,去同時訪問這個文件伺服器的網路用戶為5個。

購買資料庫有兩種方式

1、根據用戶數購買。

2、根據cpu個數購買。

根據用戶數購買,假如購買了一個50用戶的資料庫,那麼可以通過網路訪問資料庫的人數限制為50。

根據cpu個數購買的資料庫訪問人數不受限制,伺服器上面有幾顆cpu就要買幾個授權的SQL
server,但是如果你只買一個授權的話資料庫也可以正常運行,但是微軟認為你的資料庫不合法。就如同盜版系統。

一個連接不等於一個用戶,單獨一個用戶可以有超過一個的連接,單獨一個連接可以有超過一個用戶。

如何監測SQLServer的連接數:

SP_WHO 'loginName'

loginName
是當然登陸Sql的用戶名,一般程序裡面都會使用一個username來登陸SQL這樣通過這個用戶名就能查看到此用戶名登陸之後佔用的連接了。如果不寫loginName,那麼返回的就是所有的連接。

既然連接數是可預測、可監測的,那麼就是可度量的,就可以根據實際情況來評估或測試程序的並發放量了。

『捌』 tomcat5.5.9與sqlserver2000的資料庫連接池的配置

編輯tomcat子目錄conf中的context.xml文件,在其中加入:

<Resource name="jdbc/mypool[你的鏈接池名稱,與下個文件中必須保持一致]" auth="Container" type="javax.sql.DataSource" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://192.168.0.1[你的資料庫IP地址,如果本機就保持不變]:1433/<你的資料庫名稱>" username="<資料庫用戶名>" password="<資料庫密碼>" maxActive="20" maxIdle="10" maxWait="-1"/>

再編輯你的應用程序目錄WEB-INF下的web.xml文件,在其中加入:

<resource-ref>
<description>SQL Server Pool</description>
<res-ref-name>jdbc/mypool[與在context.xml中聲明的名稱必須一致]</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

然後把msbase.jar,mssqlserver.jar,msutil.jar三個文件復制到tomcat的common/lib中,再啟動tomcat即可。

註:1、[]中的內容為注釋,<>中的內容根據你自己的實際情況填寫。

另外,如果sqlserver伺服器上開了防火牆,請打開1433埠。