
317
DEVELOPING
COLDFUSION 9 APPLICATIONS
Developing CFML Applications
Las
t
upda
te
d 8/5/2010
Because each Application scope variable is shared in memory by all requests in the application, these variables can
become bottlenecks if used inappropriately. Whenever a request is reading or writing an Application scope variable,
any other requests that use the variable must wait until the code accessing the variable completes. This problem is
increased by the processing time required for locking. If many users access the application simultaneously and you use
Application scope variables extensively, your application performance might degrade. If your application uses many
application variables, consider whether the variables must be in the Application scope or whether they can be Session
or Request scope variables.
The application scope has one built-in variable,
Application.applicationName
, which contains the application
name you specify in the
cfapplication
tag.
Access and manipulate application variables the same way you use session variables, except that you use the variable
prefix Application, not Session, and specify Session as the lock scope. For examples of using session variables see
“
Creating and deleting session variables
” on page 314 and “
Accessing and changing session variables
” on page 314.
For information on locking write-once read-many application variables efficiently, see “
Locking application variables
efficiently
” on page 323
Using server variables
Server variables are associated with a single ColdFusion server. They are available to all applications that run on the
server. Use server variables for data that must be accessed across clients and applications, such as global server hit
counts.
Server variables do not time out, but they are lost when the server shuts down. You can delete server variables.
Server variables are stored on a single server. As a result, do not use server variables if you use ColdFusion on a server
cluster.
You access and manipulate server variables the same way use Session and application variables, except you use the
variable prefix Server.
Important:
Place code that uses server variables inside
cflock
tags in circumstances that could result in race conditions
from multiple accesses to the same variable. You do not have to lock access to built-in server variables.
ColdFusion provides the following standard built-in read-only server variables:
Variable
Description
Server.ColdFusion.AppServer
The name of the J2EE application server ColdFusion is using. For ColdFusion server
editions, which have an integrated application server, the name is JRun4.
Server.ColdFusion.Expiration
The date on which the ColdFusion license expires if it is the trial version.
Server.ColdFusion.ProductLevel
The server product level, such as Enterprise.
Server.ColdFusion.ProductName
The name of the product (ColdFusion).
Server.ColdFusion.ProductVersion
The version number for the server that is running, such as 6,0,0.
Server.ColdFusion.Rootdir
Directory under which ColdFusion is installed, such as C:\cfusion.
Server.ColdFusion.SerialNumber
The serial number assigned to this server installation.
Server.ColdFusion.SupportedLocales
The locales, such as English (US) and Spanish (Standard), supported by the server.
Server.OS.AdditionalInformation
Additional information provided by the operating system, such as the Service Pack
number.
Server.OS.arch
The processor architecture, such as x86 for Intel Pentium processors.