hm... currently I separated the creation in a parameterless function and getting the same result. before I calling the function I do this: ((SimpleDataSource)sqlMap.getDataSource()).forceCloseAll(); sqlMap = null; System.gc(); createNewInstance();
The logging says: SimpleDataSource forcefully closed/removed all connections. So it looks like that the connections are closed. There must be some remaining object in ibatis. greetz wolle -------- Original-Nachricht -------- > Datum: Sun, 22 Jun 2008 14:15:57 -0600 > Von: "Clinton Begin" <[EMAIL PROTECTED]> > An: [email protected] > Betreff: Re: Changing the Database at runtime > It does pool connections, but it's per SqlMapClient instance, so: > > sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader, props); > > Would result in a new instance that had its own connection pool. > Nothing magical here... so double check that you're using the right > instance everywhere. > > One other thing though, this isn't an intended use for iBATIS -- to be > creating SqlMapClient instances like this. You might want to force > close all of the connections from the pool. If you're using > SimpleDataSource, you can do so like this: > > ((SimpleDataSource)sqlMap.getDataSource()).forceCloseAll(); > > Clinton > > On Sun, Jun 22, 2008 at 2:04 PM, Wolf-Dieter Mische <[EMAIL PROTECTED]> wrote: > > It doesn't work. I also tried it with a second properties file. It seems > to me that ibatis caches the connection or something. > > > > Any other suggestions? > > > > greetz > > wolle > > > > > > -------- Original-Nachricht -------- > >> Datum: Sun, 22 Jun 2008 13:53:16 -0600 > >> Von: "Clinton Begin" <[EMAIL PROTECTED]> > >> An: [email protected] > >> Betreff: Re: Changing the Database at runtime > > > >> Properties props = Resources.getResourceAsProperties(propfile); > >> > >> That line uses the classloader to load the props file. It's likely > >> caching the first time you load it. > >> > >> Try using a FileReader instead. > >> > >> Clinton > >> > >> On Sun, Jun 22, 2008 at 1:21 PM, Wolf-Dieter Mische <[EMAIL PROTECTED]> > wrote: > >> > Hello, > >> > > >> > in my current project I have to change the database at runtime. Does > >> anybody do this before? I found some information on spring and ibatis, > but in > >> my case I have a simple java application. > >> > > >> > I tried it with changing a properties file and creating a new > >> SqlMapClient, but he always uses the old database. > >> > > >> > heres my code: > >> > > >> > String propfile = "com/mydom/ibatis.properties"; > >> > Properties props = > Resources.getResourceAsProperties(propfile); > >> > > >> > String sqlmap = "./src/com/mydom/SqlMapConfig.xml"; > >> > Reader reader = new FileReader(sqlmap); > >> > SqlMapClient sqlMap = > >> SqlMapClientBuilder.buildSqlMapClient(reader, props); > >> > > >> > //doing some inserts, etc. > >> > > >> > props.setProperty("url", > >> "jdbc:mysql://localhost:3306/otherdatabase"); > >> > sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader, props); > >> > > >> > //doing some inserts, etc > >> > > >> > Any ideas? > >> > > >> > greetz > >> > wolle > >> > -- > >> > GMX startet ShortView.de. Hier findest Du Leute mit Deinen > Interessen! > >> > Jetzt dabei sein: http://www.shortview.de/[EMAIL PROTECTED] > >> > > > > > -- > > Psssst! Schon vom neuen GMX MultiMessenger gehört? > > Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger > > -- Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger
