-
27-04-2011, 04:45 #1
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
-
-
27-04-2011, 08:29 #2Member
- 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
-
27-04-2011, 12:59 #3Member
- 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
-
27-04-2011, 13:19 #4Member
- 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
-
27-04-2011, 15:48 #5
Die doet het em blijkbaar:
Open Session in View | Hibernate | JBoss Community
danke
no votes

