struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yaragalla Muralidhar <yaragallamur...@gmail.com>
Subject Re: synchronization problem
Date Sun, 10 Apr 2016 05:37:11 GMT
thank you Doug Erickson. I will look into other areas and will check where
the problem is. Thank you so much.

*Thanks and Regards,*
Muralidhar Yaragalla.

*http://yaragalla.blogspot.in/ <http://yaragalla.blogspot.in/>*

On Sun, Apr 10, 2016 at 11:02 AM, Doug Erickson <erickson@part.net> wrote:

> The code you've shown won't allow simultaneous executions of the DAO
> method. Either you've left some important details out of the sample, or you
> have other code accessing the DAO.
>
> This has nothing to do with Struts. The synchronization is implemented in
> lower layers.
>
> > On Apr 9, 2016, at 8:11 PM, Yaragalla Muralidhar <
> yaragallamurali@gmail.com> wrote:
> >
> > hi,
> >  if you look at my code in the service class i have written a
> synchronized
> > block. what i am asking is, whether my code does the synchronization
> > properly or does it have to be changed?
> >
> > I know that struts2 creates a new action class per thread. so there is
> > every possibility that two threads can execute the same service layer
> > method at a time. I want to avoid that so i have written synchronized
> block
> > in my service class as shown in my first post.
> >
> > *Thanks and Regards,*
> > Muralidhar Yaragalla.
> >
> > *http://yaragalla.blogspot.in/ <http://yaragalla.blogspot.in/>*
> >
> > On Sat, Apr 9, 2016 at 11:18 PM, Sreekanth S. Nair <
> > sreekanth.nair@egovernments.org> wrote:
> >
> >> Struts2 won't make your custom class threadsafe unless your code is
> >> threadsafe, synchronized(this) or synchronized method can be used in
> your
> >> service implementation if you think your service class is not
> threadsafe.
> >> Usually Service or DAO layer should be written threadsafe, don't know
> about
> >> your DAO or Service is threadsafe to make a clear comment on it. Action
> >> classes are thread safe since it creates new instance per request.
> >>
> >>
> >> --------------------
> >>
> >> On Sat, Apr 9, 2016 at 10:06 PM, Yaragalla Muralidhar <
> >> yaragallamurali@gmail.com> wrote:
> >>
> >>> Hi,
> >>>
> >>>     I have developed a web application using struts 2. In my struts 2
> >>> action class i am calling the service layer and written the
> >> synchronization
> >>> code as below in the service layer. Does this really gets synchronized?
> >> Is
> >>> there any problem in my synchronization code?
> >>>
> >>>
> >>>
> >>> *The following is my action class:-*
> >>>
> >>>
> >>>
> >>> public class AbcAction extends ActionSupport{
> >>>
> >>>     private AbcService ser=new AbcServiceImpl(); //AbcService is an
> >>> Interface
> >>>
> >>>
> >>>
> >>>     public String execute(){
> >>>
> >>>     ser.createNewRegistration();
> >>>
> >>>     return "SUCCESS";
> >>>
> >>>     }
> >>>
> >>>
> >>>
> >>> }
> >>>
> >>>
> >>>
> >>> *The following is my service Impl class:-*
> >>>
> >>>
> >>>
> >>> public class AbcServiceImpl implements AbcService{
> >>>
> >>> private AbcDao dao=new AbcDaoImpl();
> >>>
> >>>
> >>>
> >>> public void  .createNewRegistration(){
> >>>
> >>> synchronized(AbcServiceImpl.class){
> >>>
> >>> dao.createTheRegistration();
> >>>
> >>> }
> >>>
> >>> }
> >>>
> >>> }
> >>>
> >>>
> >>>
> >>> by writing the above code i assume that no two threads can run the
> >>> "dao.createTheRegistration()"
> >>> method at the same time. but when we analyze the logs i observed this
> is
> >>> not happening. Two threads are able to execute the method at the same
> >> time.
> >>> What is the problem in my code?
> >>>
> >>>
> >>>
> >>> *Thanks and Regards,*
> >>> Muralidhar Yaragalla.
> >>>
> >>> *http://yaragalla.blogspot.in/ <http://yaragalla.blogspot.in/>*
> >>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message