[ExclusiveLock database list]...WebDNA...[/ExclusiveLock]
- New in 4.0
Prevents other threads from simultaneously accessing a group of databases.
- SQL/ODBC Note: all database, table, and record locking mechanisms
are entirely controlled by the SQL server. [ExclusiveLock] is used only for
To prevent a group of databases from being modified by other threads (other
'hits' to the server, or other templates or triggers), wrap an [ExclusiveLock]
context around the WebDNA code which will be making the important exclusive
Example (normally you would put the following text into a .tpl file on your server and use a web browser to link to it):
- [ExclusiveLock db=orders.db&db=lineitems.db&db=accesslog.db]
...search, delete, or modify any of orders.db, lineitems.db, or accesslog.db
while being assured that no other threads can modify any of these databases
until the closing /ExclusiveLock tag is reached.
The list of database names is first alphabetized so as to maintain a consistent
locking order (a technique which prevents internal deadlocks), then each database
lock is acquired one at a time until all locks are acquired, then the interior
WebDNA is executed. If any lock cannot be acquired, the other databases are
unlocked, and the interior WebDNA is not executed.
|path to first database file, relative to this template.
|path to second database file, relative to this template.
|...path to nth database file, relative to this template. Note that all
parameters are named exactly the same: "db"