Bangkok, Thailand - June 17, 2026

## PostgreSQL DBMS_LOCK compatibility extension

PostgreSQL extension to manages advisory locks in a way compatible to Oracle 
DBMS_LOCK package.

This extension uses PostgreSQL advisory locks to emulate the same behavior 
following the lock mode (exclusive or shared), the timeout and the on commit 
release settings.

pg_dbms_lock v2.0 has been released, this is a maintenance release to add 
compatibility with PostgreSQL 19
and add compatibility with the extension `pg_background` v2+ API.

Note that this version will not be compatible with pg_background prior to the 
2.0 version.

Complete list of changes and acknolegments are available 
[here](https://github.com/HexaCluster/pg_dbms_lock/releases/tag/v2.3)

This PostgreSQL extension provided compatibility with the DBMS_LOCK Oracle 
package except the `DBMS_LOCK.CONVERT()` function and some unsupported lock 
modes. The following stored procedures are implemented:

  - `ALLOCATE_UNIQUE()`: Allocates a unique lock ID to a named lock.
  - `REQUEST()`: Requests a lock of a specific mode.
  - `RELEASE()`: Releases a lock.
  - `SLEEP()`: Puts a procedure to sleep for a specific time.

For instance, user locks can be used to do the following:

  - Provide exclusive access to an external device or service (like a printer).
  - Coordinate or synchronize parallelized applications.
  - Disable or enable execution of programs at specific times.
  - Detect whether a session has ended a transaction using COMMIT or ROLLBACK.

## Links & Credits

pg_dbms_lock is an open project under the PostgreSQL license maintained by 
[HexaCluster](https://github.com/HexaCluster/credcheck/) and created by Gilles 
Darold as part of the improvement of Ora2Pg. Any contribution to build a better 
tool is welcome. You can send your ideas, features requests or patches using 
the GitHub tools.

**Links :**

* Download:  
[https://github.com/HexaCluster/pg_dbms_lock/releases/](https://github.com/HexaCluster/pg_dbms_lock/releases/)
* Support: use GitHub report tool at 
[https://github.com/HexaCluster/pg_dbms_lock/issues](https://github.com/HexaCluster/pg_dbms_lock/issues)

## About pg_dbms_lock

Documentation at 
[https://github.com/HexaCluster/pg_dbms_lock#readme](https://github.com/HexaCluster/pg_dbms_lock#readme)

Reply via email to