You shouldn't use the STRUCTCLEAR() function because you are inadvertantly
deleting application.applicationName. Application.applicationName is a
variable that is ONLY created the FIRST time a <CFAPPLICATION...> tag is
used with a unique name. In other words it's created the first time the
application is run and if you delete it then it won't be created again
UNLESS you change the application name OR restart the server.
I'm not sure how the absence of this variable affects the CF server, but you
can bet it's not good. CF needs this variable to run an application
properly, but to what extent I'm not sure.
to see what I mean put this code immediately after your CFAPPLICATION tag
and CHANGE THE NAME OF THE APPLICATION:
------------------------------------
<cfoutput>
<cfloop collection="#application#" item="i">
#i#<BR>
</cfloop>
</cfoutput>
------------------------------------
You'll notice the first time you run the new code
APPLICATION.APPLICATIONNAME is the created, but your STRUCTCLEAR() deletes
it and it does not appear again for subsequent requests.
Bryan Love ACP
Internet Application Developer
[EMAIL PROTECTED]
-----Original Message-----
From: Stuart Miller [mailto:[EMAIL PROTECTED]]
Sent: Thursday, June 21, 2001 9:09 AM
To: CF-Talk
Subject: Mysteriously vanishing application variables
Hello,
I have an application that seems to mysteriously lose it's application
variables and then throws the 'parameter cannot be resolved' error.
Shouldn't be due to timing out because the problem will pop up in the middle
of a session. Anyway, there is code that checks for
IsDefined(APPLICATION.GlobalsDefined) and sets them if not. When the page is
refreshed, the application variables are back. The problem only occurs
rarely and seemingly at random. I know that doesn't help, but I'm
stumped....
Here's the code:
<!--- Application Declaration --->
<cfapplication name="SomeApplication"
clientmanagement="Yes"
setclientcookies="No"
applicationtimeout="#CreateTimeSpan( 0, 1, 0, 0 )#"
clientstorage="ClientVars">
<cfparam name="InitGlobals" default=0>
<!--- If Application variables don't exist --->
<cfif NOT IsDefined( "APPLICATION.GlobalsDefined" )>
<!--- Force a re-initialisation --->
<Cfset InitGlobals = 1>
</cfif>
<!--- If we need to initialise variables --->
<cfif InitGlobals>
<!--- prevent multiple memory access --->
<cflock timeout="10"
throwontimeout="Yes"
name="STOAT_APP_GLOBALS"
type="EXCLUSIVE">
<!--- Clear out existing app variables --->
<cfscript>
StructClear( APPLICATION );
</cfscript>
<cfset APPLICATION.SomeApplicationVars = "SomeValues">
<cfset APPLICATION.GlobalsDefined = 1>
</cflock>
</cfif>
Anyone else have this happen to them?
Thanks in advance.
--Stuart
Stuart Miller
Rocom New Media
t: 01937 487492
e: [EMAIL PROTECTED]
w: http://www.rocom.co.uk
Archives: http://www.mail-archive.com/[email protected]/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Structure your ColdFusion code with Fusebox. Get the official book at
http://www.fusionauthority.com/bkinfo.cfm
Archives: http://www.mail-archive.com/[email protected]/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists