JNDI连接池 【1】

来源:互联网 发布:气体比热容比实验数据 编辑:程序博客网 时间:2024/06/03 22:38

    最近做的一个项目用到的数据库服务器是在美国,访问起来很慢 >300ms,  功能很简单,就是一个显示,批量更改。很快我先把代码实现出来,批量更新上千条数据时,这个速度大家应该都知道是什么样吧,如牛一般。这时我想到了连接池,上学时也学过,但是因为当时都是在本机上测的,访问速度<1ms,体现不出效果,所以也没什么体会。这次遇到这个问题,采用了JNDI连接池,效果很明显,让我完全体验到了连接池的好处。

先说一下什么是连接池:

     服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。我们程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。

     

    普通电话,先连接,再通话

 

   热线电话,已经建立了连接,直接通话

   

 

连接池中的连接示意图:

 

数据库连接池的主要操作如下:

     (1)建立数据库的连接池对象(服务器启动时)。

  (2)创建初始数量的数据库连接(即:空闲连接数)。

  (3)对于一个数据库访问请求,直接从连接池中得到一个连接。如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的数据库连接。

  (4)存取数据库。

  (5)关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放连接)。

  (6)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接)。

 

 

 

 

 

 

 

原创粉丝点击