如何在delphi7+oracle9上使用oracle的连接池技术(100分)

  • 主题发起人 主题发起人 青云
  • 开始时间 开始时间

青云

Unregistered / Unconfirmed
GUEST, unregistred user!
一开始都是习惯用Ado 连接Oracle ,但是AdoConnection 连接上oracle 后,就不能<br>把 AdoConnection.Connected 设置成false,因为一旦设置,就会把AdoQuery关闭。<br>但是这样每启动一个程序,就多一个连接,这样很浪费oracle的资源;<br><br>后来我渐渐习惯用 DbExpress+TClientDataSet 连接oralce,一旦访问数据库后,就设置<br>SqlConnection.Connectd:=false;这样做的优点是节约了连接资源,但是每次访问数据库都要启动连接,可能会消耗更多的时间。<br>&nbsp;oracle里有连接池技术,也就是说,如果客户端连接资源释放了,Oracle内部并不一定释放,只是把它“悬空”,下次再用时,oracle会自动把“悬空”的连接给这个客户端,而不是再重新创建一个连接,这样便节约了时间。<br><br>不知道有没有方便的方法在delphi下实现和oracle的连接池处理;<br>看到一个案例:<br>http://www.programsalon.com/downloads59/sourcecode/delphi_control/detail207185.html<br>我没有下载,不知道有用否。<br><br>希望研究过此技术的兄弟,大家探讨一下。
 
http://liwei.csdn.net/Forum/topic.aspx?topicid=1692
 
连接池可以自己写个类处理的啊,我看过JAVA写的
 
使用 ODAC 控件,里面的 TOraSession 内置池化功能。
 
oracle的MTS,目标是为了增加吞吐量,而不是节约资源<br><br>如果要在应用服务层控制数据库连接数,需要自行实现连接池
 
重新建立连接才是最昂贵的操作,所以一个面向大型应用的系统,应该是以避免重新建立连接,以及不要为每一个客户端访问建立一个连接的。这也是多层应用当中采用的方式,要有一个连接池对象,用来提供与数据库之间的连接,然后应用逻辑对象通过连接池对象存取数据(应用逻辑对象不直接连接数据库)。<br>如果你的系统在可预计的生命周期里不可能超过200个并发访问,那么可以不考虑多层架构,否则的话应该考虑以多层架构来构建系统。
 
后退
顶部