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 Adam Gugliciello <Ad...@emeta.com> on 2005/08/15 19:31:51 UTC

RE: ThrottledPool hanging

It doesn't actually take a minute to get the connection, it's just a safe and reasonable timeout.

________________________________

From: Clinton Begin [mailto:clinton.begin@gmail.com]
Sent: Mon 8/15/05 1:19 PM
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);
	        }
	    }