I didn't name it!  :-)

On Mon, Mar 7, 2016 at 4:19 PM, Andrus Adamchik <[email protected]>
wrote:

> > It looks to me like this makes it much harder to deploy your application
> in
> > development/test/etc type environments since your URL/etc are in the
> code.
>
> Unless you use Bootique, or your own property-based config mechanism.
> "Make jar, not war" :)
>
> Andrus
>
>
> > On Mar 7, 2016, at 1:13 PM, Michael Gentry <[email protected]>
> wrote:
> >
> > Hi Hugi,
> >
> > It looks to me like this makes it much harder to deploy your application
> in
> > development/test/etc type environments since your URL/etc are in the
> code.
> > The advantage of JNDI is you only reference a logical name that is
> > configured external to the WAR, making it much easier to have one build
> > that can be deployed in different environments.  I took a brief glance at
> > Hikari and don't think it includes JNDI natively.
> >
> > mrg
> >
> >
> > On Mon, Mar 7, 2016 at 4:03 PM, Hugi Thordarson <[email protected]>
> wrote:
> >
> >> Well, that was easy! Up and running in production.
> >>
> >> HikariConfig config = new HikariConfig();
> >> config.setJdbcUrl(
> >>
> "jdbc:mysql://server:3306/database?useUnicode=true&characterEncoding=utf8&autoReconnect=true&connectTimeout=0"
> >> );
> >> config.setUsername( “myUsername" );
> >> config.setPassword( “myPassword" );
> >>
> >> HikariDataSource dataSource = new HikariDataSource( config );
> >> serverRuntimeBuilder = serverRuntimeBuilder.dataSource( dataSource );
> >>
> >> Thanks,
> >> - hugi
> >>
> >>
> >>> On 7. mar. 2016, at 20:51, Andrus Adamchik <[email protected]>
> >> wrote:
> >>>
> >>> Yep. Cayenne built-in pool is intentionally basic with a minimal number
> >> of features (Here we may be dealing with a bug though, and I'd like to
> fix
> >> it, but that's a separate issue). So yeah, using a third party DS may
> be a
> >> good idea. Here is an example how you can set it up:
> >>>
> >>> DataSource ds = // instantiate it via API specific to you DS provider
> >>>
> >>> ServerRuntime runtime =
> >> ServerRuntimeBuilder.builder().dataSource(ds).build();
> >>> // of course add any other things you need to add to the builder to get
> >> a working Cayenne stack.
> >>>
> >>> Andrus
> >>>
> >>>
> >>>> On Mar 7, 2016, at 12:45 PM, Hugi Thordarson <[email protected]>
> wrote:
> >>>>
> >>>> Thanks John! I’m going to try my hand at HikariCP.
> >>>>
> >>>> Are there any examples anywhere on how to configure Cayenne to use a
> >> third party connection pool?
> >>>>
> >>>> Cheers,
> >>>> - hugi
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>> On 7. mar. 2016, at 20:39, John Huss <[email protected]> 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 <[email protected]
> >
> >> 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 <[email protected]>
> >> 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 <[email protected]>
> >>>>>> 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 <[email protected]
> >
> >>>>>>> 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 <
> >> [email protected]>
> >>>>>>>>> wrote:
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>> On Feb 29, 2016, at 2:20 PM, Hugi Thordarson <[email protected]
> >
> >>>>>>> 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
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>
> >>>
> >>
> >>
>
>

Reply via email to