class DBLock::Adapter::Sqlserver

Public Instance Methods

lock(name, timeout = 0) click to toggle source
# File lib/db_lock/adapter/sqlserver.rb, line 4
def lock(name, timeout = 0)
  connection.execute_procedure 'sp_getapplock', Resource: name,
                                                LockMode: 'Exclusive',
                                                LockOwner: 'Session',
                                                LockTimeout: (timeout * 1000).to_i,
                                                DbPrincipal: 'public'
  lock = connection.raw_connection.return_code
  lock.zero?
end
release(name) click to toggle source
# File lib/db_lock/adapter/sqlserver.rb, line 14
def release(name)
  connection.execute_procedure 'sp_releaseapplock', Resource: name,
                                                    LockOwner: 'Session',
                                                    DbPrincipal: 'public'
  lock = connection.raw_connection.return_code
  lock.zero?
end