[c3p0-users] Handling Multiple Databases
Status: Beta
Brought to you by:
swaldman
From: Norman E. <nor...@gm...> - 2009-06-11 17:06:13
|
I've got an application that connects to one of a series of database servers. I need to programmatically say, "drop all your connections and change to server X". So far, I see two methods to accomplish this: - Somehow make a ConnectionFactory-esque class that generates connections to the "active" server. I'm not entirely sure how this would integrate into c3p0. From there, I could call a softReset whenever the "active" server changes. Some sort of ConnectionChecker could reinforce this. - Use multiple, stand-alone instances of ComboPooledDataSource, each connecting to a single server. My application would draw a connection from whichever pool was "active". The first implementation seems the cleanest, since there wouldn't be redundancy in the helper threads, etc. But I'm a little foggy on where to start. Would I generate multiple DriverManagerDataSources, then a single WrapperConnectionPoolDataSource, and using setNestedDataSource to swap out the "active" datasource? The second implementation is more straight-forward. But how much penalty am I incurring by managing two to four concurrent ComboPoolDataSources? Thanks! Norman |