• Application locks are just a simple implementation of semaphores that use SQL Server's built-in support for locks. They are used by an application calling sp_getapplock to aquire some resource. What resource is not really interesting, it's just the fact that as long as there is a lock on that resource noone else can aquire a lock on that resource. So if another application, or another client/thread/proc/whatever in the same application, tries to use sp_getapplock to aquire a lock on that same resource they will now have to wait until the first process releases the lock.

    So they don't really have anything with SQL Server to do, they are just a convenient way for applications to implement serial access to some resource.