DispatchTest3
1 背景知识
DispatchTest3 是一个 JAVA 编写的测试程序。目前测试于 200-Areas/Kingbase/Kingbase 数据库。此程序会模拟正常业务的 SELECT 语句 。从而测试 JDBC 驱动的 JDBC故障处理能力 与 JDBC在读写分离集群的稳定性。
2 程序包获取与安装
2.1 下载并安装
- 请下 [[DispatchTest3.tar.gz]] 测试程序。并解压测试程序。
#root>
cd /app
tar -zxvf DispatchTest3.tar.gz
2.2 配置 jdbc.conf
- 进入
src
目录,配置jdbc_v8.conf
文件。
cd DispatchTest3/src
vi jdbc_v8.conf
- 请根据实际情况修改一下内容。
# loggerLevel can be OFF, DEBUG, TRACE
#
#主机地址
HOST=192.168.10.161
PORT=54321
DBNAME=test
user=system
#未设置passwordEncryption时,password为明文,设置passwordEncryption时,password为密文
password=kingbase
#password=123456
#指定密码的加密方式,目前只支持base64,默认是明文
#passwordEncryption=base64
loggerLevel=WARNING
loggerFile=jdbc_test.log
#preferQueryMode=extendedForPrepared
#是否使用读写分离功能
USEDISPATCH=true
HOSTLOADRATE=100
#备机地址
SLAVE_ADD=192.168.10.162,192.168.10.163
SLAVE_PORT=54321,54321
nodeList=node1,node2,node3
readListStrategy=1
#失败重发的最高次数
RETRYTIMES=3
#失败重发每次的间隔时间(单位:秒)
RETRYINTERVAL=5
#开启集群备机监测线程定时监测集群备机状态
CLUSTER_MONITOR=true
#监测线程每次监测的间隔时间(单位:秒)
MONITORINTERVAL=5
monitorSocketTimeout=6
#白名单,指定只读函数
#WhiteList=count;sum;to_char;
#黑名单,指定写函数,不与白名单同时配置,若同时配置,则黑名单生效
#BlackList=updateFunction;insertFunction
#只发主机,但不改变事务状态的sql语句列表
#BlackSqlList=SET TRANSACTION READ WRITE;BEGIN READ WRITE
2.3 配置 JDBC 驱动
- 上传要被测试的 JDBC 的驱动包,这里选择 Kingbase V9R1版本自带的驱动包。
ls /app/DispatchTest3/lib/kingbase8-9.0.0.jar
2.4 配置 test.sh
启动脚本
这里需要将启动命令换成新的 JDBC 驱动包。
ant clean
ant
cd ./bin
#java -cp .:../lib/kingbase8-8.6.0-1009.jar test_v8_2
java -cp .:../lib/kingbase8-9.0.0.jar test_v8_2
3 启动应用程序
./test.sh
Buildfile: /app/DispatchTest3/build.xml
clean:
[delete] Deleting directory /app/DispatchTest3/bin
BUILD SUCCESSFUL
Total time: 0 seconds
Buildfile: /app/DispatchTest3/build.xml
build-subprojects:
init:
[mkdir] Created dir: /app/DispatchTest3/bin
[copy] Copying 1 file to /app/DispatchTest3/bin
build-project:
[echo] DispatchTest: /app/DispatchTest3/build.xml
[javac] Compiling 1 source file to /app/DispatchTest3/bin
build:
BUILD SUCCESSFUL
Total time: 0 seconds
jdbc:kingbase8:TEST?ConfigurePath=jdbc_v8.conf
[[2024-12-09 09:46:41]] [12] [Thread id:12] Open a connection: jdbc:kingbase8:TEST?ConfigurePath=jdbc_v8.conf
[[2024-12-09 09:46:41]] [13] [Thread id:13] Open a connection: jdbc:kingbase8:TEST?ConfigurePath=jdbc_v8.conf
[[2024-12-09 09:46:41]] [14] [Thread id:14] Open a connection: jdbc:kingbase8:TEST?ConfigurePath=jdbc_v8.conf
[[2024-12-09 09:46:41]] [15] [Thread id:15] Open a connection: jdbc:kingbase8:TEST?ConfigurePath=jdbc_v8.conf
[[2024-12-09 09:46:41]] [16] [Thread id:16] Open a connection: jdbc:kingbase8:TEST?ConfigurePath=jdbc_v8.conf
[[2024-12-09 09:46:41]] [17] [Thread id:17] Open a connection: jdbc:kingbase8:TEST?ConfigurePath=jdbc_v8.conf
[[2024-12-09 09:46:41]] [18] [Thread id:18] Open a connection: jdbc:kingbase8:TEST?ConfigurePath=jdbc_v8.conf
[[2024-12-09 09:46:41]] [19] [Thread id:19] Open a connection: jdbc:kingbase8:TEST?ConfigurePath=jdbc_v8.conf
[[2024-12-09 09:46:41]] [20] [Thread id:20] Open a connection: jdbc:kingbase8:TEST?ConfigurePath=jdbc_v8.conf
[[2024-12-09 09:46:41]] [21] [Thread id:21] Open a connection: jdbc:kingbase8:TEST?ConfigurePath=jdbc_v8.conf
[[2024-12-09 09:46:41]] [15] [select 0] 1
[[2024-12-09 09:46:41]] [15] [select 0] 3