LispWorks Guide to the License Server > 1 The License Server


1.4 Interaction between Lisp and hqn_lsd

Note that the following description applies equally to the Lisp image and to any layered products.

Each time you start your image (or load a layered product, like CLIM, into an already running image) a check is made to ensure that you do have a valid license for the product in question. Depending on the value of the UNIX environment variable LW_CHECK_NETWORK , or the Lisp variable
sys:*check-network-server* , the system will check for standalone keys (that is, in keyfiles); if any keyfile check fails and network licensing has been enabled, then the system will request a license from hqn_lsd .

LW_CHECK_NETWORK can take any of the following values, which are case-insensitive:


Do not attempt to contact the License Server.


Only try the License Server; do not try the keyfile.

Any other value

Try keyfiles first and then the Licence Server, if necessary.

The main use of the environment variable is to allow you to configure your image without reading local configuration files into Lisp first, which would require the extra step of requesting a keyfile from LispWorks Ltd.

If LW_CHECK_NETWORK is not set, the action is controlled by the value of sys:*check-network-server* . This, in turn, can take the following values:


Do not attempt to contact License Server.


Only try the License Server; do not try the keyfile.

Any other non- nil value

Try keyfiles first and then the License Server if necessary.

The number of licenses issued by LispWorks Ltd to each customer site corresponds to the number of Lisp processes which may be simultaneously active at that site. As a general rule, they may be run on any machines at that site. This differs from the standalone system in two ways:

Once a license has been granted to a running Lisp image by hqn_lsd it remains assigned to that UNIX process until the process terminates. If Lisp terminates normally--for instance by calling (lw:quit) or the editor command Save All Files And Exit --then the license will be released for reuse, automatically and immediately.

On the other hand, if Lisp terminates abnormally (for example, it was killed externally) then the license will not be released upon termination. However the License Server will notice within 10 minutes that the Lisp process has stopped confirming its license, and at this point the daemon itself will release the license.

The administration tool, hqn_lsa (see The License Server Admin Tool) can be used at any time to release any license. If this license belongs to a process that has terminated abnormally then it can now be reused. If the license belongs to an active Lisp process then that process will request a new license from the server daemon.

If a running Lisp image is stopped (with Ctrl+Z ) or spends a very long time garbage collecting, then the License Server may detect that the image is no longer active and release its license. In the normal course of events, the image will automatically request a new license from the server daemon as soon as it becomes active again.

If, for whatever reason, a running image requests a new license because its old one cannot be found (for example, it has been released externally, or the License Server and its backups cannot be contacted) then

A typical example:

;; *** License for LispWorks lost - access to this software
;; disabled.
;; *** LispWorks is regularly checking for a license to become
;; available.

This may be followed later by the message

;; *** License for LispWorks recovered.
LispWorks Guide to the License Server - 22 Dec 2009