Just embed Jetty in your application...
On Mon, Mar 7, 2016 at 5:18 PM, Lon Varscsak <[email protected]> wrote: > OT: I’m planning to build jar not war…now I’m not sure how to deploy. :P > > -Lon > > On Mon, Mar 7, 2016 at 2:27 PM, Hugi Thordarson <[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. > > > > Yeah, I see what you mean. We use a homebuilt property system for that > > which returns configuration based on environment. It’s not JNDI but > works :) > > > > > Unless you use Bootique, or your own property-based config mechanism. > > > > Is bootique worth checking out? I’m just noticing it now for the first > > time and so happens I’m looking into a new basis for our web > services/APIs > > (current favorite being spark framework). > > > > > "Make jar, not war" :) > > > > Ha ha ha :) > > > > - hugi > > > > > > > > > >> 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 > > >>>>>>>>>>> > > >>>>>>>>>> > > >>>>>>>>>> > > >>>>>>>> > > >>>>>>>> > > >>>>>>> > > >>>>> > > >>>> > > >>> > > >>> > > > > > > > >
