连接池和JNDI是两个概念,
连接池是在服务器端保持一定数量的连接,在客户端申请连接时抽取一个实例化。连接断开以后服务器不一定马上删除它,有可能把他放回连接池,等待下次申请。
而JNDI是JAVA名字与目录调用的缩写。

解决方案 »

  1.   

    给分了
    恩,谢谢你的回答~~不过上面的那个程序使用的是oracle自带的API来实现Pool,按照你这么说上面那段程序和通过JNDI(DNS)来实现连接池的那种做法的效果是一样的?
      

  2.   

    看来我得回答有歧义,JNDI是一种服务,它即可以为数据库连接池提供服务,也可以为消息、对象...等提供服务,在服务器端一般有Naming.bind()这类代码,他的作用是将JNDI目录名于一个对象捆绑(不过很多应用服务器在你配置好JNDI目录名后自动实现这一步),这样在客户端就可用Naming.lookup()获得Stub,然后用它获得对服务器上远程对象的操作...内容太多,难以尽述,这内服务大多基于rmi的,你看看着个就明白了。
      

  3.   

    我想问一下,connect_pool中是否可以使用datasource,我的概念有点糊涂。
      

  4.   

    我猜你想问的是使用app server建立的connection pool和自己用代码编写connection pool有什么不同对吧,我个人认为如果app server做得好,比方说weblogic,它所实现的connection pool性能已经非常好,但有不少做得不好的,比方说JRun,最好就自己写实现connection pool的代码,就像你上边所写的那样使用Oracle提供的api来实现。
    还有一点就是JNDI标示一个connection pool这样的机制可以使你连接不同的数据库时只修改app server上的设置而不用改变任何代码。
    这样的回答你满意吗