Skip to content

资源释放

XGCI对资源的持有规则支持先进后出的栈操作顺序,即优先申请的句柄资源需要在最后进行释放,最后申请的句柄资源需要在最开始进行释放。释放句柄时均通过XGCIHandleFree()函数完成资源的释放,关于XGCI句柄资源的释放顺序如下所示:
/* 率先释放语句句柄 */
XuguCIHandleFree(hdstmt)
/* 断开会话连接 */
XuguCISessionEnd(hdsess)
/* 释放会话句柄 */
XuguCIHandleFree(hdsess)
/* 释放服务句柄 */
XuguCIHandleFree(hdsvr)
/* 释放环境句柄 */
XuguCIHandleFree(hdenv)

说明:

当父句柄被释放后,任何与其相连的句柄都会被自动释放。如XGCIHandleFree()释放会话句柄时会隐式释放其上关联的所有语句级句柄。当会话自动提交模式设置为非自动提交时,应用程序终止而没有显式的发出提交命令或者带有提交属性的语句(类似create table这类DDL语句),则之前的事务会被自动回滚。