/**
Copyright (c) 1996-2008 Ariba, Inc.
All rights reserved. Patents pending.
$Id: //ariba/platform/util/core/ariba/util/core/GlobalLockUtil.java#1 $
Responsible: sjohnson
*/
package ariba.util.core;
import ariba.util.log.Log;
/**
A helper class for acquiring and releasing global lock
@aribaapi ariba
*/
public class GlobalLockUtil
{
public static GlobalLock acquireGlobalLock (String lockName,
long acquireTimeOut, long expiryTime)
{
GlobalLockingService lockService = null;
GlobalLock lock = null;
try {
Log.util.debug("Getting global lock %s", lockName);
lockService= GlobalLocking.getService();
lock = lockService.acquireLock(lockName, acquireTimeOut);
if (lock != null) {
lock.setExpirationTime(expiryTime);
}
}
catch (GlobalLockingException ex) {
Log.util.error(Fmt.S("Error acquiring global lock for %s: %s",
lockName, SystemUtil.stackTrace(ex)));
}
return lock;
}
public static boolean releaseGlobalLock (GlobalLock lock)
{
try {
lock.release();
return true;
}
catch (GlobalLockingException ex) {
Log.util.error(SystemUtil.stackTrace(ex));
return false;
}
}
}