数据库链接池的应用

链接池应该说是一种思想,一种让资源合理化利用的思想。链接池解决的问题以下:  
      1.java和数据库创建链接时比较耗时的问题    
      2.数据库链接创建过多容易死机的问题    
      3.每一个链接不能充分利用的问题    
连 接池适合多线程,大量重复的操做数据库项目。链接池的思想是这样的,当你的程序一启动,首先创建必定数目的链接,将链接放置在一个数据结构中,就如同方在 一个池子中同样,当有第一个线程须要访问数据库的时候,从池子中取出一个链接,分配给这个线程,这个线程经过这个链接去访问数据库,使用完毕后,不是关闭 链接,而是将其放回到池子中。再有线程须要的时候再从池子中拿出一个链接。通常来讲池子中有多少链接就能够知足多少线程同时访问数据库。若是同时须要的连 接太多,链接池中的链接不够,则根据策略生成新的链接。通常链接池都会有上限,达到上限时就再也不创建新的链接,主要是防止链接过多致使机器资源耗尽死机, 此时若是链接池中没有链接,可是仍有线程等待链接则让这些线程继续等待,直到有其余线程用完链接并放置回链接池。以上是链接池的基本思想,比较好的链接池 好须要有其余技术来保证链接池的稳定性和性能。    
  weblogic的链接池配置好之后,在你的项目中须要使用JNDI来得到DataSource的实例来访问数据库,网上有不少这样的文章,能够找找。    
前面说了链接池通常用于多个线程大量重复的操做数据库项目,特别是B/S模式或者C/S模式的多客户基于数据库的系统。因此不论j2ee或者j2se只要知足这个条件都是有必要使用链接池的    
代码就不给了,这个地方贴不下,网上能够down到java

当应用程序请求一个链接时,链接池为该应用程序分配一个链接而不是从新创建一个链接;当应用程序使用完链接后,该链接被归还给链接池而不是直接释放。  
如何实现链接池    
确保你每一次的链接使用相同的链接字符串(和链接池相同);只有链接字符串相同时链接池才会工做。若是链接字符串不相同,应用程序就不会使用链接池而是建立一个新的链接。    
优势    
使 用链接池的最主要的优势是性能。建立一个新的数据库链接所耗费的时间主要取决于网络的速度以及应用程序和数据库服务器的(网络)距离,并且这个过程一般是 一个很耗时的过程。而采用数据库链接池后,数据库链接请求能够直接经过链接池知足而不须要为该请求从新链接、认证到数据库服务器,这样就节省了时间。    
缺点    
数据库链接池中可能存在着多个没有被使用的链接一直链接着数据库(这意味着资源的浪费)。    
技巧和提示    
1. 当你须要数据库链接时才去建立链接池,而不是提早创建。一旦你使用完链接当即关闭它,不要等到垃圾收集器来处理它。    
2. 在关闭数据库链接前确保关闭了全部用户定义的事务。    
3. 不要关闭数据库中全部的链接,至少保证链接池中有一个链接可用。若是内存和其余资源是你必须首先考虑的问题,能够关闭全部的链接,而后在下一个请求到来时建立链接池。    
链接池FAQ    
1. 什么时候建立链接池?    
当第一个链接请求到来时建立链接池;链接池的创建由数据库链接的链接字符创来决定。每个链接池都与一个不一样的链接字符串相关。当一个新的链接请求到来时若是链接字符串和链接池使用的字符串相同,就从链接池取出一个链接;若是不相同,就新建一个链接池。    
2. 什么时候关闭链接池?    
当链接池中的全部链接都已经关闭时关闭链接池。    
3. 当链接池中的链接都已经用完,而有新的链接请求到来时会发生什么?    
当链接池已经达到它的最大链接数目时,有新的链接请求到来时,新的链接请求将放置到链接队列中。当有链接释放给链接池时,链接池将新释放的链接分配给在队列中排队的链接请求。你能够调用close和dispose将链接归还给链接池。    
4. 我应该如何容许链接池?    
对于.NET应用程序而言,默认为容许链接池。(这意味着你能够没必要为这件事情作任何的事情)固然,若是你能够在SQLConnection对象的链接字符串中加进Pooling=true;确保你的应用程序容许链接池的使用。    
5. 我应该如何禁止链接池?    
ADO.NET默认为容许数据库链接池,若是你但愿禁止链接池,可使用以下的方式:    
1) 使用SQLConnection对象时,往链接字符串加入以下内容:Pooling=False;    
2) 使用OLEDBConnection对象时,往链接字符串加入以下内容:OLE DB Services=-4;web

相关文章
相关标签/搜索