# aquireLock throws exception

**URL:** <https://forum.servoy.com/t/aquirelock-throws-exception/11653>\
**Category:** Classic Servoy\
**Created:** [January 21, 2010, 4:07pm UTC](https://forum.servoy.com/t/aquirelock-throws-exception/11653 "2010-01-21T16:07:42Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![msedita](https://avatars.discourse-cdn.com/v4/letter/m/65b543/32.png) [@msedita](https://forum.servoy.com/u/msedita)\
**Post date:** [January 21, 2010, 4:07pm UTC](https://forum.servoy.com/t/aquirelock-throws-exception/11653/1 "2010-01-21T16:07:42Z")

</div>

I use this code to generate a custom auto sequence value, which the user can set the starting value for:

```auto
function ggentransid(pctransid_type)
{

	var ofsctl = databaseManager.getFoundSet(currentcontroller.getServerName(),'c6ctl')	
	ofsctl.loadAllRecords()
	ofsctl.setSelectedIndex(1)

	while(!databaseManager.acquireLock(ofsctl,1,'transid_lock'))
	{
	   application.sleep(1000)
	}
	databaseManager.refreshRecordFromDatabase(ofsctl,1)
	var loctlrec = ofsctl.getRecord(1)

	if (pctransid_type == 'P')
	{	
	loctlrec.c6paytransid += 1;
	globals.gsave_record(loctlrec)
	var lctransid = loctlrec.c6paytransid
	databaseManager.releaseAllLocks('transid_lock');	
	}
	else
	{
	loctlrec.c6chgtransid += 1;
	globals.gsave_record(loctlrec)
	var lctransid = loctlrec.c6chgtransid
	databaseManager.releaseAllLocks('transid_lock');	
	}		
	return lctransid+'' // convert ot string
}

```

It seems to me the aquireLock loop should repeat infinitely if the lock cannot be acquired. But instead, a Servoy exception occurs, the user gets a message, and a new ID is not generated. Any ideas?

---

<div class="post-metadata">

**Author:** ![msedita](https://avatars.discourse-cdn.com/v4/letter/m/65b543/32.png) [@msedita](https://forum.servoy.com/u/msedita)\
**Post date:** [January 21, 2010, 4:19pm UTC](https://forum.servoy.com/t/aquirelock-throws-exception/11653/2 "2010-01-21T16:19:09Z")

</div>

Problem solved and lesson learned - it’s not the code, security was set up on the tables that stored the last sequence used that prohibited users from updating it.
