Archief - Hibernate en webapplicaties (session)

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Enira

Legacy Member
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?

forloRn_

Legacy Member
'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".

Moto

Legacy Member
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 :p

Moto

Legacy Member
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 ...
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan