Terry,

Adam is right on when he says its bad advice to consider cookies as a
blanket substitute for client variables.  They exist for good reasons.
 I can remember back to earlier versions of CF where they added
significant stability to a CF application versus session variables.

However, CF has grown over time.  You don't have to lock the use of
session vars anymore (except in cases of race conditions -- fairly
rare in a session scope) and as you say you have gobs of available
memory.

Client vars in a db work fine, but you are hitting your db a LOT with
them, and under MX the benefits no longer outweigh this.  There's no
telling if lightening this db load and shifting it elsewhere will help
you, but its certainly worth a try.

Rather than going to cookies willy-nilly, look at a combination of
cookies and session variables.

Store your meaningless stuff in cookies.  Only use them in cases where
you will never need to set the cookie and read back from it within the
same template.  Never use them if you set them and cflocation to
something else that needs to use the cookie value (both of these
limitations can be overcome but why bother since...

You can store the rest in the session scope.  Or migrate values slowly
there so you can monitor memory usage to confirm you aren't hitting
your max.  Taking the easy way, you could replace every occurrence of
the string "client." in your application with "session.", and then
search for all instances of "deleteclientvariable" and convert those
manually to structdeletes.

The above assumes you don't have situations where a race condition can
arise.  This should be a rare thing in the session scope, but if its
there you *will* have to lock the writes (only) to the session scope.

Also, since this app is coming from older code, make sure you aren't
doing stuff like porting application scope vars to request scope in
/Application.cfm and back to app scope in OnRequestEnd.  Subject to
the race condition bit, you don't need to play that game anymore. 
Here again you probably already know this but I thought I'd mention
it.

-- 
--mattRobertson--
Janitor, MSB Web Systems
mysecretbase.com

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Logware (www.logware.us): a new and convenient web-based time tracking 
application. Start tracking and documenting hours spent on a project or with a 
client with Logware today. Try it for free with a 15 day trial account.
http://www.houseoffusion.com/banners/view.cfm?bannerid=67

Message: http://www.houseoffusion.com/lists.cfm/link=i:4:205965
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

Reply via email to