222
Chapter 2: ColdFusion Tags
Note:
Limit the scope of code that updates shared data structures, files, and CFXs. Exclusive locks
are required to ensure the integrity of updates, but read-only locks are faster. In a
performance-sensitive application, substitute read-only locks for exclusive locks where possible; for
example, when reading shared data.
Usage
ColdFusion MX is a multithreaded server; it can process multiple page requests at a time. Use the
cflock
tag for these purposes:
•
To ensure that modifications to shared data and objects made in concurrently executing
requests occur sequentially.
•
Around file manipulation constructs, to ensure that file updates do not fail because files are
open for writing by other applications or tags.
•
Around CFX invocations, to ensure that ColdFusion can safely invoke CFXs that are not
implemented in a thread-safe manner. (This applies only to CFXs developed in C++ using the
CFAPI.)
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
scope
attribute to identify
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
cflock
tag uses kernel level synchronization objects that are released automatically upon
timeout and/or the abnormal termination of the thread that owns them. Therefore, while
processing a
cflock
tag, ColdFusion never deadlocks for an infinite period of time. However,
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
cflock
tags and inconsistent
naming of locks. If you nest locks, everyone accessing the locked variables must consistently nest
cflock
tags in the same order. Otherwise, a deadlock can occur.
throwOnTimeout Optional
Yes
How timeout conditions are handled.
•
Yes:
exception is generated for the timeout.
•
No:
execution continues past this tag.
type
Optional
Exclusive
•
readOnly:
lets more than one request read shared data.
•
exclusive:
lets one request read or write shared data.
Attribute
Req/Opt Default
Description
Содержание COLDFUSION MX 61-CFML
Страница 1: ...CFML Reference...
Страница 16: ...16 Contents...
Страница 32: ...32 Chapter 1 Reserved Words and Variables...
Страница 123: ...cffile 123 cffile action rename source c files memo keymemo doc destination c files memo oldmemo doc...
Страница 144: ...144 Chapter 2 ColdFusion Tags action close stopOnError Yes p Did it succeed cfoutput cfftp succeeded cfoutput...
Страница 160: ...160 Chapter 2 ColdFusion Tags html...
Страница 186: ...186 Chapter 2 ColdFusion Tags br CGI variable CGI cgi_test br br Note that the CGI variable is URL encoded cfoutput...
Страница 214: ...214 Chapter 2 ColdFusion Tags name sourcedata value Hello world friend cfinvoke cfoutput varName cfoutput...
Страница 245: ...cfmail 245 p input type Submit name form...
Страница 258: ...258 Chapter 2 ColdFusion Tags Example cfobject type corba context ior class c myobject ior name GetName...
Страница 299: ...cfreturn 299 cffunction cfcomponent...
Страница 354: ...354 Chapter 2 ColdFusion Tags cfoutput cfcatch cftry...
Страница 357: ...cfupdate 357 cftable cfif body html...
Страница 362: ...362 Chapter 2 ColdFusion Tags cfloop MyDoc cfxml cfdump var MyDoc...
Страница 397: ...ASin 397 br input type Text name sinNum size 25 p input type Submit name input type RESET form...
Страница 416: ...416 Chapter 3 ColdFusion Functions P INPUT TYPE Submit VALUE Compare these Strings NAME INPUT TYPE RESET FORM...
Страница 418: ...418 Chapter 3 ColdFusion Functions br br input type Submit name nbsp nbsp input type RESET form...
Страница 486: ...486 Chapter 3 ColdFusion Functions input type Submit NAME form...
Страница 492: ...492 Chapter 3 ColdFusion Functions b http_content x content b cfoutput...
Страница 504: ...504 Chapter 3 ColdFusion Functions tr table form...
Страница 519: ...IIf 519 cfoutput b...
Страница 530: ...530 Chapter 3 ColdFusion Functions IsCustomFunction myTestCFCobject testFunc myTestCFCobject testFunc is a function CFIF...
Страница 534: ...534 Chapter 3 ColdFusion Functions input type Submit name form...
Страница 542: ...542 Chapter 3 ColdFusion Functions cfif cfif...
Страница 547: ...IsStruct 547 cfcase cfswitch...
Страница 550: ...550 Chapter 3 ColdFusion Functions IsWDDX returns IsWDDX packet br cfoutput...
Страница 559: ...Left 559 option value 9 9 select input type Submit name Remove characters form...
Страница 565: ...ListContains 565 cfoutput The string two is in b element ListFind aList two b of the list cfoutput...
Страница 608: ...608 Chapter 3 ColdFusion Functions check the current locale for server cfset serverLocale GetLocale...
Страница 620: ...620 Chapter 3 ColdFusion Functions cfoutput cfloop...
Страница 662: ...662 Chapter 3 ColdFusion Functions replacelist stringtoreplace dog brown fox black cow black ferret white cfoutput...
Страница 681: ...SetVariable 681 p Your variable varName p The value of varName is varNameValue cfoutput cfif...
Страница 684: ...684 Chapter 3 ColdFusion Functions br br input type Submit name nbsp nbsp input type RESET form...
Страница 724: ...724 Chapter 3 ColdFusion Functions cfelse h3 Conversion error h3 cfif...
Страница 743: ...XmlNew 743 cfscript cfdump var MyDoc...
Страница 786: ...786 Chapter 5 ColdFusion Java CFX Reference...
Страница 798: ...798 Chapter 6 WDDX JavaScript Objects...
Страница 806: ...806 Chapter 7 ColdFusion ActionScript Functions...