Another approach is to have your application create an instance for each session that will retrieve the mail for that session. Just ensure that the resource you are accessing can handle it, or you will have problems either way. (Note I am approaching this from a programming view. I am not familar with JavaMail yet.)
Not much different than what Albert proposes, just changes where you split the tree in the process. Doug Parsons www.parsonstechnical.com ----- Original Message ----- From: "Yu, Albert" <[EMAIL PROTECTED]> To: "'Tomcat Users List'" <[EMAIL PROTECTED]> Sent: Monday, February 09, 2004 2:23 PM Subject: RE: Servlet thread safety in Tomcat > > If you implement the SingleThreadModel interface for your Servlet class, > TomCat will create a new instance for each request. > > Albert > > -----Original Message----- > From: kwirirai [mailto:[EMAIL PROTECTED] > Sent: Monday, February 09, 2004 2:12 PM > To: Tomcat Users List > Subject: Re: Servlet thread safety in Tomcat > > But if I am to synchronise my code blocks won't that slow done the > application, or is there a "mode" that you can put Tomcat into so that > it will create a new instance > servlet thread with its own variables and execution space and stuff > like that .Because I was thinking putting all those synchronized blocks > will slow down the app. > > David Ramsey wrote: > > >Your primary mistake seems to be in assuming that Tomcat will create a > >new instance of a servlet for every thread started. This is not what > >happens, therefore servlet instance variables are not thread safe > >unless you take additional actions to make them safe. Likewise, > >application global entities, such as singletons, won't be thread safe > >without taking additional actions on your part. The short rule is > >simply if two threads might access this data concurrently, then you > >need to protect yourself from such a collision. About the only thing > >that is mostly thread safe are objects whose scope is limited to a > >single method, but even these can get you in trouble if you put > >references to those objects in global locations (such as an application > >wide cache). > > > > > >--- kwirirai <[EMAIL PROTECTED]> wrote: > > > > > >>The app is simply meant to grab some mails from a pop server and > >>simply > >>display it using Java Mail. > >>I realise part of my mistake is using global variables > >>,unsynchronized > >>collections and unsynchronized code blocks.I am not using the single > >>thread model. > >>My initial thought ( :-) forgive me its some time since I have coded > >> > >>servlets) was that Tomcat will create a new servlet instance that is > >>totally independed of the other, for each request.On testing the app > >>on > >>two client machines I have realized that the data is corrupted all > >>mixed > >>up and my velocity template is throwing an error caused by > >>concurrent > >>modification. > >>My question is there some way of making this app thread safe and also > >> > >>how does Tomcat actually many requests , in terms of the threading > >>method used?I am using Tomcat 4.1 > >> > >> > >>Shapira, Yoav wrote: > >> > >> > >> > >>>Howdy, > >>>State your specific requirements and we can help you design > >>>servlets/objects that will meet those requirements. Your original > >>> > >>> > >>post > >> > >> > >>>is too broad to solicit a detailed response. > >>> > >>>Yoav Shapira > >>>Millennium ChemInformatics > >>> > >>> > >>> > >>> > >>> > >>> > >>>>-----Original Message----- > >>>>From: kwirirai [mailto:[EMAIL PROTECTED] > >>>>Sent: Monday, February 09, 2004 12:48 PM > >>>>To: [EMAIL PROTECTED] > >>>>Subject: Servlet thread safety in Tomcat > >>>> > >>>>Hi All > >>>>I am developing an application that uses JavaMail.What I am > >>>> > >>>> > >>concered is > >> > >> > >>>>the issue of thread safety,and efficiency.My question is do I need > >>>> > >>>> > >>to > >> > >> > >>>>employ synchronized blocks in my Servlet code or is there another > >>>> > >>>> > >>way > >> > >> > >>>> > >>>> > >>>> > >>>> > >>>to > >>> > >>> > >>> > >>> > >>>>implement thread safety.I have been experimenting with the > >>>> > >>>> > >>application > >> > >> > >>>>and I have seen that the data is actualy mixing up.I realy need to > >>>> > >>>> > >>now > >> > >> > >>>>how Tomcat handles request and issues those request ,this is in > >>>>connection with threading. I have thought about the single thread > >>>> > >>>> > >>model > >> > >> > >>>>in my servlets but I think this is an inefficient method to use. > >>>> > >>>>Thanks > >>>>Kwiri > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>--------------------------------------------------------------------- > >>> > >>> > >>>>To unsubscribe, e-mail: [EMAIL PROTECTED] > >>>>For additional commands, e-mail: > >>>> > >>>> > >>[EMAIL PROTECTED] > >> > >> > >>>> > >>>> > >>>> > >>>> > >>> > >>> > >>>This e-mail, including any attachments, is a confidential business > >>> > >>> > >>communication, and may contain information that is confidential, > >>proprietary and/or privileged. This e-mail is intended only for the > >>individual(s) to whom it is addressed, and may not be saved, copied, > >>printed, disclosed or used by anyone else. If you are not the(an) > >>intended recipient, please immediately delete this e-mail from your > >>computer system and notify the sender. Thank you. > >> > >> > >>> > >>> > >>--------------------------------------------------------------------- > >> > >> > >>>To unsubscribe, e-mail: [EMAIL PROTECTED] > >>>For additional commands, e-mail: [EMAIL PROTECTED] > >>> > >>> > >>> > >>> > >>> > >>> > >> > >> > > > > > >__________________________________ > >Do you Yahoo!? > >Yahoo! Finance: Get your refund fast by filing online. > >http://taxes.yahoo.com/filing.html > > > >--------------------------------------------------------------------- > >To unsubscribe, e-mail: [EMAIL PROTECTED] > >For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]