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命令),则用户必须通过对其进行标记来适当地标记该会话。

但是,如果用户请求一个标记的会话并获得一个会话,并且更改了该会话的属性,则用户必须在适当的情况下传递一个不同的标记。

为了正确地使用会话池层,应用程序开发人员必须非常小心地将正确的标记传递给 ACISessionGetACISessionRelease 调用。