cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Gentry <mgen...@masslight.net>
Subject Re: Reconnecting automatically after DB downtime
Date Mon, 07 Mar 2016 20:45:52 GMT
I looked at the built-in Cayenne connection pooling years ago and it was
OK, but I felt a third-party one would be more reliable and handle error
conditions better.  I've always used Apache Commons DBCP with Jetty/Tomcat
and it seems to work fine, but I haven't explored other external providers.


On Mon, Mar 7, 2016 at 3:39 PM, John Huss <johnthuss@gmail.com> wrote:

> EOF can do JNDI, but that's not going to do anything to fix your problem.
>
> The connection pool in cayenne had some changes somewhat recently so it's
> entirely possible there are bugs.
>
> In practice it turns out many people don't use the connection pool built-in
> to Cayenne at all, and rather use a third-party connection pool, of which
> there are several.  The cayenne one is decent, but it is very limited in
> functionality and less robust due to having a smaller user base and being a
> non-core feature.
>
> You can use another pool like:
> hikari <https://github.com/brettwooldridge/HikariCP> - If I was starting a
> new project I'd use this
> tomcat-jdbc <https://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html> -
> This is what I currently use
> commonds-dbcp <https://commons.apache.org/proper/commons-dbcp/>
> c3po <http://www.mchange.com/projects/c3p0/>
>
> The main reason I turned to a third-party connection pool was to get
> fair-scheduling which will provide connections to whoever has been waiting
> the longest, which helps avoid unnecessary errors caused by serving
> requests out of order.
>
> John
>
> On Mon, Mar 7, 2016 at 2:31 PM Michael Gentry <mgentry@masslight.net>
> wrote:
>
> > Well, I'm not sure what you are using to run your web application, but
> > Tomcat, Jetty, JBoss, etc all have mechanisms to provide JNDI lookups of
> DB
> > connection pools.  You just tell Cayenne Modeler to use JNDI lookup and
> > give it the JNDI name, then configure the container to provide the DB
> > connection.
> >
> > Is your WO application using EOF or Cayenne?  Been a while since I used
> WO,
> > but I'd be stunned if EOF cannot use a JNDI lookup as well.
> >
> > mrg
> >
> >
> > On Mon, Mar 7, 2016 at 3:07 PM, Hugi Thordarson <hugi@karlmenn.is>
> wrote:
> >
> > > Hi Michael,
> > > does using JNDI change anything about the connection itself, isn’t it
> > just
> > > a different method of looking up connection information?
> > >
> > > But I probably can’t use it anyway since one of the apps is a
> WebObjects
> > > app and doesn’t provide a JNDI service (at least I’ve never used it).
> > >
> > > Thanks,
> > > - hugi
> > >
> > >
> > > > On 7. mar. 2016, at 19:13, Michael Gentry <mgentry@masslight.net>
> > wrote:
> > > >
> > > > Hi Hugi,
> > > >
> > > > Since this appears to be a web-based application, can you switch to
> > using
> > > > JNDI?
> > > >
> > > > mrg
> > > >
> > > >
> > > > On Mon, Mar 7, 2016 at 5:46 AM, Hugi Thordarson <hugi@karlmenn.is>
> > > wrote:
> > > >
> > > >> Hi all,
> > > >> This is still happening, even after I added a validationQuery, our
> app
> > > is
> > > >> dying quite frequently :(.  I’m not quite sure how to debug this,
is
> > > there
> > > >> any way for me to catch where connections are being opened in the
> code
> > > and
> > > >> at what location they’re hanging?
> > > >>
> > > >>
> > > >>
> > >
> >
> https://www.dropbox.com/s/8jkmh6513s6wwkn/Screenshot%202016-03-07%2010.21.53.png?dl=0
> > > >>
> > > >> Cheer,
> > > >> - hugi
> > > >>
> > > >> // Hugi Thordarson
> > > >> // http://www.loftfar.is/
> > > >> // s. 895-6688
> > > >>
> > > >>
> > > >>
> > > >>> On 29. feb. 2016, at 11:25, Andrus Adamchik <
> andrus@objectstyle.org>
> > > >> wrote:
> > > >>>
> > > >>>
> > > >>>> On Feb 29, 2016, at 2:20 PM, Hugi Thordarson <hugi@karlmenn.is>
> > > wrote:
> > > >>>>
> > > >>>> What does validationQuery do?
> > > >>>
> > > >>> Periodically executes for each pooled connection, and kills
> > connections
> > > >> that throw during validation. So it ensures that all pooled
> > connections
> > > are
> > > >> in a good state.
> > > >>>
> > > >>> Andrus
> > > >>>
> > > >>
> > > >>
> > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message