返回首页

gbase数据、南大通用产品文档:GBase8a, 1921689174, 1921689175,

更新日期:2024年09月11日


客户端开启负载均衡连接池,设置连接串参数如下:
server=192.168.9.173;user id=gbase;password=gbase20110531;
database=test;pooling=true;min idle size=20;max idle size=40;
gclusterid=g1;failover=true; initial pool size=20;
iplist=192.168.9.174,192.168.9.175,192.168.9.176;
test on borrow=true;test on return=true;test while idle=true;
load balance strategy=polling;max inuse lifetime=0;

客户端使用GBaseConnection 通过上述连接串进行初始化,并打开连
接后。驱动会在集群的每个节点上创建5 个连接,并缓存起来,并以
polling(轮询)的方式先从173 节点获取缓存连接。
注:当某个连接请求访问173 节点时,接口在173 节点上获取缓存连接后,
若发现173 节点故障,会尝试获取174 节点的缓存连接,若发现174 节点故障,
会尝试获取175 节点缓存连接,直到获取到176 节点的缓存连接。如果所有节
点都不可用,则会在默认超时时间后抛出异常。



GBase 8a 程序员手册ADO.NET 篇
南大通用数据技术股份有限公司

- 59 -
C# 示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Data;
using GBase.Data.GBaseClient;

namespace UsingAdoNet
{
class Program
{
public int _finish = 0;
public int _thread = 20;
public int _runTime = 500;

static void Main(string[] args)
{
string enableNewPoolStr =
"server=192.168.9.173;user id=gbase;password=gbase20110531;"+
"pooling=true;Connection lifetime=0;min idle size=20;max idle
size=40;"+
"gclusterid=g1;failover=true;iplist=192.168.9.174,192.168.9.175,

在 GCCI 中处理 SELECT 语句跟处理 INSERT、UPDATE、CREATE 等语句的方法
是不一样的,其中 SELECT 语句是有返回结果,其它语句没有返回结果,所以必
须区分 SQL 语句是否为查询语句,
然后按照各自的流程处理。
流程图如下所示:

可以使用 onstat -G 命令显示关于通过 TP/XA 库生成的全局事务的信息。
语法:

示例输出
图: onstat -G 命令输出

对于紧耦合事务,所有的分支将共用在地址列中显示的相同事务地址。
输出描述
address
事务地址
flags
位置 1 的标志代码(当前事务状态):
A
用户线程已连接到事务
S
TP/XA 已暂挂事务
C
TP/XA 正在等待回滚
位置 2 的标志代码(事务方式):
T
紧耦合方式(MTS)
L
松耦合方式(缺省方式)
位置 3 的标志代码(事务阶段):
B
开始工作
P
准备好用于提交的分布式查询
X

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 636 -
TP/XA 已准备好提交
C
正在提交或已提交
R
正在回滚或已回滚
H
正在尝试回滚或已回滚
位置 4 的标志代码:
X
XA 数据源全局事务
位置 5 的标志代码(事务类型):
G
全局事务
C
分布式查询协调者
S
分布式查询从属者
B
分布式查询协调者和从属者
M
重定向的全局事务
isol
事务的隔离级别
timeout
事务锁定超时
fID
格式 ID
gtl
全局事务 ID 长度
bql
分支限定符长度
data
指定事务的数据
dbpartnum
启动事务的数据库 ID

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 637 -