1. #1

    Registered
    04/10/10
    Location
    Gem
    Posts
    374
    iTrader
    0
    Mentioned
    2 Post(s)
    Reputation
    0/16

    Hibernate en webapplicaties (session)

    Bon, ik zit dus met een technisch probleempje in verband met database connections en hibernate. Ik gebruik een GlassFish server, met Hibernate om de gegevens weg te schrijven en C3P0 (grappige naam ik weet het) om ervoor te zorgen dat de connectie met mijn MySQL server niet verdwijnt Anders verdwijnt mijn MySQL server na x uur, zelfs opnieuw verbinding maken met if(!session.isConnected()) { ...blah... } helpt niet, dus ik ga er van uit dat ik dit component zeker nodig heb.

    Vroeger liet ik in mijn applicatie een session gewoon openstaan. Dit was aangenaam omdat ik zo gebruik kon maken van LazyLoading. Echter wanneer ik begon te experimenteren met enorm veel records (gemiddeld zo'n 4 miljoen per tabel) begon C3P0 steeds meer en meer deadlocks te genereren. Wat ik raar vond want ik voerde enkel een select uit. Ik had gemerkt dat als ik mijn sessies sloot na het lezen van de data dat deze deadlocks niet meer aanwezig waren, maar hierdoor verloor ik alles van lazy loading.

    Echter heb ik nooit geleerd wat de beste oplossing is voor dit specifiek probleem. Is er iemand die al zulke ervaring heeft en mij kan zeggen hoe ik correct en concreet mijn database verbinding kan managen/programmeren?
    Last edited by Enira; 27-04-2011 at 04:55.
    no votes  

  2. #2
    forloRn_'s Avatar
    Registered
    23/11/03
    Location
    Landeurp
    Posts
    1,791
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    10/17
    't Is niet de bedoeling dat je Sessions open laat staan. Sessions zijn kortstondige "units of work". Ik ben zelf geen expert (ik ben er nog steeds niet in geslaagd om volledig door Java Persistence With Hibernate te raken), maar ik zou eens googelen op "open session in view".
    no votes  

  3. #3
    Moto's Avatar
    Registered
    17/07/02
    Location
    Wilrijk
    Posts
    1,994
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    9/16
    ben .net programmeur dus...

    Denk dat sessies binnen (n)hibernate best per request zijn, dus zeker geen session met 1 of andere hack openhouden
    Maw dus zoals forloRn_ zei
    no votes  

  4. #4
    Moto's Avatar
    Registered
    17/07/02
    Location
    Wilrijk
    Posts
    1,994
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    9/16
    Dit was aangenaam omdat ik zo gebruik kon maken van LazyLoading.
    Echter wanneer ik begon te experimenteren met enorm veel records.

    Veel Data <> Lazy Loading

    Als ge veel data hebt moet ge uw lazy loading strategy wel aanpassen, zien dat ge ook geen N+1 selects hebt, enz enz

    Beste is om geen Hibernate te gebruiken, maarja ...
    no votes  

  5. #5

    Registered
    04/10/10
    Location
    Gem
    Posts
    374
    iTrader
    0
    Mentioned
    2 Post(s)
    Reputation
    0/16
    Quote Originally Posted by forloRn_ View Post
    This quote is hidden because you are ignoring this member. Show
    't Is niet de bedoeling dat je Sessions open laat staan. Sessions zijn kortstondige "units of work". Ik ben zelf geen expert (ik ben er nog steeds niet in geslaagd om volledig door Java Persistence With Hibernate te raken), maar ik zou eens googelen op "open session in view".
    Die doet het em blijkbaar:
    Open Session in View | Hibernate | JBoss Community

    danke
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in