论坛首页 入门讨论版 Spring

Spring中多数据库的配置

浏览 194 次
该帖已经被评为新手帖
作者 正文
最后更新时间:2008-07-23
情况是这样的:
应用服务器要连接20个数据库,只有1个Postgres数据库是可写的,其余19个Mysql都是只读的。
原来的方案是用XAPool,和Global transaction Manager,管理所有的data source,但连接Postgres数据库时经常扔出链接错误的Exception。
考虑到只有一个数据库可写,于是改用DBCP做data source,配置了一个JDBC transaction manager,管理指向Postgres的data source,其余data source没有配Transaction Manager。发现这样配服务器速度快了很多。
问题出在服务器跑一段时间后,就会发生连接不上Mysql数据库。推测是因为连接池耗尽引起的。查了一下Spring的资料,发现JDBCTemplate在没有transaction manager的情况下应该自己会管理connection。只能推测因为有一个Transaction Manager(针对Postgres的,注入到Manager层,所有的DAO都受其管理),所以jdbctemplate放弃了对connection的管理,而那个Transaction manager 只能管Postgres的连接,导致Mysql的连接没人管。
由于对Spring的机理不熟,以上纯属猜测。有谁能解惑一下?或给个方案?
多谢多谢
   
最后更新时间:2008-07-24
DBCP中的data source默认的最大连接数是8,把maxActive设置为-1或者一个更大的数,应该就可以了
   
0 请登录后投票
论坛首页 入门讨论版 Spring

跳转论坛:
JavaEye推荐