Memory variables allow your application to persist data globally (
application variables) or across user sessions (
session variables). Memory variables are useful for maintaining logins, incrementing counters, and other stateful information. This section of the ColdFusion Administrator controls how the server manages these variables.
J2EE Session Variables
The server supports two kinds of session variables, ColdFusion and J2EE. Introduced in ColdFusion MX, J2EE session variables provide significant advantages over traditional ColdFusion session variables.
- More secure: J2EE session variables provide a more complex identifier, which strengthens session security.
- Session sharing: Session data can be easily shared between ColdFusion and Java Server Pages (JSP) and servlets
- Session management: User sessions can be terminated without losing client management or client identification tokens (
We strongly recommend enabling J2EE session variables for your application. Note that there are several important distinctions between these session management options, and your application should be fully tested before this change is released to production. J2EE session management creates a new variable (
jsessionid) which is created at the start of a browser session. When the browser is closed,
jsessionid is destroyed, thereby ending the session. If your application relies on user sessions persisting across browser sessions, you may need to consider another storage option.
Tip: If you intend to implement ColdFusion Clustering on Enterprise ColdFusion, you must use J2EE sessions. The default is unchecked.
Tip: Be sure to review our ColdFusion security recommendations to help secure your server.
Session Storage Settings
The Enterprise version of ColdFusion provides the option to store session data externally. This is especially useful if you intend to implement ColdFusion Clustering. The In Memory capability is not as robust as Redis at replicating session data across clustered instances. As clustering is an Enterprise only feature, the Redis option for session storage is worthy of consideration.
Tip: If you intend to use external session storage (such as Redis) then you must disable J2EE session variables (see above).
Note: You must restart the ColdFusion application server to change the session storage.
Here you can specify an upper limit for
session variable timeouts in ColdFusion. This establishes a not-to-exceed maximum for your individual applications. Any
applicationtimeout values in
<cfapplication>, or the Default Timeouts shown below, may not exceed these limits.
Here you can set
session timeouts that apply to all application bound to this instance of ColdFusion. We recommend setting reasonable limits here but also overriding these settings within your individual applications (within the
<cfapplication> tag). Ideally, these limits should be as short in duration as possible without negatively impacting user experience. Specific, targeted functional testing of your application is the best means of discovering optimal settings for your application.
Tip: If users are being logged out of your site too quickly, you may want to try a longer session length here.
These timeouts may not exceed the maximum limits established in the Maximum Timeout length.
Session Cookie Settings