GBase 8a JDBC连接参数

本文介绍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

自动重连,建议使用连接池,由其保障当前连接的可用性。