You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-java@ibatis.apache.org by Niels Beekman <n....@wis.nl> on 2005/08/15 20:29:47 UTC

RE: ThrottledPool handing

Adam,

 

Can you simulate what happens when

 

> t.execute(this.sqlMapClient)

 

throws an exception, so before you explicitly close the session?

 

Niels

 

________________________________

From: Clinton Begin [mailto:clinton.begin@gmail.com] 
Sent: maandag 15 augustus 2005 19:19
To: user-java@ibatis.apache.org
Subject: Re: FW:

 


Why does it take a minute to get a connection?  With a connection pool,
it should literally be milliseconds....

Clinton

On 8/15/05, Adam Gugliciello <Ad...@emeta.com> wrote:

Under a heavy sustained load, the sqlmaps ThrottledPool seems to start
to bind, the the vast majority of them binding up and blocking waiting
to build a new session, and stay blocked long after the fact, even days
after the request has been abandoned. Any help would be appreciated, and
I am attaching a thread dump.

 

My code looks like:

 

 private void executeSqlMapTemplate(SqlMapTemplate t) throws
SQLException
    {
        final Connection c =
 
this._dbPool.borrowConnection("QuestionnaireCustomerApi",
                        1 * 60 * 1000l); // Waits a minute for a
connection
        if (c == null)
        {
            throw new IllegalStateException("Unable to retrieve JDBC
Connection from db pool.");
        }
        try
        {
            SqlMapSession sess=this.sqlMapClient.openSession(c);
            t.execute(this.sqlMapClient);
            sess.close();

 

        }
        finally
        {

 

            this._dbPool.returnConnection(c);
        }
    }