ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Clinton Begin" <clinton.be...@gmail.com>
Subject Re: Changing the Database at runtime
Date Sun, 22 Jun 2008 22:06:06 GMT
If you think it's a bug, zip up a failing unit test and attach it to a
JIRA request.

Cheers,
Clinton

On Sun, Jun 22, 2008 at 2:57 PM, Wolf-Dieter Mische <Mische@gmx.at> wrote:
> 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