ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From De Gaetano Giuseppe <degaet...@PITAGORA.IT>
Subject R: SqlMapClient multithread applications
Date Tue, 14 Jul 2009 13:17:05 GMT
Hi all,
after 2.5 years of production my application starts to have some problem.
Here is the error that I am experiencing

--- The error occurred while applying a parameter map.
--- Check the Foo.bar-InlineParameterMap.
--- Check the statement (query failed).
--- Cause: java.sql.SQLException: Closed Connection

My application is performing some crud operation. In order to speed-up I decided to use an
Hashtable to store SqlMapClient. The previous error appears if the number of running threads
increases.

Otherwise I don't have any problem if I do not use any cache for SqlMapClient.

Any suggestion?

Thanks to all in advance
Giuseppe De Gaetano

-----Messaggio originale-----
Da: De Gaetano Giuseppe [mailto:degaetano@pitagora.it]
Inviato: venerdì 5 gennaio 2007 16.39
A: user-java@ibatis.apache.org; lmeadors@apache.org
Oggetto: R: SqlMapClient multithread applications

Hi, may be I wasn't clear enough.

With concurrency I meant2 threads each doing the following operations:
1. Start transaction.
2. insert row
3. insert another row
4. commit/rollback transaction

In this situation is the transaction isolation guaranteed?

> Is there any best practice? == speed up application end avoid loading every time the
same config files

-----Messaggio originale-----
Da: larry.meadors@gmail.com [mailto:larry.meadors@gmail.com] Per conto di Larry Meadors
Inviato: venerdì 5 gennaio 2007 16.19
A: user-java@ibatis.apache.org
Oggetto: Re: SqlMapClient multithread applications

On 1/5/07, De Gaetano Giuseppe <degaetano@pitagora.it> wrote:
> If the application is multithread and each thread uses the same client will
> I have some problem?

Should be fine.

>
> Is the iBatis engine handling the concurrency or should I care?

What type of concurrency? If two threads update the same row in the
database, the last one in wins. iBATIS does not and will not likely
ever deal with that sort of thing.

> Is there any best practice?

Sorry if i am being dense, but for what?

Larry

________________________________________
Da: De Gaetano Giuseppe [mailto:degaetano@pitagora.it]
Inviato: venerdì 5 gennaio 2007 14.23
A: user-java@ibatis.apache.org
Oggetto: SqlMapClient multithread applications

Hi,
I am coding a java multithread application.
In my application I have the following object which needs to load the configuration files
from a path not specified in the classpath end build an SqlMapClient.
The Hashtable is used for:
*       cache the clients and avoid the building of a new SqlMapClient every time;
*       speed up the application avoiding to load and parse the different config files every
time

public class SqlMapClientConfig {
    private static Hashtable clients;

    static{
            clients = new Hashtable();
    }

    private SqlMapClientConfig(){

    }

    public Object clone() throws CloneNotSupportedException {
        throw new CloneNotSupportedException();
    }


    public static SqlMapClient getClient(String db, String usecase,) {
        String key =  db + "." + usecase;
        String path = "/dat/" + db + "/" + usecase;


        if(clients.containsKey(key))
            return (SqlMapClient) clients.get(key);
        else{
            Loader loader = new Loader(path);
            Resources.setDefaultClassLoader(loader);
            Reader reader = null;
        try {
             reader = Resources.getResourceAsReader (loader, "sql-map-config.xml");
         } catch (IOException e) {
             e.printStackTrace();
         }
         SqlMapClient sqlMap = null;

         sqlMap = (SqlMapClient) SqlMapClientBuilder.buildSqlMapClient(reader);

         clients.put(key,sqlMap);
         return sqlMap;
        }
    }
}

If the application is multithread and each thread uses the same client will I have some problem?
Is the iBatis engine handling the concurrency or should I care?

Is there any best practice?



---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
For additional commands, e-mail: user-java-help@ibatis.apache.org


Mime
View raw message