当前位置: 首页 > 面试题库 >

Spring JDBC连接池最佳实践

昝宜
2023-03-14
问题内容

我有一个具有相当基本配置的基本Spring JDBC应用程序:

<bean id="myDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
   <property name="driverClassName" value="oracle.jdbc.OracleDriver"/>
   <property name="url" value="jdbc:oracle:thin:@1.1.1.1:1521:XXX"/>
   <property name="username" value="username"/>
   <property name="password" value="password"/>
</bean>

<bean id="dbThing" class="com.DbThing">
   <property name="dataSource" ref="myDataSource"/>
</bean>

我想介绍一个连接池,在阅读了SO上的多个线程后,我对使用哪个池库感到有些困惑。

C3P0和DBCP似乎在SO方面具有更多的信誉。由于使用的是Oracle,因此我也可以使用驱动程序提供的池数据源。

我了解还有更多可用的库-例如新的Apache Tomcat 7池库。

我真的应该避免使用任何库吗?

我应该在给定的库中使用任何建议的配置吗?

您想分享任何“战争故事”吗?


问题答案:

C3PO和DBCP的开发停滞主要是因为它们已经成熟。我已经看到这两个驱动程序都能够每秒支持数百个事务。

Tomcat池是经过重新设计和更新的DBCP驱动程序。MyBatis
3.0还包含它自己的池实现,基于代码检查,它看起来很可靠。最后,还有声称拥有最佳性能的BoneCP。我还没有在项目中使用任何这些。

最好的建议可能是选择其中任何一个对其进行测试。Spring使以后可以轻松换出。



 类似资料:
  • 问题内容: 在厌倦了c3p0的恒定锁定之后,我将转向BoneCP作为数据库的备用连接池。我有一个服务器应用程序,每分钟处理大约7,000个项目,需要将这些项目记录到我们的MySQL数据库中。我目前有100个工作线程,并按如下方式设置了我的池: 这些应用程序是否接受这些设置?我问是因为运行一两分钟后,在尝试调用池时出现BoneCP异常。谢谢您的帮助。 这是我在工作线程中用于db调用的代码,它不会在网

  • 问题内容: 目前,我们正在使用带有8gb RAM的4个cpu窗口框,并在同一框上安装了MySQL5.x。我们正在为应用程序使用Weblogic应用程序服务器。我们的应用程序目标是200个并发用户(显然不是同一模块/屏幕)。那么,我们应该在连接池中配置的最佳连接数是多少(最小和最大数)(我们正在使用weblogic AS的连接池机制)? 问题答案: 这个问题有一个非常简单的答案: 连接池中的连接数应

  • 我最感兴趣的是以下属性的最优值: 了解的最优值将是非常好的。连接池设置有大量其他选项,希望得到有关它们对应用程序性能影响的任何建议。

  • 问题内容: 好的,这是那些自以为是的主题之一,但是根据您的知识,见解和当前实践,设置以下方案的最佳方法是什么? 我正在构建一个广泛的数据输入应用程序,而从广义上来说,我的意思是我只有基本设置,它包含了整个程序的约15%至25%,并且我大约有15个表单是部分设置的。(他们仍然需要工作)我使用SQL Compact 4.0作为后端数据库,因为我没有存储MMO的大量数据,所以我实际上并不需要更扩展的数据

  • 我试图了解如何最好地设计基于IIS/ASP.NET的websocket应用程序,特别是关于并发限制。 我已经阅读了关于“并发Websocket连接”以及如何调整各种值的所有IIS/ASP.NET文献--但是,当谈到websockets时,“并发”的定义是什么?如果我打开了一个websocket,并且它处于空闲状态,这是在“使用”连接吗?空闲websockets是否计入连接使用总数,或者只在发送/接

  • 问题内容: 我在GlassFish上有一个Java-JSF Web应用程序,我想在其中使用连接池。因此,我创建了一个有范围的Bean,可与其他Bean的实例一起使用: 这样,连接池很快就会被填满。在“ db-related”视图中进行几次导航后,应用程序将停止以下操作: RAR5117:无法从连接池[mysql_testPool]获取/创建连接。原因:使用中的连接等于最大池大小和已过期的最大等待时