本文介绍GBase 8a数据库集群的JDBC接口URL里,常用的参数。
目录导航
URL格式
jdbc:gbase://[host][,failoverhost...][:port]/[database][?propert
yName1][=propertyValue1][&propertyName2][=propertyValue2]...
如下参数,以我个人判断的重要程度,使用量进行排序。
user
连接数据库的用户名
password
连接数据库的密码。
注意此处是明文,而URL一般都在配置文件里。建议密码部分或者整个URL都加密保存,然后在JAVA程序获得密文URL后,内部解密,以此来规避密码泄漏问题。
hostList
一组调度节点coordinator的IP列表,用逗号分割,用途看后面。
failoverEnable
故障转移。连接集群时,如果当前IP(比如jdbc的最前面的IP),无法连接,则自动从hostlist里面挨个尝试连接,直到连接成功返回,或者均不可用报错退出。
下一次连接,同样从第一个IP开始。
默认为 false;
gclusterId
负载均衡。和falioverEnable、hostList组合成负载均衡模式(循环轮询模式 round-robin)。
要求failoverEnable=true 且 hostList 参数不为空。每次获取连接时,将从所有IP列表(包括最前面的第一个IP和hostList里指定的IP)里,按顺序检查IP能否连接。
下一次连接,将从下一个IP开始,如果到达末尾,则返回第一个IP。
gclusterId 必须以 a-z 任意字 符开头的字符串,长度为最大 为 20。
注意:在同一应用程序中(JVM), 如果有多个不同用途的URL,则gclusterId必须唯一,否则多个URL里的IP会在一个大的循环池循环,导致访问了不属于本服务负责的集群。
useUnicode
处理字符串时,指定驱动是否使用Unicode编码。是否只在驱动无法决定字符集映射的时候使用,或者在不考虑 GBase 是否有本地化支持的情况 下,尝试驱动使用该字符集(例如 UTF-8)。
默认为false。
characterEncoding
如果 useUnicode 设置为true,驱动在处理字符串时应该使用什么样的编码。
默认为 autodetect。
connectTimeout
在socket连接时的超时时间(socketConnectTimeout),根据测试,后面的socketTimeout需要一起设置。
请参考 GBase 8a集群V95版本JDBC连接超时参数设置避免半数节点故障时长时间卡住不返回
socketTimeout
socket读写操作时的超时参数(SocketOperateTimeout)。和如上的sockert连接时一般一起使用,可以设置不同的参数,因为有些SQL操作可能耗时很长,可以将本参数设置的略高一些。
allowMultiQueries
允许多个SQL语句,通过默认的分号分割后,一次下发执行。
默认为 false。
useSSL
启用SSL连接功能。
详情请参考 GBase 8a集群SSL配置-JDBC
rewriteBatchedStatements
针对insert values方式的快速批量写入方式优化。
请参考 GBase 8a集群JDBC 批量提交rewriteBatchedStatements
useOldAliasMetadataBehavior
确定返回的是别名还是列名。
涉及功能ResultSetMetaData.getColumnName( ),ResultSetMetaData.getTableName()。
当 useOldAliasMetadataBehavior =true 时,返回值为别名。
默认为 false,返回列名。
vcName
设置虚拟集群名称。如果集群支持虚拟 集群,必须通过该参数指定默认的虚拟 集群名称
不建议使用的参数
autoReconnect
自动重连,建议使用连接池,由其保障当前连接的可用性。