会话池接口
OCISessionPoolCreate
功能描述
初始化用于OCI会话池。
功能说明
初始化用于OCI会话池。
接口信息
函数/过程
OCISessionPoolCreate 语法如下:
sword OCISessionPoolCreate ( OCIEnv *envhp,
OCIError *errhp,
OCISPool *spoolhp,
OraText **poolName,
ub4 *poolNameLen,
const OraText *connStr,
ub4 connStrLen,
ub4 sessMin,
ub4 sessMax,
ub4 sessIncr,
OraText *userid,
ub4 useridLen,
OraText *password,
ub4 passwordLen,
ub4 mode );
具体参数解释如下:
envhp(IN):指向要创建会话池的环境的指针
errhp(IN/OUT):当发生错误时,可以传递给 OCIErrorGet ()用于诊断信息的错误句柄。
spoolhp(IN):指向已初始化的会话池句柄的指针。
poolName(OUT):会话池的名称。
poolNameLen(OUT):会话池的名称的长度。
connStr(IN):要连接到的数据库的TNS别名。
connStrLen(IN):connStr的长度(字节)。
sessMin(IN):指定会话池中的最小会话数。
此数量的会话由OCISessionPoolCreate()启动。会话启动后,仅在必要时打开会话。
当模式设置为OCI_PC_HOMGENOUS时,使用此值。否则,它将被忽略。
sessMax(IN):指定会话池中可以打开的最大会话数。达到此值后,将不再打开会话。有效值为1或更高。
sessIncr(IN):如果当前会话数小于sessMax,则允许应用程序为要启动的会话设置下一个增量。有效值为0或更高。
userid(IN):指定用于启动会话的用户ID。
useridLen(IN):userid的长度(字节)。
password(IN):对应用户ID的密码。
passwordLen(IN):密码的长度(以字节为单位)。
mode(IN):支持的模式有:
- OCI_DEFAULT:用于创建新的会话池。
- OCI_PC_REINITIALIZE:创建会话池后,如果要动态更改池属性(更改sessMin、sessMax和sessIncr参数),请调用OCISessionPoolCreate(),模式设置为OCI_PC_REINITIALIZE。当模式设置为OCI_PC_REINITIALIZE时,将忽略connStr、userid和password。
- OCI_PC_STMTACHE:为会话池创建OCI语句缓存。如果未在打开OCI语句缓存的情况下创建池,则会自动使用服务器端语句缓存。注意,通常情况下,客户端语句缓存提供了更好的性能。
目前OCISessionPoolCreate函数只支持OCI_DEFAULT模式。
其他说明
无
OCISessionPoolDestroy
功能描述
销毁会话池。
功能说明
销毁会话池。
数据相关性
无
接口信息
函数/过程
OCISessionPoolDestroy 语法如下:
sword OCISessionPoolDestroy ( OCISPool *spoolhp,
OCIError *errhp,
ub4 mode );
参数的解释如下:
- spoolhp(IN):要销毁的会话池的会话池句柄。
- errhp(IN/OUT):当发生错误时,可以传递给 OCIErrorGet ()用于诊断信息的错误句柄。
- mode(IN):当前,此功能仅支持OCI_DEFAULT模式。
其他说明
无
OCISessionRelease
功能描述
释放使用OCISessionGet()产生的会话。
功能说明
释放使用OCISessionGet()产生的会话。
数据相关性
无
接口信息
函数/过程
OCISessionRelease 语法如下:
sword OCISessionRelease ( OCISvcCtx *svchp,
OCIError *errhp,
OraText *tag,
ub4 tag_len,
ub4 mode );
参数的解释如下:
- svchp(IN):在相应的OCISessionGet()调用期间填充的服务上下文。
- errhp(IN/OUT):当发生错误时,可以传递给 OCIErrorGet ()用于诊断信息的错误句柄。
- tag(IN):此参数仅用于会话池。除非指定了OCI_SELSSRLS_RETAG模式,否则将忽略此参数。在这种情况下,会话被标记为此标记并返回到池。如果该值为NULL,则会话不会被标记。
- tag_len(IN):此参数仅用于会话池。标记的长度。除非设置了OCI_SELSSRLS_RETAG模式,否则将忽略此选项。
mode(IN):支持的模式有:
- OCI_DEFAULT:对于默认情况和连接池,只能使用OCI_DEFAULT。
- OCI_SESSRLS_DROPSESS:如果指定了OCI_SSLS_DROPESS,则会话将从会话池中删除。
- OCI_SESSRLS_MULTIPROPERTY_TAG
- OCI_SESSRLS_RETAG:当且仅当设置了OCI_SELLS_RETAG时,会话上的标记才会更改。如果未设置此模式,将忽略标记和tag_len参数。
以上模式中:
OCI_SELSLS_DROPESS和OCI_SELLS_RETAG仅用于会话池。
如果标记是多属性标记,则设置OCI_SELSSS_MULTIPROPERTY_TAG。有关详细信息,请参见多属性标记。
目前只支持OCI_DEFAULT模式,此模式下tag为NULL,tagLen为0。
其他说明
无