manifoldcf-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Karl Wright <daddy...@gmail.com>
Subject RE: Health Check of database connections
Date Fri, 22 May 2015 19:42:52 GMT
Hi,

I am out of town until Monday.

However, can you describe what this integration is supposed to
accomplish? Mcf has a connection pool already that meets its needs.

If there is a way in jdbc to refresh a generic jdbc connection, I am
happy to integrate that. So far I haven't found any generic way to do
it though.

As for tests, you are correct that our test is intended to exercise the
functionality in mcf, not in the jdbc drivers.

Karl

Sent from my Windows Phone
From: Rüdiger Kurz
Sent: 5/22/2015 1:47 PM
To: user@manifoldcf.apache.org
Subject: Re: Health Check of database connections
Hi Karl,

I've prototyped the integration of the HikariCP JDBC connection pool
[1]. For details you can have a look at the attached file
ConnectionFactory.java.

There are two additional dependencies needed in order to get this run:

 >    <dependency>
 >        <groupId>com.zaxxer</groupId>
 >        <artifactId>HikariCP-java6</artifactId>
 >        <version>2.3.8</version>
 >        <scope>compile</scope>
 >    </dependency>
 >    <dependency>
 >        <groupId>org.javassist</groupId>
 >        <artifactId>javassist</artifactId>
 >        <version>3.18.1-GA</version>
 >        <scope>runtime</scope>
 >    </dependency>

To get this well done, I would like to change the initialization of the
data source into the following style:

 >    HikariConfig config = new HikariConfig("some/path/hikari.properties");
 >    HikariDataSource ds = new HikariDataSource(config);

At least I would like to make sure this core changes do work stable. Do
you see any gaps or issues with this approach? Which test essential
cases do I need to run?

BTW: I think the test case RSSFlakyHSQLDBIT switches between an
"exception"-mode and a "non-exception"-mode, but does not turn off the
database and restarting it. So all the connections within the pool will
be alive anyways. Very likely I've missed something important, so please
correct me, if my assumption is wrong. I'm new to ManifoldCF ;-)

-Rüdiger

[1] https://github.com/brettwooldridge/HikariCP


On Thu, May 21, 2015 at 1:47 PM, Karl Wright <daddywri@gmail.com> wrote:

 > I should also mention that I've done *precisely* the test you
 > describe against PostgreSQL -- shutting the database down in the
 > middle of a crawl, and restarting it.  Everything works fine in that
 > case -- the PostgreSQL JDBC driver seems quite able to reestablish
 > connections that have gone stale.  It's just MySQL that doesn't do it
 > properly, apparently.
 >
 > Karl
 >
 >
 > On Thu, May 21, 2015 at 6:49 AM, Karl Wright <daddywri@gmail.com>
 > wrote:
 >
 >> The test is:
 >>
 >> RSSFlakyHSQLDBIT
 >>
 >> It's one of the RSS connector tests, and simulates database
 >> interruption by way of a replacing the HSQLDB database instance with
 >> one that generates database errors when told to.
 >>
 >> Karl
 >>
 >>
 >> On Thu, May 21, 2015 at 6:02 AM, <Ruediger.Kurz@deutschebahn.com>
 >> wrote:
 >>
 >>> Hi Karl,
 >>>
 >>> could you please point us to the test case class, that checks the
 >>> reconnect capabilty?
 >>>
 >>> Thanks in advance!
 >>> -Rüdiger

Mime
View raw message