
226
Chapter 11 Scalability and Availability Overview
Another approach to solving the same problem is to store client variables in a
back-end common state repository. This approach enables all Web servers
comprising the cluster to access variables in a common, shared back-end data store,
such as a database. However, you must be aware that this approach can potentially
impact your site’s performance.
Web developers must think through the various user scenarios in which application
session and state are affected and engineer appropriate mechanisms for elegantly
handling such situations. The three most common ways to handle session data are:
•
Client-side options consisting of cookies, hidden fields, a get list, or URL
parameters
•
Server-side session variables
Note
Storing session data on the server requires that a simple identifier be stored on
the client, such as a cookie.
•
An open state repository consisting of either a common back-end database or
some other shared storage device
Whatever mechanism your architects and engineers use, it’s important that they
anticipate the scenarios in which maintaining an application’s state is vital to a good
user experience. See
“Session-Aware Load Balancing” on page 276
.
Database locking and concurrency issues
Dynamic Web applications, those that allow users to modify a database, must ensure
appropriate database concurrency handling. Database concurrency handling refers
to how an application manages multiple concurrent user requests when accessing
the same database records. If an application does not impose any database locking
mechanism on multiple requests to update the same record, data integrity can be
compromised in the database. In such a scenario, two users could make
simultaneous modifications to a record, but only the last change would take effect.
For example, consider a Human Resources Web application on a company intranet.
The HR Generalist adds two new employee records to the HR database by filling out a
Web form because two new employees have just been hired. The Generalist enters
most of the vital information into the records but doesn’t yet have the new
employees’ phone extensions or HMO selections, and therefore leaves those fields
blank. Later in the day, the HR Generalist’s boss, the HR Director, obtains this
information from both new hires and decides to enter it in the database herself.
However, one of the new employees, after speaking with her husband, decides to
change her HMO selection from the basic selection to the PPO choice, which allows
greater flexibility in choosing physicians. The employee calls the HR Generalist to tell
him of the change, and the Generalist says he will take care of it immediately.
Unbeknownst to the HR Director, the HR Generalist adds the information into the
employee records at the same time that the HR Director is attempting to add the
outdated information.
Summary of Contents for COLDFUSION 5-ADVANCED ADMINISTRATION
Page 1: ...Macromedia Incorporated Advanced ColdFusion Administration ColdFusion 5...
Page 20: ......
Page 56: ...38 Chapter 1 Advanced Data Source Management...
Page 74: ...56 Chapter 2 Administrator Tools...
Page 76: ......
Page 86: ...68 Chapter 3 ColdFusion Security...
Page 87: ...To Learn More About Security 69...
Page 88: ...70 Chapter 3 ColdFusion Security...
Page 130: ...112 Chapter 5 Configuring Advanced Security...
Page 132: ......
Page 154: ...136 Chapter 6 Configuring Verity K2 Server...
Page 162: ...144 Chapter 7 Indexing XML Documents...
Page 202: ...184 Chapter 8 Verity Spider...
Page 236: ...218 Chapter 10 Verity Troubleshooting Utilities...
Page 238: ......
Page 348: ...330 Chapter 14 ClusterCATS Utilities...
Page 349: ...Using sniff 331...
Page 350: ...332 Chapter 14 ClusterCATS Utilities...
Page 362: ...344 Chapter 15 Optimizing ClusterCATS...
Page 372: ...354 Index...