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);
}
}