----- Original Message ----- 
From: "Jim Curran" <[EMAIL PROTECTED]>
> Just a thought off the top of my head,
> 1) copy the session structure to a temporary local structure in
> Application.cfm:
> 
> <cflock ...>
> <cfset session_temp = structcopy(session)>
> </cflock>

Actually, this is one of the more common workarounds for locking issues.  Although I 
usually use REQUEST scope for this so that the variable is available to all templates, 
including custom tags.  Depending on how much data you've got stuffed into shared 
scopes, you can do a wholesale copy of both scopes.

<cflock scope="APPLICATION" type="readonly" timeout="10">
    <cfscript>
        REQUEST.application = structNew();
        for (i IN APPLICATION) {
            REQUEST.application[i] = duplicate(APPLICATION[i]);
        }
    </cfscript>
</cflock>

Then do the same thing for Session.  It does add overhead to the application.  But if 
the main concern is cleaner code, this can be a viable workaround.

(structCopy() has been deprecated in favor of the duplicate() function.)

Sharon DiOrio
______________________________________________________________________
Structure your ColdFusion code with Fusebox. Get the official book at 
http://www.fusionauthority.com/bkinfo.cfm
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Archives: http://www.mail-archive.com/cf-talk@houseoffusion.com/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists

Reply via email to