ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Wolf-Dieter Mische" <Mis...@gmx.at>
Subject Re: Changing the Database at runtime
Date Sun, 22 Jun 2008 20:57:55 GMT
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" <clinton.begin@gmail.com>
> An: user-java@ibatis.apache.org
> 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 <Mische@gmx.at> 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" <clinton.begin@gmail.com>
> >> An: user-java@ibatis.apache.org
> >> 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 <Mische@gmx.at>
> 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/?mc=sv_ext_mf@gmx
> >> >
> >
> > --
> > 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

Mime
View raw message