MACROMEDIA COLFUSION MX 7-CFML Reference page 272

Cfml reference
Hide thumbs Also See for COLFUSION MX 7-CFML:
Table of Contents

Advertisement

To work safely with ColdFusion, a C++ CFX that maintains and manipulates shared (global) data
structures must be made thread-safe; however, this requires advanced knowledge. You can use a
CFML custom tag wrapper around a CFX to make its invocation thread-safe.
When you display, set, or update variables in a shared scope, use the
the scope as Server, Application or Session.
Deadlocks
A deadlock is a state in which no request can execute the locked section of a page. Once a
deadlock occurs, neither user can break it, because all requests to the protected section of the page
are blocked until the deadlock can be resolved by a lock timeout.
The
tag uses kernel level synchronization objects that are released automatically upon
cflock
timeout and/or the abnormal termination of the thread that owns them. Therefore, while
processing a
cflock
very large timeouts can block request threads for long periods, and radically decrease throughput.
To prevent this, always use the minimum timeout value.
Another cause of blocked request threads is inconsistent nesting of
naming of locks. If you nest locks, everyone accessing the locked variables must consistently nest
tags in the same order. Otherwise, a deadlock can occur.
cflock
These examples show situations that cause deadlocks:
Example deadlock with two users
User 1
Locks the session scope.
Deadlock: Tries to lock the Application scope,
but it is already locked by User 2.
The following deadlock could occur if you tried to nest an exclusive lock inside a read lock:
Example deadlock with one user
User 1
Locks the Session scope with a read lock.
Attempts to lock the Session scope with an exclusive lock.
Deadlock: Cannot lock the Session scope with an exclusive lock because the scope is already
locked for reading.
The following code shows this scenario:
<cflock timeout = "60" scope = "SESSION" type = "readOnly">
...............
<cflock timeout = "60" scope = "SESSION" type = "Exclusive">
.........
</cflock>
</cflock>
272
Chapter 2: ColdFusion Tags
tag, ColdFusion never deadlocks for an infinite period of time. However,
scope
cflock
User 2
Locks the Application scope.
Deadlock: Tries to lock the Session scope, but it
is already locked by User 1.
attribute to identify
tags and inconsistent

Advertisement

Table of Contents
loading

This manual is also suitable for:

Colfusion mx 7 - installing and using coldfusion mx

Table of Contents