Download the "Spring in Production" white paper

Adrian Colyer

We recently hosted a webinar on the theme of "Spring in Production." I promised then to make the recording of the webinar and accompanying slides available on our website. Unfortunately the engineers producing the webinar for us forgot to set the 'record' flag, so I need to re-record the session for you :( . I'm traveling at the moment but I'll try to do that and make it available as soon as I can.

The good news is that there's no need for you to miss out in the meantime. I wrote a white paper on the topic of "Spring in Production" that covers the material from the webinar and more besides. This white paper is available right now for download.

In the white paper I describe Spring from the runtime perspective: there's lots of documentation available on Spring's programming and configuration models, but very little written to date that explains what Spring does at runtime and how it manages the request processing pipeline. You'll learn about the Spring kernel and the enterprise services layer that sits on top of it, and how these co-operate to manage Spring-powered applications. My favorite part of the white paper though is the section on tuning Spring-powered applications. I asked many of my colleagues at Interface21 for their hints and tips on how to get the most out of a Spring-powered application in a production setting, and this priceless advice is distilled into over 25 recommendations and suggestions. In this part of the white paper you will:

  • learn how to establish an effective blueprint for your application that takes full advantage of your deployment platform
  • discover many tips for creating effective application designs in both OLTP and batch scenarios, and
  • pick up some great ideas on exposing configuration data through JMX and for integrating statistics into your testing

I encourage you to download a copy of the white paper now and let us know what you think. Interface21 white papers are freely available, but we do ask that you register your interest first. What are your hints and tips for putting Spring-powered applications into production?

Similar Posts

Share this Post
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • DZone
  • LinkedIn
  • Slashdot
  • Technorati
  • TwitThis
 

7 responses


  1. great job Adrian!


  2. I have read the white paper, liked it, and agreed 98% of it. Thanks for releasing it :-)

    But here comes that 2% I don't agree with (until you convince me ;-) ):

    >

    Isn't this like stating that "Open Session in View" is some kind of anti-pattern? Or with that word "transaction" you mean "business logic read/write transaction"?

    I mean: in my opinion, if we assume that painting some tags in a JSP is a very light operation and that we are not exporting some kind of one-thousand-lines unbuffered listing (which is the true scenario 90% of times), the *real* cost of web rendering will only come from SELECT queries on the database triggered from, for example, navigating some lazy associations in the view layer.

    But we navigate these data because we need it to be shown, and are going to query for it anyways, be it while painting the view or before, at the controller or even business logic. So we won't really save in query time if we do queries before painting the view (okay, we can have wrongly configured lazy fetching settings). Even more, the business logic will certainly *not* be the place to do those view-helping queries as they are exclusively read-only and thus will perform better in a read-only transaction…

    So, could you explain a little further on this topic? Are you really dismissing Open Session In View? If so… why?

    Thanks for your work, and for sharing it.

    Regards,
    Daniel.


  3. Oops, seems that less-than signs did not get escaped in my previous comment. The text I was quoting was:

    —-
    · Don't underestimate the cost of web content rendering. You definitely want to do this outside of a transaction.
    —-

    Sorry for the mess,
    Daniel.


  4. Technically, Spring's Open Session in View support does not use a resource transaction but rather only uses auto-commit mode for any data access during view rendering (i.e. equivalent to short read-committed transactions for each such lazy loading statement).

    So Adrian's point applies: Resource transactions should only be used for the controller part of the request lifecycle, not during view rendering. Of course, your point applies as well: Open Session in View style lazy loading is still fine during such view rendering!


  5. [quote comment="63754"]Technically, Spring's Open Session in View support does not use a resource transaction but rather only uses auto-commit mode for any data access during view rendering (i.e. equivalent to short read-committed transactions for each such lazy loading statement).

    So Adrian's point applies: Resource transactions should only be used for the controller part of the request lifecycle, not during view rendering. Of course, your point applies as well: Open Session in View style lazy loading is still fine during such view rendering![/quote]

    However, if the controller part of the request lifecycle throws a HibernateOptimisticLockingException, then lazy loading fails during the view rendering (LazyInitializationException). Surely it is better to start a read-only transaction around the view rendering, hence avoiding this problem?

    [However, I have not yet found a simple way of doing that - my current approach involves implementing a custom ViewResolver which returns proxy Views which take care of the read-only transactions..... any neater ideas would be appreciated!]


  6. Hi
    I can't able to download the white paper.Please provide any other link to download.


  7. Yeah, a working link would be nice.

3 trackbacks

Leave a Reply