OCI编程高级篇(十八) OCI连接池概念

数据库连接池已经不是新概念了,它以有限的连接让外部更多的客户来访问数据库,一般用于中间服务器中,OCI也有连接池的概念。OCI的连接池是由OCI自己管理的,不需要应用干预,程序通过函数从连接池中得到一个会话,通过会话操作数据库,然后通过函数释放会话,会话被连接池回收,供给其他访问使用。

OCI的连接池也是有局限性的,由于连接池在进程中创建,所以连接池中的会话只能本进程下的线程才能共享,连接池不能跨进程使用。如果要跨进程使用,需要用到驻存连接池,它由数据库来管理,需要调整数据库设置,在数据库层级创建连接池。

我们在这里讨论OCI的连接池,也就是进程内共享的连接池。使用连接池的步骤如下。

1. 创建OCI环境句柄,创建错误句柄。

2. 创建连接池句柄,使用OCI_HTYPE_CPOOL从环境句柄创建。

3. 创建连接池,使用函数OCIConnectionPoolCreate()。

4. 各个线程从连接池得到会话,使用函数OCILogon2()或者OCISessionGet()。

5. 线程通过会话进行数据库的DML或查询操作。

6. 线程操作完数据库,释放会话到连接池,使用函数OCILogoff()或者OCISessionRelease()。

7. 删除连接池,使用函数OCIConnectionPoolDestroy()。

8. 释放连接池句柄。

9. 释放掉环境句柄。

下一节我们介绍用到的函数原型,写一个完整的代码来演示如何使用连接池。

你可能感兴趣的:(oracle,数据库,数据库开发)