# Class yii\mutex\OracleMutex

Inheritance | yii\mutex\OracleMutex » yii\mutex\DbMutex » yii\mutex\Mutex » yii\base\Component » yii\base\BaseObject
Implements | yii\base\Configurable
Available since version | 2.0.10
Source Code | https://github.com/yiisoft/yii2/blob/master/framework/mutex/OracleMutex.php

OracleMutex implements mutex "lock" mechanism via Oracle locks.

Application configuration example:

    [
        'components' => [
            'db' => [
                'class' => 'yii\db\Connection',
                'dsn' => 'oci:dbname=LOCAL_XE',
                 ...
            ]
            'mutex' => [
                'class' => 'yii\mutex\OracleMutex',
                'lockMode' => 'NL_MODE',
                'releaseOnCommit' => true,
                 ...
            ],
        ],
    ]

See also:

- http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_lock.htm
- yii\mutex\Mutex

## Public Properties

Hide inherited properties

Property | Type | Description | Defined By
--- | --- | --- | ---
$autoRelease | boolean | Whether all locks acquired in this process (i.e. local locks) must be released automatically before finishing script execution. | yii\mutex\Mutex
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component. This property is read-only. | yii\base\Component
$db | yii\db\Connection|array|string | The DB connection object or the application component ID of the DB connection. | yii\mutex\DbMutex
$lockMode | string | Lock mode to be used. | yii\mutex\OracleMutex
$releaseOnCommit | boolean | Whether to release lock on commit. | yii\mutex\OracleMutex

## Public Methods

Hide inherited methods

Method | Description | Defined By
--- | --- | ---
__call() | Calls the named method which is not a class method. | yii\base\Component
__clone() | This method is called after the object is created by cloning an existing one. | yii\base\Component
__construct() | Constructor. | yii\base\BaseObject
__get() | Returns the value of a component property. | yii\base\Component
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Component
__set() | Sets the value of a component property. | yii\base\Component
__unset() | Sets a component property to be null. | yii\base\Component
acquire() | Acquires a lock by name. | yii\mutex\Mutex
attachBehavior() | Attaches a behavior to this component. | yii\base\Component
attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component
behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Component
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Component
className() | Returns the fully qualified name of this class. | yii\base\BaseObject
detachBehavior() | Detaches a behavior from the component. | yii\base\Component
detachBehaviors() | Detaches all behaviors from the component. | yii\base\Component
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\base\Component
getBehavior() | Returns the named behavior object. | yii\base\Component
getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\base\Component
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Component
hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\base\Component
init() | Initializes Oracle specific mutex component implementation. | yii\mutex\OracleMutex
isAcquired() | Checks if a lock is currently acquired | yii\mutex\Mutex
off() | Detaches an existing event handler from this component. | yii\base\Component
on() | Attaches an event handler to an event. | yii\base\Component
release() | Releases acquired lock. This method will return false in case the lock was not found. | yii\mutex\Mutex
trigger() | Triggers an event. | yii\base\Component

## Protected Methods

Hide inherited methods

Method | Description | Defined By
--- | --- | ---
acquireLock() | Acquires lock by given name. | yii\mutex\OracleMutex
releaseLock() | Releases lock by given name. | yii\mutex\OracleMutex

## Constants

Hide inherited constants

Constant | Value | Description | Defined By
--- | --- | --- | ---
MODE_NL | 'NL_MODE' |  | yii\mutex\OracleMutex
MODE_S | 'S_MODE' |  | yii\mutex\OracleMutex
MODE_SS | 'SS_MODE' |  | yii\mutex\OracleMutex
MODE_SSX | 'SSX_MODE' |  | yii\mutex\OracleMutex
MODE_SX | 'SX_MODE' |  | yii\mutex\OracleMutex
MODE_X | 'X_MODE' | Available lock modes | yii\mutex\OracleMutex

## Property Details

$lockMode public property

Lock mode to be used.

See also http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_lock.htm#CHDBCFDI.

public string $lockMode = self::MODE_X
$releaseOnCommit public property

Whether to release lock on commit.

public boolean $releaseOnCommit = false

## Method Details

acquireLock() protected method

Acquires lock by given name.

See also http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_lock.htm.

protected boolean acquireLock ( $name, $timeout = 0 )
$name | string | Of the lock to be acquired.
$timeout | integer | Time (in seconds) to wait for lock to become released.
return | boolean | Acquiring result.

init() public method

Initializes Oracle specific mutex component implementation.

public void init ( )
throws | yii\base\InvalidConfigException | if $db is not Oracle connection.

releaseLock() protected method

Releases lock by given name.

See also http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_lock.htm.

protected boolean releaseLock ( $name )
$name | string | Of the lock to be released.
return | boolean | Release result.