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