暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8a的高可用性

三金先生 2023-06-14
220

高可用性示例

#ifdef WIN32 #include #else #include #endif #include #include #include #include #include #define isSuc(result) ((result) == SQL_SUCCESS || (result) == SQL_SUCCESS_WITH_INFO) char hosts[][100] = {"192.168.5.64",

"192.168.5.65", "192.168.5.64;192.168.5.65", "192.168.5.65;192.168.5.64", "192.168.5.64;192.168.5.64", "192.168.5.64;192.168.5.64;192.168.5.65", "192.168.5.64;192.168.5.65;192.168.5.64", "192.168.5.65;192.168.5.64;192.168.5.64", "192.168.5.65;192.168.5.66", NULL}; int main(void) { char conn_format[200] = "DRIVER={GBase 8a ODBC 8.3 Driver};" "SERVER={%s};UID=root;PWD=1;DATABASE=test;PORT=5258;"; char conn[200] = {'\0'}; int i = 0; short sret; //返回代码 void* henv; //环境句柄 void* hdbc; //连接句柄 /** 申请环境句柄**/ sret = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv); if(!isSuc(sret))printf("申请环境句柄出错\n"); /** 设置环境属性,声明 ODBC 版本**/ sret = SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0); if(!isSuc(sret))printf("声明 ODBC 版本出错\n"); /** 申请连接句柄**/ sret = SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc); if(!isSuc(sret))printf("申请连接句柄出错\n"); /** 设置连接属性**/ sret = SQLSetConnectAttr(hdbc,SQL_ATTR_AUTOCOMMIT, (void*)SQL_AUTOCOMMIT_OFF,SQL_IS_INTEGER); if(!isSuc(sret))printf("设置连接属性出错\n"); while(*hosts[i])

{ sprintf(conn, conn_format, hosts[i]); /** 连接数据源**/ sret = SQLDriverConnect(hdbc,NULL,(unsigned char *)conn, SQL_NTS, NULL, 0, NULL, 0); if(!isSuc(sret))printf("连接%s 出错\n", hosts[i]); else printf("连接%s 成功\n", hosts[i]); SQLDisconnect(hdbc); memset(conn, '\0', strlen(conn)); i++; } return 0; }


负载均衡示例

#ifdef WIN32 # include #else # include #endif #include #include #include #include #define isSuc(result) ((result) == SQL_SUCCESS || (result) == SQL_SUCCESS_WITH_INFO) char* conn_str = "DRIVER=GBase 8a ODBC 8.3 Driver;UID=gbase;PWD=gbase20110531;" "SERVER={192.168.7.172;192.168.7.173;192.168.7.174};"

"CONNECTION_BALANCE=1;GCLUSTER_ID=gcluster;" "CHECK_INTERVAL=90;"; int main(void) { short sret; void* henv; void* hdbc; char message[512]; char hostinfo[100]; int i = 0; sret = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv); if(!isSuc(sret)) { SQLGetDiagRec(SQL_HANDLE_ENV, henv, 1, NULL, NULL, (SQLCHAR*)message, 1023, NULL); printf("%s\n", message); return -1; } sret = SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0); if(!isSuc(sret)) { SQLGetDiagRec(SQL_HANDLE_ENV, henv, 1, NULL, NULL, (SQLCHAR*)message, 1023, NULL); printf("%s\n", message); return -1; } sret = SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc); if(!isSuc(sret)) { SQLGetDiagRec(SQL_HANDLE_ENV, henv, 1, NULL, NULL, (SQLCHAR*)message, 1023, NULL); printf("%s\n", message); return -1; }

for (i=0; i<6;>

{ SQLGetDiagRec(SQL_HANDLE_ENV, henv, 1, NULL, NULL, (SQLCHAR*)message, 1023, NULL); printf("%s\n", message); return -1; } return 0; }   

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论