Chris Lamey wrote: > > That should work ok, that Map could get modified at servlet init time. >
Drat, doesn't appear to, at least not how I've written it. I think there are two problems - first, the map is already set by the time my servlet gets created and a call to setTargetDataSources will not overwrite it. Second, the map is String to String, rather than a key to a dataSource name. But I don't know how to give my dataSource a name in the context when it doesn't come from a config file. Here's what I did - maybe I did something stupid: my bean def: <bean id="mediusDataSource" class="MediusRoutingDataSource"> <property name="targetDataSources"> <map> <entry key="medius1" value-ref="mediusSource" /> <entry key="medius2" value-ref="oldSource" /> </map> </property> </bean> public class MediusRoutingDataSource extends AbstractRoutingDataSource { protected static boolean didOnce = false; @Override protected Object determineCurrentLookupKey() { if (didOnce) return "xxxMedius"; else { didOnce = true; return "medius2";} } } test code: public void testGetBanPoliciesFromDifferentSource() { BanPolicyManager mgr = (BanPolicyManager)ctx.getBean("banPolicyDAO"); System.out.println(mgr.fetchBanPolicies()); // uses 'medius2' datasource, returns empty list BasicDataSource newDS = new BasicDataSource(); newDS.setUsername("psanders"); newDS.setUrl("jdbc:oracle:thin:@toad002:1521:sid"); newDS.setPassword("psanders"); newDS.setDriverClassName("oracle.jdbc.driver.OracleDriver"); MediusRoutingDataSource mds = (MediusRoutingDataSource)ctx.getBean("mediusDataSource"); // some code omitted to create a Map<String, BasicDataSource> routingMap.put("xxxMedius", newDS); // add new datasource to the routing map mds.setTargetDataSources(routingMap); System.out.println(mgr.fetchBanPolicies()); // now uses 'xxxMedius' datasource // exception raised java.lang.IllegalStateException: Cannot determine target DataSource for lookup key [xxxMedius] } -- View this message in context: http://www.nabble.com/How-can-I-change-datasource-connect-info-on-the-fly-w-iBATIS-and-Spring--tf3573169.html#a10047766 Sent from the iBATIS - User - Java mailing list archive at Nabble.com.