> > I have an issue that I am hoping one of you can help me out with.
> The issue is caused when more than one user logs in
> > with a few tenths of a second of each other. This happens maybe
> once every few weeks on a high volume application.
> > The problem is with user information getting mixed up when
> authenticating.
> >
> > As you can see from the code below the authenticate component is
> called right before setting the session username.
> > The authenticate component does all the basic checks and returns the
> user info. In these rare instances the
> > session.RetAuth.username and all the info returned from the
> component are for another user that is logging in at the same
> > time.
> >
> >
> > if(NOT IsDefined("APPLICATION.oUser")){
> > APPLICATION.oUser=CreateObject("component",
> "#APPLICATION.G.CFC_PATH#User");
> > }
> > APPLICATION.oUser.DSN=this.DSN;
> >
> > Login,form.Password)>
> >
>
> This is a race condition issue. You can solve it by implementing
> locking, either around this code or perhaps within your component.
>
> Dave Watts, CTO, Fig Leaf Software
> http://www.figleaf.com/
> http://training.figleaf.com/
>
> Fig Leaf Software is a Veteran-Owned Small Business (VOSB) on
> GSA Schedule, and provides the highest caliber vendor-authorized
> instruction at our
Dave,
I already have a lock in the component, I create a unique uuid on each request
for the lock. Did not solve the problem. Might try a lock around the entire
login code.
~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion
Archive:
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:349711
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm