Cool thanks. I know the Friday feeling. Too bad tomorrow isn't the weekend. :-)
John Burns Certified Advanced ColdFusion MX Developer Wyle Laboratories, Inc. | Web Developer -----Original Message----- From: Nathan Strutz [mailto:[EMAIL PROTECTED] Sent: Thursday, March 31, 2005 1:34 PM To: CF-Talk Subject: Re: When to use CFLOCK (MX 6.1 and above) Yeah, sorry. Feels like a Friday here, so I'm treating it like one and you were an innocent bystander. You can use my login example, as I didn't mention who I was working for or any of that. -nathan strutz http://www.dopefly.com/ Burns, John D wrote: > Ouch, that was a bit of a low blow. I'm asking not for personal > enlightenment but to confirm what I already believed to be true before > I pass the data on to coworkers. I know there are always a few > different opinions about odd things so I figured I'd ask a quick > question before compiling my content. > > For instance, your login problem is a great personal example. Mind if > I use that as an example? > > Thanks for the response. > > > John Burns > Certified Advanced ColdFusion MX Developer Wyle Laboratories, Inc. | > Web Developer > > > -----Original Message----- > From: Nathan Strutz [mailto:[EMAIL PROTECTED] > Sent: Thursday, March 31, 2005 12:37 PM > To: CF-Talk > Subject: Re: When to use CFLOCK (MX 6.1 and above) > > Burns, John D wrote: > >>I know there were some discussions on here recently about when you do >>and don't need to use cflock and some discussion about changes on when > > >>you needed to from 5 to 6.1. Can anyone give a quick recap of that or > > >>point me to the archives on where I could find that discussion? I >>can't seem to find it via the search. I'm looking for some facts and >>reasoning behind why you do or don't need to use cflock in certain >>situations. Thanks. >> >>John Burns >>Certified Advanced ColdFusion MX Developer > > > > And you wonder why I've never gotten my certification... ;) > > I'll recap for you. > > CF5 & below, you had to cflock every shared scope variable or your > server would crash. Sometimes many times an hour (trust me). CFMX of > course fixes that. > > Now you need to lock for race conditions. CFMX is multi-threaded, so > two people can be doing the exact same thing at the exact same time. > It's good in the way that your server can do a lot at once, but > sometimes that's not safe. > > For instance, the generic example, an application-scoped hit counter. > User A and user B hit a page at the same time, but A's thread goes > through first. A's thread reads the variable, currently 100, and adds > one to it, however, before it's set back into memory, user B reads it, > it's 100. User A completes the process, setting the counter at 101. > User B, having read it at 100, sets it to 101 as well. This race > condition caused the hit counter to be off by 1. > > It seems unlikely, but believe me, these kinds of things can happen > very easily, especially when you increase the amout of work you're > doing with the shared scope. Looping, etc., will create issues with > just 2 people using an application. > > Now here's a real life example. We have a login form. When you log in, > we validate your credentials, erase previous session variables and set > some new ones, then the request is forwarded to another page to set > some session variables and output them. If you double-click the login > button, > 2 requests are sent to the server. The first thread is attempting to > output your session variables while the first thread is deleting them > for a fresh login. The server throws an undefined variable exception > on the first thread, and thus, I get an email. After some creative > locking, I've eliminated the error altogether, even though customers > never saw it to begin with. > > I should blog this & refer it to people... ehh. > > -nathan strutz > http://www.dopefly.com/ > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Find out how CFTicket can increase your company's customer support efficiency by 100% http://www.houseoffusion.com/banners/view.cfm?bannerid=49 Message: http://www.houseoffusion.com/lists.cfm/link=i:4:201041 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

