香菜芹菜辣青椒,茄子扁豆嫩蒜苗,好大的黄瓜你们谁要,一个铜子儿拿两条。

2007-02-28

被连接池困扰

今天被连接池的设置困扰很久。

在之前的单元测试中,Service类非常容易的通过了CRUD测试,所有的数据都能够正常存取与数据库。测试扩展了Spring提供的AbstractTransactionalDataSourceSpringContextTests,与应用程序中的一样也是通过AOP获取依赖。

可是今天在Web容器中,忽然发现无法正常往数据库中插入数据,没有报错,断点跟踪进去也一切正常的又跟出来,没有异常。在测试类中prepare了同样的数据,测试通过。怀疑问题可能在Spring Beans配置文件上,把Web容器中的datasource设置换成测试环境的试了一下,果然可以正常操作了。确定问题以后,就着手解决,可是我废了九牛二虎也没搞定Proxool的配置,只要我不在applicationContext.xml中配置dataSource,就无法插入数据。可是即使不配dataSource,配置了sessionFactory也是可以的呀,至少已经能够从数据库读取数据了。这里就有一份用Proxool设置数据库连接池的例子,我就是照着它来的。

换用c3p0再试,也是一样的问题。

最后无奈,在applicationContext.xml加入了dataSource的配置,另加了一个datasource.properties文件,用来参数化一些数据库连接的数据,总算解决问题。但是上面问题的原因我还是没能明白。

在datasource.properties里详细添加了c3p0的config注释,以后直接参考这个就行。

没有评论: