lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From eks dev <eks...@yahoo.co.uk>
Subject Re: DataImportHandler using new connection on each query
Date Fri, 02 Sep 2011 08:50:05 GMT
I am not sure if current version has this, but  DIH used to reload
connections after some idle time

if (currTime - connLastUsed > CONN_TIME_OUT) {
			synchronized (this) {
				Connection tmpConn = factory.call();
				closeConnection();
				connLastUsed = System.currentTimeMillis();
				return conn = tmpConn;
			}


Where CONN_TIME_OUT = 10 seconds



On Fri, Sep 2, 2011 at 12:36 AM, Chris Hostetter
<hossman_lucene@fucit.org> wrote:
>
> : However, I tested this against a slower SQL Server and I saw
> : dramatically worse results. Instead of re-using their database, each of
> : the sub-entities is recreating a connection each time the query runs.
>
> are you seeing any specific errors logged before these new connections are
> created?
>
> I don't *think* there's anything in the DIH JDBC/SQL code that causes it
> to timeout existing connections -- is it possible this is sometihng
> specific to the JDBC Driver you are using?
>
> Or maybe you are using the DIH "threads" option along with a JNDI/JDBC
> based pool of connections that is configured to create new Connections on
> demand, and with the fast DB it can reuse them but on the slow DB it does
> enough stuff in parallel to keep asking for new connections to be created?
>
>
> If it's DIH creating new connections over and over then i'm pretty sure
> you should see an INFO level log message like this for each connection...
>
>        LOG.info("Creating a connection for entity "
>                + context.getEntityAttribute(DataImporter.NAME) + " with URL:
"
>                + url);
>
> ...are those messages different against you fast DB and your slow DB?
>
> -Hoss
>

Mime
View raw message