DAO 's factory is right or not! URGENT 2004-07-15 - By Ben Hill
Back Manish,
He made the same point as I did:
* You are adding a DAO into a map.
* There will only be one instance in that map.
If you're load testing and the app is hanging, this architecture won't help in the slightest. The code you sent to this list has not much at all to do with a DAO pattern. It's a slightly contrived Singleton which is probably not what you want in a multi-threaded application. I suspect you're getting a little confused.
Cheers,
Ben
> -- --Original Message-- -- > From: Manish Malhotra [mailto:manish.mmalhotra@(protected)] > Sent: 15 July 2004 11:45 > To: J2EE-INTEREST@(protected) > Subject: Re: DAO's factory is right or not! URGENT > > > Jaise, > Can you please explain me from the code which I sent that is > there any flaw regarding synchrnization issue in the DAO > code. And if you all remeber I mailed you regading the > application is hanged when I had done load testing. And in > the DAO arch. I sent is what Im using in this application. > > So, cusrious to know the flaws in this architecture (DAO). > > regards, > Manish > > > -- --Original Message-- -- > From: A mailing list for Java(tm) 2 Platform, Enterprise > Edition [mailto:J2EE-INTEREST@(protected)]On Behalf Of Jaise George > Sent: Thursday, July 15, 2004 3:38 PM > To: J2EE-INTEREST@(protected) > Subject: Re: DAO's factory is right or not! URGENT > > > Hi, > > I am not fully convinced by Manish's approach. I would say > the Map he is implementing is neither a cache nor a pool. > Because both pool and cache will have more than one > instances. Manish's implementation can more precisely be > called as a Sigleton Pool. And I feel that whatever advantage > he gets by not instantiating a DAO everytime, is lost due to > the synchronization that he has to take care in his DAO. I > doubt you will end up in tackling synchronisation later. > > Regards > Jaise > > -- --Original Message-- -- > From: A mailing list for Java(tm) 2 Platform, Enterprise > Edition [mailto:J2EE-INTEREST@(protected)] On Behalf Of > Manish Malhotra > Sent: Thursday, July 15, 2004 3:17 PM > To: J2EE-INTEREST@(protected) > Subject: Re: DAO's factory is right or not! URGENT > > > Thanks Ben, > > Means I can implement something like connection / thread pool > for DAO's. And yes you are right that there is no performance > by DAO caching. But just the Factory pattern I intorduced. So > that there wod be less dependency between Beans & DAO's. > > And Im not able to identify the methods of DAO which needs to > be synchropnized. Ir there any property which I need to look > in to the methods to identify. > > Im calling som private methods also in DAO and passing the > connection object from one methods to another. Is there any > issue in this? > > Manish > > -- --Original Message-- -- > From: A mailing list for Java(tm) 2 Platform, Enterprise > Edition [mailto:J2EE-INTEREST@(protected)]On Behalf Of Ben Hill > Sent: Thursday, July 15, 2004 3:00 PM > To: J2EE-INTEREST@(protected) > Subject: Re: DAO's factory is right or not! URGENT > > > > -- --Original Message-- -- > > From: Manish Malhotra [mailto:manish.mmalhotra@(protected)] > > Sent: 15 July 2004 10:16 > > To: HILL, Ben -Syntegra UK > > Subject: RE: DAO's factory is right or not! URGENT > > > > > > Ben, > > > > We have implemented the Data Access Object pattern to access the > > interact with data base. And to get the different DAO > objects we used > > DAO factory. > > > > So, my issue is that we are maintaining cache of DAO objects in the > > factory. And using the same object for multiple request. > > You're storing the DAO in a map, but there will only be one > instance of the DAO in there - therefore you're not really > adding any performance improvement over a regular singleton. > If you make a call to > getBankOverrideDAO() and the map does not have a DAO in > there, one will be instantiated and put into the map. Each > consecutive call on > getBankOverrideDAO() will then return this instance as it > will be able to find it in the map. You *may* have some > threading issues with the DAO but just make sure any methods > that need to be are synchronized. > > If you really wished to maintain a pool of DAOs, you'd more > likely have a list of many DAOs that you could serve out in > (an example of one of may > strategies) a round-robin method. In this method, you'd > create a pool of DAOs by instantiating them all and adding > them to a list. When a request comes in, you would give them > the "next" DAO. When you have served the next DAO, you'd > increment the pointer to point at the DAO behind that one in > the list. Again, this is just a round-robin example. You > could get much more clever and implement load-balancing > algorithms etc. > > You may also wish to think about how the pool of DAOs grows > and shrinks to deal with load. You could have an initial pool > size, then if that pool is fully used, increase the pool by > adding more instances in. Then, if load decreases; shrink the > DAOs again to free DB connections... There is lots to work with... > > HTH > > Ben > > > > > > So, Is this implementation is ok with point of view PERFORMANCE. > > > > Or what I found on net for this pattern is they are creating new > > Object of DAO every time in the Factory where, Im creating > only once > > and then using the same. > > > > I hope this will clear my question > > > > Thanks & Regards, > > Manish Malhotra > > > > -- --Original Message-- -- > > From: ben.hill@(protected) [mailto:ben.hill@(protected)] > > Sent: Thursday, July 15, 2004 2:29 PM > > To: manish.mmalhotra@(protected) > > Subject: RE: DAO's factory is right or not! URGENT > > > > > > > > > > > -- --Original Message-- -- > > > From: Manish Malhotra [mailto:manish.mmalhotra@(protected)] > > > Sent: 15 July 2004 09:55 > > > To: J2EE-INTEREST@(protected) > > > Subject: DAO's factory is right or not! URGENT > > > > > > > > > Im again sending this query because no body has replied > yet. I need > > > some help as early as possible. > > > > > > What exactly are you asking? > > > > Cheers, > > > > Ben > > > > > > ******************************************************************** > > > > This email may contain information which is privileged or > > confidential. If you are not the intended recipient of this email, > > please notify the sender immediately and delete it without reading, > > copying, storing, forwarding or disclosing its contents to > any other > > person Thank you > > > > Check us out at http://www.btsyntegra.com > > > > ******************************************************************** > > > > > ******************************************************************** > > This email may contain information which is privileged or > confidential. If you are not the intended recipient of this > email, please notify the sender immediately and delete it > without reading, copying, storing, forwarding or disclosing > its contents to any other person Thank you > > Check us out at http://www.btsyntegra.com > > ******************************************************************** > > =============================================================> =========> ==> To unsubscribe, send email to listserv@(protected) and > include in the body of the message "signoff J2EE-INTEREST". > For general help, send email to listserv@(protected) and > include in the body of the message "help". > > =============================================================> =========> ==> To unsubscribe, send email to listserv@(protected) and > include in the body of the message "signoff J2EE-INTEREST". > For general help, send email to listserv@(protected) and > include in the body of the message "help". > > =============================================================> ============> To unsubscribe, send email to listserv@(protected) and > include in the body of the message "signoff J2EE-INTEREST". > For general help, send email to listserv@(protected) and > include in the body of the message "help". > > =============================================================> ============> To unsubscribe, send email to listserv@(protected) and > include in the body of the message "signoff J2EE-INTEREST". > For general help, send email to listserv@(protected) and > include in the body of the message "help". >
********************************************************************
This email may contain information which is privileged or confidential. If you are not the intended recipient of this email, please notify the sender immediately and delete it without reading, copying, storing, forwarding or disclosing its contents to any other person Thank you
Check us out at http://www.btsyntegra.com
********************************************************************
==========================================================================To unsubscribe, send email to listserv@(protected) and include in the body of the message "signoff J2EE-INTEREST". For general help, send email to listserv@(protected) and include in the body of the message "help".
|
|