Cayenne is pretty easy. In Cayenne Modeler, under the DataNode configuration, select the JNDI DataSource Factory option and give it a name like "jdbc/myDataSource".
Configuring Tomcat/Jetty/etc is a bit harder, but plenty of examples out there. Which container are you using? On Mon, Mar 7, 2016 at 3: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 > >>>>>> > >>>>> > >>>>> > >>> > >>> > >> > >
