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 >>>>>>>> >>>>>>> >>>>>>> >>>>> >>>>> >>>> >> >
