http://www.eclipse.org/jetty/documentation/current/embedding-jetty.html
(sent too soon) On Mon, Mar 7, 2016 at 5:30 PM, Michael Gentry <[email protected]> wrote: > 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 >> > >>>>>>>>>>> >> > >>>>>>>>>> >> > >>>>>>>>>> >> > >>>>>>>> >> > >>>>>>>> >> > >>>>>>> >> > >>>>> >> > >>>> >> > >>> >> > >>> >> > > >> > >> > >> > >
