当前位置:首页 » 编程语言 » 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端口。