ACISessionRelease()¶
-
ACISessionRelease()¶
作用:
释放通过 ACISessionGet 建立的会话,释放方式取决于 ACISessionGet 时的模式
语法:
sword ACISessionRelease ( ACISvcCtx *svchp,
ACIError *errhp,
OraText *tag,
ub4 tag_len,
ub4 mode );
参数:
- svchp (IN)
对应 ACISessionGet 分配的服务器上下文句柄。default模式下,会关闭与该句柄相关的会话,断开连接。连接池模式下,关闭与该句柄相关的会话,放回池中的连接。
- errhp (IN/OUT)
错误句柄,该接口调用失败时,错误信息会存在该句柄上,调用 ACIErrorGet 获得错误信息。
- tag (IN)
此参数仅用于会话池。会话池的标记字符串。字符集必须为环境句柄初始化时指定的字符集。Mode参数为ACI_DEFAULT时将忽略此参数。会话将使用此标记进行标记并返回到池中。 如果为NULL,则不标记会话。
- tag_len (IN)
tag参数的字节长度。
- mode (IN)
- ACI_DEFAULT:只用于连接池
- ACI_SESSRLS_DROPSESS:只用于会话池,设置此模式后,将从会话池中将当前会话删除,当前会话也会被销毁。
- ACI_SESSRLS_RETAG:只用于会话池,设置此模式后,将使用tag参数来标记会话,下次
ACISessionGet时,传入相同的tag就能返回相同的会话。
- ACI_SESSRLS_MULTIPROPERTY_TAG:指明tag是一个多属性的标签。
- ACI_SESSRLS_MULTIPROPERTY_TAG可以和ACI_SESSRLS_RETAG同时使用。
说明:
使用tag参数时,请小心传递正确的标签。 如果请求了默认会话,并且用户在该会话上设置了某些属性(可能通过ALTER命令),则用户必须通过对其进行标记来适当地标记该会话。
但是,如果用户请求一个标记的会话并获得一个会话,并且更改了该会话的属性,则用户必须在适当的情况下传递一个不同的标记。
为了正确地使用会话池层,应用程序开发人员必须非常小心地将正确的标记传递给 ACISessionGet 和 ACISessionRelease 调用。