This site contains older material on Eiffel. For the main Eiffel page, see http://www.eiffel.com.

(This document is Appendix C of: ISE Eiffel: The Environment. You can also download the entire manual in Postscript format, tarred-gzipped.)

Table of Contents

C.1 OVERVIEW

ISE Eiffel is controlled by a license manager, which manages the use of the environment by one or more software developers. This chapter introduces the relevant information on the license manager for Unix.

Unix only

This appendix only applies to Unix versions, including Linux.

The license manager delivers authorizations, also called tokens, based on such criteria as maximum number of simultaneous users and components purchased. Updating the license, for example to raise the acceptable number of simultaneous users, or to license new products (such as EiffelBuild if you only purchased EiffelBench initially), is a simple task which can be done through a simple interaction by e-mail, fax or telephone. Licenses may be perpetual or for a limited time only.

The license manager is under the control of a "daemon process" which runs on a particular machine on your network, called the license server. Once the daemon is running, you can use the ISE Eiffel tools from any machine on the network; those machines need not be known at the time of installation.

This chapter explains how to register the products and obtain a license at installation time, and how to use licenses when interacting with the ISE Eiffel tools. If you are not the installer but merely a user, all you need to read is the final sections on using the license manager.

Note: permissions for installing the license manager

Like the rest of the installation process, product registration may be done under any appropriate user id; it does not require super-user access. To run the licensing commands, it is best to use the same user id that will own the delivery.

C.2 INFORMATION NEEDED TO OBTAIN A LICENSE

When installing ISE Eiffel you may obtain a license from Interactive Software Engineering (ISE) or from your Eiffel distributor. Prior to contacting the license provider please make sure you have the following information:

  • Organization name, department.

  • Address.

  • Name of primary technical contact.

  • Mail stop or internal address, if any, of technical contact.

  • Phone, fax and e-mail, if any, of technical contact.

  • "eifid" of machine on which daemon will run (see below).

In addition, you will need the following information, corresponding to what was requested when you ordered ISE Eiffel. If you are installing the software but did not prepare the order, please obtain this information from the appropriate person in your organization prior to contacting the license provider:

  • Maximum number of simultaneous users.

  • Expiration date, if any.

  • Tools ordered (e.g. EiffelBase, EiffelBench, EiffelBuild, EiffelCase, EiffelStore, EiffelVision).

C.3 OBTAINING THE "EIFID" OF THE LICENSE SERVER

To get the license you will need the "eifid" of the license server (the machine on which the daemon will run). This is a machine identification which will be obtained by running the program eifid on the license server.

To run eifid you must have the ISE Eiffel executable binaries in your path, as explained in chapter 1. If you have not yet done so, execute the following commands:

setenv PLATFORM "Machine architecture of the license server"
setenv EIFFEL4 "Delivery directory"
setenv PLATFORM Platform_name
set path = ($EIFFEL4/bench/spec/$PLATFORM/bin $path)

(This is the Unix C-shell form; for explanations, and the VMS variant, refer to chapter 1.)

The Platform_name is a conventional name for the platform (machine and operating system) on which you will be running the daemon. Examples are linux-elf for Linux (ELF format), solaris for Solaris, sparc for SunOS, sgi-5.3 for Silicon Graphics IRIX (including versions 6.2 and 6.3).

If you wish initially to run ISE Eiffel from the installation CD, as explained in the preceding appendix, the "Delivery directory" will on most platforms be /cdrom/Eiffel4.

The output of eifid is a string of letters and digits which you will need to include in the product registration form.

C.4 OBTAINING THE LICENSE

Once you have gathered the above information, you should register the product to obtain a license from ISE. The easiest is to fill the on-line form available for that purpose.

    Other possibilities: you can e-mail the equivalent form found in the file

    $EIFFEL4/install/registration

    Just edit the file, following the instructions given there, and e-mail the result to <register@eiffel.com>. A copy of this file is provided in file registration.original in the same directory; use it to restore registration if you make a mistake.

    You can also download and print a one-page license form equivalent to the on-line form, and fax it to 805-685-6869.

    Finally, you can get the license by calling 805-685-1006 between 8:30 AM and 5 PM on business days, PDT. Have the information ready when you call.

C.5 INSTALLING THE LICENSE CODE

When you send the information described above to your ISE Eiffel provider, you will get in return a message of one or more lines. There will be one group of lines per product ordered. The first line of each group is of the form

eiffelnn:
each subsequent line in the group is of the form:

xxxx yyyy zzzz ...
nn is a string of two digits, and xxxx, yyyy, ... are strings of four characters each, separated by spaces. (If the message does not follow this format, it has been corrupted during transmission; check again with your ISE Eiffel provider.) You will normally receive this message through the same medium that you used to request it --- e-mail, fax or telephone. Here is what you should do with the message (these instructions will also appear in the message itself):

  1. Find out what license directory you want to use. For a normally installed ISE Eiffel, the license directory is $EIFFEL4|install. If, however, you want to run ISE Eiffel from the installation CD, you will use for EIFFEL4, as explained in the preceding appendix, the value cd_dir|Eiffel4 where cd_dir is the CD-ROM mount directory (normally /cdrom on Unix); since the CD-ROM is not writable, you will in this case need to choose another license directory, in a writable part of your file system. In the rest of this discussion the license directory --- the standard one $EIFFEL4|install, or an alternate chosen by you --- is called license_directory.

    (Skip this step if you will be using a normal installation, not executing from the CD.) If you intend to run from the installation CD, set the value of the EIF_LICENSE environment variable to license_directory, through the following Unix C-shell command or its equivalent:

    setenv EIF_LICENSE license_directory
    Edit the file license_directory|registration and add the entire message received from the registration --- two or more lines of the format shown above --- at the end of the file.
    Run the command

    eiflicense

    which will install the license as requested. You may run that command from any directory, but it will only work if your path as well as the environment variables $PLATFORM and $EIFFEL4 are properly set up as described above and in chapter 1. The command will update the license files in directory license_directory and its subdirectory limand.

    C.6 STARTING THE LICENSE DAEMON

    Finally you must start the daemon process on the license server. To do this, just execute the command

    eifdaemon &

    (with the &indicating that it must run in the background). The command can also take an argument indicating the maximum time during which inactive users will keep their licenses. By default, a user session which does not use any ISE Eiffel command for 30 minutes will lose its license, so that other users who might have been turned down for lack of available license tokens will be allowed to proceed. If the original session later executes a command, it will have to regain a license token, which may or may not be available at that time.

    To set the license retaining time to a value other than the default 30 minutes, run the above command as

    eifdaemon -t   retain_time &

    where retain_time is a positive integer indicating a value in minutes, or the word forever. The command will not accept any value less than 10 for retain_time; the value forever means that inactive sessions will retain their licenses forever.

    The eifdaemon command creates a background process, which will show up under this name when you run the Unix ps command (Process Status) or the equivalent on your platform..

    The call to eifdaemon terminates the process of getting and installing the ISE Eiffel license.

    If you initially run from the installation CD and later perform a full installation, you should remove the environment variable EIF_LICENSE (with the C-shell you may use the command unsetenv EIF_LICENSE), kill the eifdaemon process, run eiflicense again, and restart eifdaemon.

    C.7 STARTING THE DAEMON AUTOMATICALLY

    Executing the call to eifdaemon at installation time creates the appropriate daemon process on the license server. If the license server goes down or is rebooted for some other reason, you will need to execute this call again. Until there is a daemon running no one can use ISE Eiffel.

    To avoid the need for this manual operation at reboot time, many system administrators prefer to include a call to eifdaemon in the shell script that is executed automatically at boot time. This script is given by a file normally found in the /etc directory, usually /etc/rc.local or /etc/rc.boot on Unix.

    If you include the daemon call in such a boot script, you will need to express the command under its full path name

    $EIFFEL4/bench/spec/$PLATFORM/bin/eifdaemon &

    with $EIFFEL4 and $PLATFORM replaced by their actual values (or initialized earlier in the boot script). Add the -t  retain_time argument if desired.

    C.8 USING THE LICENSE MANAGER

    Your organization's license defines a certain number of "license tokens". As many ISE Eiffel sessions may be simultaneously active as there are available tokens.

    Occasionally, you may be unable to start a session because not enough tokens are available. In that case you may try again later when some other users have terminated their sessions.

    Your session will periodically check that you still have a license and that the license manager is alive. If the license manager disappears you will be given a "grace period" to save your work.

    If your session remains inactive for a long time, you may lose your token; when you restart, you will have to reacquire a token or, if none is available, to exit and retry later. The time during which an inactive session retains its license is 30 minutes by default but your system administrator may have set it to a different value at installation time as explained in the preceding section. You will be permitted to save any ongoing work (see below).

    C.9 TROUBLE-SHOOTING THE LICENSE MANAGER

    Most of the time the license manager is invisible to developers using ISE Eiffel. Occasionally, you may run into one of the following problems.

    Note: safeguard when license is lost

    If your session loses its license token for any reason, you will be permitted to execute the necessary "save" actions before terminating the session.

    If all tokens are currently in use you will get a message telling you that no token can be found to start EiffelBench, es4 or the other tool that you requested. The message will also give you the list of current holders, with the machines that they are using, for example:

    almaviva@salotto antonio@giardino
    barbarina@padiglione cherubino@padiglione
    contessa@camera figaro@giardino
    susanna@gabinetto

    This enables you, if you so desire, to try to find one person on the list who might be willing to relinquish a token.

    Of course if such denials of license tokens occur frequently then in all likelihood the number of people using ISE Eiffel on a regular basis has grown since your organization acquired its licenses. You may need to upgrade your installation; check with your system administrator.

    A message of the form Unable to register application EiffelBench means that the license manager could not find a valid license key file. If you want to run ISE Eiffel from the installation CD and have not performed a full installation, check that the environment variable EIF_LICENSE is set to the value of the license directory as explained earlier in this chapter. If that is not the problem, check the status of your license with your system administrator.

    If you were initially running ISE Eiffel from the CD, then switched to a normal installation but forgot to remove the environment variable EIF_LICENSE, EiffelBench will not find the license files and will be unable to start. The error message tells you about the missing files, advising you to update or remove the environment variable.

    A message of the form Daemon does not answer means that no active license daemon could be found. This message usually takes some time to come up when you attempt a command, since the command keeps querying the license server for the daemon. One possible reason is that the license server is down, or not properly accessible through the network; if this is the case, you must wait until it is back in service (make sure that eifdaemon is restarted at boot time if a reboot is necessary). If the license server is up and accessible, the message may mean that the daemon process was never started; this may be because the machine was recently rebooted and no call to eifdaemon had been included in the boot script as suggested above. Or the license daemon may have been inadvertently terminated. To check whether there is a daemon running, execute the operating system's Process Status command (ps on Unix) on the license server and look for a process running eifdaemon. If none is presen

    A Software lacks authorization or Feature is disabled message means that you are attempting to use a tool for which your installation does not have a license. Check with your system administrator.

    A License lost message means that your session was idle for more than retain_time minutes, where retain_time is the token retaining time specified at installation time, as explained above (30 minutes by default), and that when it reapplied for a token none was available. As noted, you will be permitted to save any modifications made since the last save.

    Abnormal termination of EiffelBench or the es4 command will not normally cause license problems; the token will be released, ready to be used by a new session. Some unexpected combination of circumstances may, however, fail to return the token. If you need to recover such an erroneously retained token, do one of the following:

    • Wait for a period of retain_time minutes, 30 minutes by default. (This method obviously does not apply if the value forever was specified in eifdaemon for retain_time.)

    • Kill and restart the daemon process (or more likely ask the system administrator to do so). This method will work in all cases, but will force all currently active EiffelBench sessions to terminate and reapply for a token when they restart. (Here too these sessions will be given an opportunity to save the current state of their work.) To find the daemon process, run the operating system's ps command on the license server and look for the identifier of the process running the eifdaemon command. Then use the operating system's kill command to kill that process.

    If you ever need customer support for license-related questions, make sure to have access to the registration file as described earlier in this appendix.