JDBC连接池设置

Posted 宜学IT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDBC连接池设置相关的知识,希望对你有一定的参考价值。

今天我们来看一下 JDBC Connection Configuration的配置参数。

 

参数说明如下。

名称:该组件名称,可以随意设置,甚至可以为空。

注释:可以随意设置,可以为空。


variable Name Bound to Pool- Variable name:连接池名称, JDBC Request通过此名称来获取连接池中的连接;可以随意填写,最好具有业务意义,至少让你能够秒懂。还有一条,在整个测试计划中这个名称最好唯一,如果有多个 JDBC Connection Configuration,且名称重复,你让 JMeter如何去做选择呢?


Max Number of Connections:连接池的最大连接数。

Pool TimeOut:连接超时设置。

Idle Clean Up Interval:空闲连接清理时间间隔。

Auto Commit::事务是否自动提交选项,比如 Oracle执行一条更新操作,Commit-,数据是不会更新到库中的,这个选项帮我们自动提交。

Transaction Isolation:JDBC事务控制选项,在此就啰嗦一下数据库事务。

 

说起数据库事务大家脑海里闪现的应该是ACID这个词吧?


(1)A原子性( atomicity):事务是数据库的逻辑工作单位,对于其数据修改,要么全部执行要么全部不执行。

(2)C一致性( consistency):事务在完成时,必须是所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。

(3)I隔离性( isolation):一个事务的执行不能被其他事务所影响。

(4)D持久性( durability):一个事务一旦提交,事物的操作便永久性地保存在数据库中。

即使此时再执行回滚操作也不能撤消所做的更改。

 

为了保证维护事务的ACID属性,就产生了锁这种机制,用来做事务隔离,隔离级别有几种呢,就是我们在Transaction Isolation下拉列表中看到的。


TRANSACTION_NONE:不支持事务, TRANSACTION_ NONE=0

TRANSACTION_READ_UNCOMMITTED:允许脏读、不可重复读和幻读。

RANSACTION_READ_ UNCOMMITTED=1

TRANSACTION_ READ _COMMITTED:禁止脏读,但允许不可重复读和幻读

TRANSA CTION _READ_ COMMITTED=2

TRANSACTION _REPEATABLE_ READ:禁止脏读和不可重复读,允许幻读。

TRANSACTION_ REPEATABLE _READ=4

TRANSACTION _SERIALIZABLE:禁止脏读、不可重复读和幻读, TRANSACTION_SERIALIZabLE= 8

另外还有一个选项 DEFAULT,这是JMeter加上去的,默认值是-1,其实是 TRANSACTION_READ_ COMMITTED,即禁止脏读,但允许不可重复读和幻读。

 

上面提到了脏读,下面来解释一下脏读。


脏读:一个事务读取了另外一个事务未提交的数据。

不可重复读取:一个事务再次读取之前的数据时,这个数据已经被另外一个事务修改。

幻读:一个事务重新执行一个查询,返回的记录包含了其他事务提交的新记录。

Keep- Alive:是否保持与数据库的连接。

Max Connection age:连接的生存时间,超过这个时间的连接将由连接池自动断开丢弃。


当然正在使用的连接不会马上断开,而是等待它close再断开,配置为0的时候则不会对连接的生存时间进行限制,单位毫秒。

Validation Query:验证SQL语法。

Database URL:JDBC连接字符串,JDBC连接字符的格式是固定的,我们在此用的与程序员用的也是一样,为了省去大家找这些字符串的麻烦,下面列出常用的连接串,驱动包大家可以自行下载。

mysql

Driver="com.Mysql.jdbc Driver";

URL="jdbc:mysq1:// localhost:{端口}/{数据库名}";

 

orac1e(用thin模式):

Driver="oracle.jdbc driver. OracleDriver;

URL="jdbc:oracle: thin: @loaclhost: (端口): {SID}";

 

Micsoft SQL Server

Driver="com. Microsoft. Sqlserver. jdbc. SQLServerDriver;

URL="jdbc: microsoft: sqlserver:/ localhost::(端口}; DatabaseName={数据库名};

 

Sysbase:

Driver="com.sybase.jdbc. SybDriver;

URL="jdbc: Sysbase:// localhost:{端口}/(数据库名}";

 

PostgreSQL:

Driver=org. postgresql. Driver;

URL="jdbc: postgresql: //localhost/db_name;

 

DB2:

Driver="com.ibm.db2.jdbc,app.DB2. Driver”;//装有DB2客户端

Driver="com.ibm.db2.jdbc.net.DB2. Driver";//未装DB2客户端

URL=" jdbc:db2:// localhost:{端口}/(数据库名};

 

JDBC-ODBC:

Driver="sun jdbc odbc. JdbcOdbcDriver";

URL="jdbc:odbc:{数据源名}";



JDBC Driver class:驱动类名,上面的 Driver对应的内容即是。

Username:连接数据库的用户名。

Password:连接数据库的密码。

 

参照上面的说明,你应该能够配置好 JDBC Connection Configuration,注意端口、用户名别出错:另外还有一个重要工作,需要把驱动包放到% METER HOME%lib目录下。

 

全国软件技术交流群

长按扫码可关注


以上是关于JDBC连接池设置的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat/数据库设置 - JDBC 连接池

JDBC连接池设置无法在Glassfish5上运行

再淡spring jdbc 连接池断开重连设置

Spring-Boot:如何设置 JDBC 池属性,例如最大连接数?

Druid连接池 查询慢 超时

JDBC数据库的连接池