Classes:
Doctrine
Doctrine_Access
Doctrine_Adapter
Doctrine_Adapter_Db2_Exception
Doctrine_Adapter_Exception
Doctrine_Adapter_Statement
Doctrine_AuditLog
Doctrine_AuditLog_Listener
Doctrine_Collection
Doctrine_Collection_Exception
Doctrine_Collection_Iterator
Doctrine_Collection_Iterator_Expandable
Doctrine_Collection_Iterator_Normal
Doctrine_Collection_Iterator_Offset
Doctrine_Collection_Offset
Doctrine_Column
Doctrine_Compiler
Doctrine_Compiler_Exception
Doctrine_Configurable
Doctrine_Connection
Doctrine_Connection_Common
Doctrine_Connection_Db2
Doctrine_Connection_Exception
Doctrine_Connection_Firebird
Doctrine_Connection_Firebird_Exception
Doctrine_Connection_Informix
Doctrine_Connection_Informix_Exception
Doctrine_Connection_Mock
Doctrine_Connection_Module
Doctrine_Connection_Mssql
Doctrine_Connection_Mssql_Exception
Doctrine_Connection_Mysql
Doctrine_Connection_Mysql_Exception
Doctrine_Connection_Oracle
Doctrine_Connection_Oracle_Exception
Doctrine_Connection_Pgsql
Doctrine_Connection_Pgsql_Exception
Doctrine_Connection_Profiler
Doctrine_Connection_Profiler_Exception
Doctrine_Connection_Sqlite
Doctrine_Connection_Sqlite_Exception
Doctrine_Connection_Statement
Doctrine_Connection_UnitOfWork
Doctrine_DataDict
Doctrine_DataDict_Exception
Doctrine_DataDict_Informix
Doctrine_DataType
Doctrine_Db
Doctrine_Event
Doctrine_EventListener
Doctrine_EventListener_Chain
Doctrine_EventListener_Exception
Doctrine_Exception
Doctrine_Export
Doctrine_Export_Exception
Doctrine_Export_Firebird
Doctrine_Export_Frontbase
Doctrine_Export_Mssql
Doctrine_Export_Mysql
Doctrine_Export_Oracle
Doctrine_Export_Pgsql
Doctrine_Export_Reporter
Doctrine_Export_Schema
Doctrine_Export_Schema_Xml
Doctrine_Export_Schema_Yml
Doctrine_Export_Sqlite
Doctrine_Expression
Doctrine_Expression_Driver
Doctrine_Expression_Exception
Doctrine_Expression_Firebird
Doctrine_Expression_Informix
Doctrine_Expression_Mock
Doctrine_Expression_Mssql
Doctrine_Expression_Mysql
Doctrine_Expression_Oracle
Doctrine_Expression_Pgsql
Doctrine_Expression_Sqlite
Doctrine_File
Doctrine_File_Index
Doctrine_Formatter
Doctrine_Hook
Doctrine_Hook_Equal
Doctrine_Hook_Integer
Doctrine_Hook_Parser
Doctrine_Hook_Parser_Complex
Doctrine_Hook_WordLike
Doctrine_Hydrate
Doctrine_Hydrate_Array
Doctrine_Hydrate_Exception
Doctrine_Hydrate_Record
Doctrine_Import
Doctrine_Import_Builder
Doctrine_Import_Builder_BaseClass
Doctrine_Import_Builder_Exception
Doctrine_Import_Exception
Doctrine_Import_Firebird
Doctrine_Import_Informix
Doctrine_Import_Mssql
Doctrine_Import_Mysql
Doctrine_Import_Oracle
Doctrine_Import_Pgsql
Doctrine_Import_Reader
Doctrine_Import_Reader_Db
Doctrine_Import_Reader_Exception
Doctrine_Import_Reader_Xml_Propel
Doctrine_Import_Schema
Doctrine_Import_Schema_Xml
Doctrine_Import_Schema_Yml
Doctrine_Import_Sqlite
Doctrine_IntegrityMapper
Doctrine_Lib
Doctrine_Locking_Exception
Doctrine_Locking_Manager_Pessimistic
Doctrine_Manager
Doctrine_Manager_Exception
Doctrine_Node
Doctrine_Node_AdjacencyList
Doctrine_Node_AdjacencyList_LevelOrderIterator
Doctrine_Node_AdjacencyList_PostOrderIterator
Doctrine_Node_AdjacencyList_PreOrderIterator
Doctrine_Node_Exception
Doctrine_Node_MaterializedPath
Doctrine_Node_MaterializedPath_LevelOrderIterator
Doctrine_Node_MaterializedPath_PostOrderIterator
Doctrine_Node_MaterializedPath_PreOrderIterator
Doctrine_Node_NestedSet
Doctrine_Node_NestedSet_LevelOrderIterator
Doctrine_Node_NestedSet_PostOrderIterator
Doctrine_Node_NestedSet_PreOrderIterator
Doctrine_Null
Doctrine_Object
Doctrine_Plugin
Doctrine_Query
Doctrine_Query_Abstract
Doctrine_Query_Check
Doctrine_Query_Condition
Doctrine_Query_Exception
Doctrine_Query_Filter
Doctrine_Query_Filter_Chain
Doctrine_Query_From
Doctrine_Query_Groupby
Doctrine_Query_Having
Doctrine_Query_JoinCondition
Doctrine_Query_Limit
Doctrine_Query_Offset
Doctrine_Query_Orderby
Doctrine_Query_Parser
Doctrine_Query_Part
Doctrine_Query_Select
Doctrine_Query_Set
Doctrine_Query_Where
Doctrine_RawSql
Doctrine_RawSql_Exception
Doctrine_Record
Doctrine_Record_Abstract
Doctrine_Record_Exception
Doctrine_Record_Filter
Doctrine_Record_Iterator
Doctrine_Record_Listener
Doctrine_Record_Listener_Chain
Doctrine_Record_State_Exception
Doctrine_Relation
Doctrine_Relation_Association
Doctrine_Relation_Association_Self
Doctrine_Relation_Exception
Doctrine_Relation_ForeignKey
Doctrine_Relation_LocalKey
Doctrine_Relation_Nest
Doctrine_Relation_Parser
Doctrine_Relation_Parser_Exception
Doctrine_Schema
Doctrine_Schema_Column
Doctrine_Schema_Database
Doctrine_Schema_Exception
Doctrine_Schema_Object
Doctrine_Schema_Relation
Doctrine_Schema_Table
Doctrine_Search
Doctrine_Search_Analyzer
Doctrine_Search_Analyzer_Exception
Doctrine_Search_Analyzer_Standard
Doctrine_Search_Exception
Doctrine_Search_Indexer
Doctrine_Search_Indexer_Dir
Doctrine_Search_Indexer_Exception
Doctrine_Search_Listener
Doctrine_Search_Parser
Doctrine_Search_Query
Doctrine_Search_Record
Doctrine_Search_Scorer
Doctrine_Search_Template
Doctrine_Sequence
Doctrine_Sequence_Db2
Doctrine_Sequence_Exception
Doctrine_Sequence_Firebird
Doctrine_Sequence_Informix
Doctrine_Sequence_Mssql
Doctrine_Sequence_Mysql
Doctrine_Sequence_Oracle
Doctrine_Sequence_Pgsql
Doctrine_Sequence_Sqlite
Doctrine_Table
Doctrine_Table_Exception
Doctrine_Table_Repository
Doctrine_Table_Repository_Exception
Doctrine_Template
Doctrine_Template_NestedSet
Doctrine_Template_Searchable
Doctrine_Template_Taggable
Doctrine_Template_Versionable
Doctrine_Tokenizer
Doctrine_Transaction
Doctrine_Transaction_Exception
Doctrine_Transaction_Firebird
Doctrine_Transaction_Informix
Doctrine_Transaction_Mock
Doctrine_Transaction_Mssql
Doctrine_Transaction_Mysql
Doctrine_Transaction_Oracle
Doctrine_Transaction_Pgsql
Doctrine_Transaction_Sqlite
Doctrine_Tree
Doctrine_Tree_AdjacencyList
Doctrine_Tree_Exception
Doctrine_Tree_MaterializedPath
Doctrine_Tree_NestedSet
Doctrine_Util
Doctrine_Validator
Doctrine_Validator_Country
Doctrine_Validator_Creditcard
Doctrine_Validator_Date
Doctrine_Validator_Email
Doctrine_Validator_Enum
Doctrine_Validator_ErrorStack
Doctrine_Validator_Exception
Doctrine_Validator_HtmlColor
Doctrine_Validator_Ip
Doctrine_Validator_Minlength
Doctrine_Validator_Nospace
Doctrine_Validator_Notblank
Doctrine_Validator_Notnull
Doctrine_Validator_Range
Doctrine_Validator_Regexp
Doctrine_Validator_Unique
Doctrine_Validator_Unsigned
Doctrine_Validator_Usstate
Doctrine_View
Doctrine_View_Exception
Doctrine_Cache
Doctrine_Cache
Doctrine_Cache_Apc
Doctrine_Cache_Array
Doctrine_Cache_Db
Doctrine_Cache_Driver
Doctrine_Cache_Exception
Doctrine_Cache_Memcache
Doctrine_Adapter
Doctrine_Adapter_Db2
Doctrine_Adapter_Mock
Doctrine_Adapter_Mysqli
Doctrine_Adapter_Oracle
Doctrine_Adapter_Statement_Mock
Doctrine_DataDict
Doctrine_DataDict_Firebird
Doctrine_DataDict_Mssql
Doctrine_DataDict_Mysql
Doctrine_DataDict_Oracle
Doctrine_DataDict_Pgsql
Doctrine_DataDict_Sqlite

# Class: Doctrine_Locking_Manager_Pessimistic

Source Location: /Doctrine/Locking/Manager/Pessimistic.php

## Class Doctrine_Locking_Manager_Pessimistic

Class Overview

Offline locking of records comes in handy where you need to make sure that a time-consuming task on a record or many records, which is spread over several page requests can't be interfered by other users. Located in /Doctrine/Locking/Manager/Pessimistic.php [line 36]
Author(s): Pierre Minnieur <pm@pierre-minnieur.de> Roman Borschel <roman@code-factory.org> Konsta Vesterinen <kvesteri@cc.hut.fi> Information Tags:
Version: | $Revision: 1468 $
Link: | www.phpdoctrine.com
Since: | 1.0
License: | LGPL
| Properties $conn $_lockTable | Methods __construct getLock getLockOwner releaseAgedLocks releaseLock _getLockingUserIdent

[ Top ]
Property Summary

Doctrine_Connection | $conn | The conn that is used by the locking manager
mixed | $_lockTable | The database table name for the lock tracking

[ Top ]
Method Summary

Doctrine_Locking_Manager_Pessimistic | __construct() | Constructs a new locking manager object
boolean | getLock() | Obtains a lock on a Doctrine_Record
mixed | getLockOwner() | Gets the identifier that identifies the owner of the lock on the given record.
integer | releaseAgedLocks() | Releases locks older than a defined amount of seconds
boolean | releaseLock() | Releases a lock on a Doctrine_Record
mixed | _getLockingUserIdent() | Gets the unique user identifier of a lock

[ Top ]
Properties
Doctrine_Connection $conn [line 43]

The conn that is used by the locking manager

API Tags:

Access: | private

[ Top ]
mixed $_lockTable = 'doctrine_lock_tracking' [line 47]

The database table name for the lock tracking

API Tags:

Access: | private

[ Top ]
Methods
Constructor __construct [line 57]

`Doctrine_Locking_Manager_Pessimistic __construct( Doctrine_Connection $conn )`

Constructs a new locking manager object

When the CREATE_TABLES attribute of the connection on which the manager is supposed to work on is set to true, the locking table is created.

Parameters:

Doctrine_Connection | $conn: | The database connection to use

API Tags:

Access: | public

[ Top ]
getLock [line 99]

`boolean getLock( Doctrine_Record $record, mixed $userIdent )`

Obtains a lock on a Doctrine_Record

Parameters:

Doctrine_Record | $record: | The record that has to be locked
mixed | $userIdent: | A unique identifier of the locking user

API Tags:

Return: | TRUE if the locking was successful, FALSE if another user holds a lock on this record
Access: | public

Information Tags:

Throws: | Doctrine_Locking_Exception If the locking failed due to database errors

[ Top ]
getLockOwner [line 239]

`mixed getLockOwner( Doctrine_Record $lockedRecord )`

Gets the identifier that identifies the owner of the lock on the given record.

Parameters:

Doctrine_Record | $lockedRecord: | The record.

API Tags:

Return: | The unique user identifier that identifies the owner of the lock.
Access: | public

[ Top ]
releaseAgedLocks [line 257]

`integer releaseAgedLocks( [integer $age = 900], [string $objectType = null], [mixed $userIdent = null] )`

Releases locks older than a defined amount of seconds

When called without parameters all locks older than 15 minutes are released.

Parameters:

integer | $age: | The maximum valid age of locks in seconds
string | $objectType: | The type of the object (component name)
mixed | $userIdent: | The unique identifier of the locking user

API Tags:

Return: | The number of locks that have been released
Access: | public

Information Tags:

Throws: | Doctrine_Locking_Exception If the release process failed due to database errors

[ Top ]
releaseLock [line 168]

`boolean releaseLock( Doctrine_Record $record, mixed $userIdent )`

Releases a lock on a Doctrine_Record

Parameters:

Doctrine_Record | $record: | The record for which the lock has to be released
mixed | $userIdent: | The unique identifier of the locking user

API Tags:

Return: | TRUE if a lock was released, FALSE if no lock was released
Access: | public

Information Tags:

Throws: | Doctrine_Locking_Exception If the release procedure failed due to database errors

[ Top ]
_getLockingUserIdent [line 205]

`mixed _getLockingUserIdent( string $objectType, mixed $key )`

Gets the unique user identifier of a lock

Parameters:

string | $objectType: | The type of the object (component name)
mixed | $key: | The unique key of the object

API Tags:

Return: | The unique user identifier for the specified lock
Access: | private

Information Tags:

Throws: | Doctrine_Locking_Exception If the query failed due to database errors

[ Top ]