As Andrew pointed out, you are probably using a class level (member)
variable.

Can you move this to the execute method and retest?

Also, you should seriously consider what Sri has posted as well.

James Mitchell
Software Engineer/Struts Evangelist
http://www.open-tools.org

"Only two things are infinite, the universe and human stupidity, and I'm not
sure about the former."
- Albert Einstein (1879-1955)


> -----Original Message-----
> From: Dan Bunea [mailto:danbunea@;linksystems.ro]
> Sent: Monday, October 28, 2002 9:18 AM
> To: 'Struts Users Mailing List'
> Subject: RE: Huge action instance synchronization problem
>
>
>
> Thank you, but what happens if I set the execute method from the action
> synchronized? I did that and it works fine. I have also run some tests
> to see if performance drops but it did not.
>
> -----Original Message-----
> From: Sri Sankaran [mailto:Sri.Sankaran@;sas.com]
> Sent: Monday, October 28, 2002 4:13 PM
> To: Struts Users Mailing List
> Subject: RE: Huge action instance synchronization problem
>
> It is good practice to have a delegate class that handles all business
> logic.  This will not only ensure that you don't run into problems such
> as you state but also de-couples your business logic from the Struts
> framework -- which *should* be used only for controlling your
> presentation.
>
> public class SomeAction extends Action {
>   public void execute(...) {
>     Delegate delegate = new Delegate(...);
>     delegate.execute(...);
>   }
> }
>
> The delegate is responsible for all business operations including (any)
> database calls.
> Also make sure that your action class doesn't have any instance
> variables and only stack-resident method scope variables.  The delegate
> should have all the information that would be needed.  This way sessions
> don't step on each other.
>
> Sri
>
> -----Original Message-----
> From: Dan Bunea [mailto:danbunea@;linksystems.ro]
> Sent: Monday, October 28, 2002 3:14 AM
> To: [EMAIL PROTECTED]
> Cc: 'Craig R. McClanahan'
> Subject: Huge action instance synchronization problem
>
>
>
> My problem: I have a search action. When 2 (or more) users submit the
> search form simultaniously, because the seach usually takes about 1-2
> seconds, the same action instance is rethrieved to complete the search
> and sessions are combined like this: the action makes the search for the
> first session but does not finish until the second search is performed
> and because the resultset is divided into pages and this divisation is
> stored into session, both pages with results are put in the second
> session, and the second user shall be dispalyed the correct results but
> the first shall have null pointer exception because in his session there
> is no object representing the divisation of the resultset on pages.
>
> The problem in my opinion is because the same action instance performs
> the same task for the 2 users and so the sessions are combined, which is
> a huge problem, because like this every method of an action (dispatch
> action) that takes a while to complete shall have the same problem.
>
> Please advise me how to solve this problem.
> Thank you ,
> Dan Bunea
>
> PS Dear Craig , I am sorry to bother you but this problem is very
> urgent, as the project is in final stages and this is a potentially huge
> problem.  I have read that each action is instantiated only once in the
> RequestProcessor and for each request the action is rethrieved and its
> methods executed, but I have also read that this is not synchronized.
>
>
> --
> To unsubscribe, e-mail:
> <mailto:struts-user-unsubscribe@;jakarta.apache.org>
> For additional commands, e-mail:
> <mailto:struts-user-help@;jakarta.apache.org>
>
>
> --
> To unsubscribe, e-mail:
<mailto:struts-user-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail:
<mailto:struts-user-help@;jakarta.apache.org>



--
To unsubscribe, e-mail:   <mailto:struts-user-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:struts-user-help@;jakarta.apache.org>

Reply via email to