GBASE南大通用关于连接池过期池的分享

GBASE南大通用数据库清理无效连接 

 如果要连接池定期清理连接池中无效的连接,那么就要设置 POOL_MANAGER=1。清理无效连接功能不仅定期清理连接池中无效的连接,还定 期检测 GBase 8a 各节点的状态。如果 GBase 8a 有节点恢复可用,GBase 8a ODBC 连接池将会缓存连接到该节点的 ODBC 连接。同时通过设置 POOL_TEST_INVALID_CONN_PERIOD 的值可以设置清理无效连接的周期。该周期默 认值为 20 秒。如下所示: 

 "DRIVER=GBase 8a ODBC 8.3 Driver;UID=gbase;PWD=gbase20110531;"

 "SERVER={192.168.111.96;192.168.5.212;192.168.7.174;192.168.7.17 3};"

 "GCLUSTER_ID=gcluster; POOL_MAX_ACTIVE_SIZE=80;POOL_MAX_IDLE=60;"

 " POOL_MANAGER=1;POOL_TEST_INVALID_CONN_PERIOD=30;" 

GBASE南大通用数据库维持空闲连接数

如果要使连接池中的空闲连接数维持在一范围内,那么可以通过设置 POOL_KEEP_IDLE=1 打开连接池的空闲连接数维持功能,并设置 POOL_MIN_IDLE 的值来实现。POOL_MIN_IDLE 的值小于 POOL_MAX_IDLE 的值。这样当连接池发现 空闲连接数小于 POOL_MIN_IDLE 的值时就会创建新的空闲连接,以满足当前空 闲连接数大于等于 POOL_MIN_IDLE 的值。打开维持空闲连接数功能必须同时设 置 POOL_MANAGER=1。如下所示: 

 "DRIVER=GBase 8a ODBC 8.3 Driver;UID=gbase;PWD=gbase20110531;" 

 "SERVER={192.168.111.96;192.168.5.212;192.168.7.174;192.168.7.17 3};" 

 "GCLUSTER_ID=gcluster; POOL_MAX_ACTIVE_SIZE=80;POOL_MAX_IDLE=60;" 

 " POOL_MANAGER=1;POOL_TEST_INVALID_CONN_PERIOD=30;"

" POOL_KEEP_IDLE=1; POOL_MIN_IDLE=30;"

GBASE南大通用数据库清理过期池

用户可以给 GBase 8a ODBC 连接池中的连接设置有效期,并且当连接池发 现有连接过期时,会将该连接释放掉。这种功能可以通过设置 POOL_CLEAR_OVERDUE,POOL_USED_LIFE 和 POOL_IDLE_LIFE 来打开。如果 POOL_USED_LIFE 的值为 0,那么已借出的连接不会过期,POOL_USED_LIFE 默认 值为 0;如果 POOL_IDLE_LIFE 的值为 0,那么空闲连接不会过期,POOL_IDLE_LIFE 默认值为 0。打开清理过期连接功能必须同时设置 POOL_MANAGER=1 如下所示:

 "DRIVER=GBase 8a ODBC 8.3 Driver;UID=gbase;PWD=gbase20110531;"

"SERVER={192.168.111.96;192.168.5.212;192.168.7.174;192.168.7.17 3};" 

 "GCLUSTER_ID=gcluster; POOL_MAX_ACTIVE_SIZE=80;POOL_MAX_IDLE=60;" 

 " POOL_MANAGER=1;POOL_TEST_INVALID_CONN_PERIOD=30;"

 " POOL_CLEAR_OVERDUE=1; POOL_USED_LIFE=360000; POOL_IDLE_LIFE=36000;" 

GBASE南大通用数据库释放连接池

释放连接池需要按照如下方式调研释放连接池的接口。 

 rc = SQLDriverConnect(hdbc, NULL, connStr, SQL_NTS,NULL, 0, NULL, 0);

if (!isSuc(rc))

 { 

 getError(SQL_HANDLE_DBC, hdbc); 

return;

 }

 SQLSetConnectAttr(hdbc, SQL_ATTR_GBASE_POOL_FREE, SQL_FREE_GBASE_POOL, NULL);

 SQLDisconnect(hdbc);

 在归还从连接池借出的连接前,先设置该连接的属性 SQL_ATTR_GBASE_POOL_FREE 的值为 SQL_FREE_GBASE_POOL,然后调用 SQLDisconnect 归还连接。这样 ODBC 在归还连接的同时会释放掉该连接所在的 连接池。  

你可能感兴趣的:(数据库,GBASE南大通用,GBASE)