Heavy JavaBean (FormBean) > > Session scope > > Performance 2005-09-21 - By Mich Hagdishovich
Back
We store heavy javabeans (actually very heavy javabeans) in session all the time. We dont have any performance problem, since we clear the session once the user leaves that particular module. JSPs and servlets don't have any concept of modules, only page (request) or user session (session). However, applications do need that concept of module, and it is much more efficient to store the object (Model or Value) in the session, while the user is roaming around in that module.
Our framework (built on top of Struts) essentially has in gates for all modules , and when you enter a module, all session info is cleared before loading the data for this module. That info stays there, until you enter another module. Add to this some routine flushing if needed, and you are good to go.
And to people who said sessions cant scale, may be true, but depends because the tradeoff is between session memory size, and frequent DB hits. For our application, we found DB hits were more expensive, of course for your app you may find situation bit different, depending upon object sizes and query performance (DB normalization/size/network).
hope that helps,
Mich Hagdishovich Unique Genetics Newsletter http://www.kromonews.com Genetics Software http://www.kromosoft.com Enjoy, Learn and Grow -- -- Original Message -- -- From: "Jayaraman, Jayakumar" <jayakumar.jayaraman@(protected)> To: <J2EEPATTERNS-INTEREST@(protected)> Sent: Wednesday, September 21, 2005 2:57 AM Subject: Re: Heavy JavaBean (FormBean) >> Session scope >> Performance
Thanks a lot for the information. Cheers, Jay
-- --Original Message-- -- From: An interest list for Sun Java Center J2EE Pattern Catalog [mailto :J2EEPATTERNS-INTEREST@(protected)]On Behalf Of R Riluvan Sent: Tuesday, September 20, 2005 4:25 PM To: J2EEPATTERNS-INTEREST@(protected) Subject: Re: Heavy JavaBean (FormBean) >> Session scope >> Performance
"I would like to know the effect of adding a heavy form bean in session scope of a JSP. Heavy bean means lets assume, around 200 fields of data type String is in the bean." -- there is session serialization consequences, measure the size of the bean when no values populated and when if it is fully populated.
-- Is this risking unnecessorily caching of values which might not be needed accross session.
-- Keep the session size to be optimal.
We are thinking of one single bean for a entire module, instead of multiple beans to avoid plenty of codes to transfer data from one bean to other bean. -- This will be like mixing apple and orange in one basket. You could use components such as beanutils from apache to populate values from one bean to another, provided taken care when naming of accessor methods in the form beans.
-- Managing such bean would be complex, also would affect scalability of the form bean.
---- Rizwan
__ __
From: "Jayaraman, Jayakumar" <jayakumar.jayaraman@(protected)> Reply-To: An interest list for Sun Java Center J2EE Pattern Catalog ==================================================================== Companion Site: http://www.corej2eepatterns.com J2EE BluePrints: http://java.sun.com/blueprints/corej2eepatterns List Archive: http://archives.java.sun.com/archives/j2eepatterns-interest.html Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to listserv@(protected)
==================================================================== Companion Site: http://www.corej2eepatterns.com J2EE BluePrints: http://java.sun.com/blueprints/corej2eepatterns List Archive: http://archives.java.sun.com/archives/j2eepatterns-interest.html Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to listserv@(protected)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=Content-Type content="text/html; charset=iso-8859 (See http://iso-8859.ora-code.com)-1"> <META content="MSHTML 6.00.2900.2722" name=GENERATOR> <STYLE></STYLE> </HEAD> <BODY> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>We store heavy javabeans (actually very heavy javabeans) in session all the time. We dont have any performance problem, since we clear the session once the user leaves that particular module. JSPs and servlets don't have any concept of modules, only page (request) or user session (session). However, applications do need that concept of module, and it is much more efficient to store the object (Model or Value) in the session, while the user is roaming around in that module.</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>Our framework (built on top of Struts) essentially has in gates for all modules, and when you enter a module, all session info is cleared before loading the data for this module. That info stays there, until you enter another module. </FONT><FONT face=Arial size=2>Add to this some routine flushing if needed, and you are good to go.</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>And to people who said sessions cant scale, may be true, but depends because the tradeoff is between session memory size, and frequent DB hits. For our application, we found DB hits were more expensive, of course for your app you may find situation bit different, depending upon object sizes and query performance (DB normalization/size/network).</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>hope that helps,</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>Mich Hagdishovich<BR>Unique Genetics Newsletter </FONT><A href="http://www.kromonews.com"><FONT face=Arial size=2>http://www.kromonews.com</FONT></A><BR><FONT face=Arial size=2>Genetics Software </FONT><A href="http://www.kromosoft.com"><FONT face=Arial size=2>http://www.kromosoft.com</FONT></A><BR><FONT face=Arial size=2>Enjoy, Learn and Grow</FONT></DIV> <DIV><FONT face=Arial size=2> </FONT></DIV> <DIV><FONT face=Arial size=2>-- -- Original Message -- -- </FONT> <DIV><FONT face=Arial size=2>From: "Jayaraman, Jayakumar" <</FONT><A href="mailto:jayakumar.jayaraman@(protected)"><FONT face=Arial size=2>jayakumar.jayaraman@(protected)</FONT></A><FONT face=Arial size=2>></FONT></DIV> <DIV><FONT face=Arial size=2>To: <</FONT><A href="mailto:J2EEPATTERNS-INTEREST@(protected)"><FONT face=Arial size=2>J2EEPATTERNS-INTEREST@(protected)</FONT></A><FONT face=Arial size=2>></FONT></DIV> <DIV><FONT face=Arial size=2>Sent: Wednesday, September 21, 2005 2:57 AM</FONT></DIV> <DIV><FONT face=Arial size=2>Subject: Re: Heavy JavaBean (FormBean) >> Session scope >> Performance</FONT></DIV></DIV> <DIV><FONT face=Arial><BR><FONT size=2></FONT></FONT></DIV><FONT face=Arial size=2>Thanks a lot for the information.<BR> <BR>Cheers,<BR>Jay<BR><BR>-- --Original Message-- --<BR>From: An interest list for Sun Java Center J2EE Pattern Catalog [mailto:J2EEPATTERNS-INTEREST@(protected)]On Behalf Of R Riluvan<BR>Sent: Tuesday, September 20, 2005 4:25 PM<BR>To: </FONT><A href="mailto:J2EEPATTERNS-INTEREST@(protected)"><FONT face=Arial size=2>J2EEPATTERNS-INTEREST@(protected)</FONT></A><BR><FONT face=Arial size=2>Subject: Re: Heavy JavaBean (FormBean) >> Session scope >> Performance<BR><BR><BR><BR>"I would like to know the effect of adding a heavy form bean in session scope of a JSP.<BR>Heavy bean means lets assume, around 200 fields of data type String is in the bean."<BR>-- there is session serialization consequences, measure the size of the bean when no values populated and when if it is fully populated. <BR><BR>-- Is this risking unnecessorily caching of values which might not be needed accross session. <BR><BR>-- Keep the session size to be optimal.<BR><BR><BR>We are thinking of one single bean for a entire module, instead of multiple beans to avoid<BR>plenty of codes to transfer data from one bean to other bean.<BR>-- This will be like mixing apple and orange in one basket. You could use components such as beanutils from apache to populate values from one bean to another, provided taken care when naming of accessor methods in the form beans.<BR><BR>-- Managing such bean would be complex, also would affect scalability of the form bean.<BR><BR>---- Rizwan<BR><BR><BR><BR><BR> __ __ <BR><BR>From: "Jayaraman, Jayakumar" <</FONT><A href="mailto:jayakumar.jayaraman@(protected)"><FONT face=Arial size=2>jayakumar.jayaraman@(protected)</FONT></A><FONT face=Arial size=2>><BR>Reply-To: An interest list for Sun Java Center J2EE Pattern Catalog <BR>====================================================================<BR >Companion Site: </FONT><A href="http://www.corej2eepatterns.com"><FONT face=Arial size=2>http://www.corej2eepatterns.com</FONT></A><BR><FONT face=Arial size=2>J2EE BluePrints: </FONT><A href="http://java.sun.com/blueprints/corej2eepatterns"><FONT face=Arial size=2>http://java.sun.com/blueprints/corej2eepatterns</FONT></A><BR><FONT face=Arial size=2>List Archive: </FONT><A href="http://archives.java.sun.com/archives/j2eepatterns-interest.html"><FONT face=Arial size=2>http://archives.java.sun.com/archives/j2eepatterns-interest.html</FONT>< /A><BR><FONT face=Arial size=2>Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to </FONT><A href="mailto:listserv@(protected)"><FONT face=Arial size=2>listserv@(protected)</FONT></A><BR></BODY></HTML> ==================================================================== Companion Site: http://www.corej2eepatterns.com J2EE BluePrints: http://java.sun.com/blueprints/corej2eepatterns List Archive: http://archives.java.sun.com/archives/j2eepatterns-interest.html Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to listserv@(protected)
|
|