Skip to main content
Ex Libris Knowledge Center

GUI "License limit exceeded"

  • Article Type: General
  • Product: Aleph
  • Product Version: 20
  • Relevant for Installation Type: Dedicated-Direct; Direct; Local;

Problem Symptoms:

Users are unable to log into any GUI module, and receive the "License limit exceeded" error when attempted.

When looking at the log directory (e.g. /exlibris/aleph/a22_1/log) on the UNIX sever, this message appears in the pc_server_<port>.log:
Licensed GUI users: nnnnnnnnn
Active GUI users: nnnnnnnnn
Error: License limit exceeded

Causes:
The "Error: License limit exceeded" message in the pc_server log can be due to one of the following:
1. Too many GUI users (thus exceeding the license limit).
2. Missing z65_id Oracle index

Resolutions:

1. Too many GUI users: see Article 000037619 ("License limit exceeded or System is overloaded **MASTER RECORD**").
(Direct link provided in "Additional Information" section of this article).

2. Missing z65_id Oracle index:
This is a more common cause for the error.
Often the most recent (nightly) run to the clear_vir01 process is the cause for the missing z65_id.

The z65_id is the index of the GUI session table where a new record created every time a computer connects to the pc_server.
See Article 000036887 ("What is the Z65 table?") for more information; a direct link is provided in "Additional Information" section of this article.

The vir01 library is a shared library that holds temporary information.
The clear_vir01 process removes these temporary records.
See Article 000034880 ("What is the VIR01 library?") for more information; a direct link is provided in "Additional Information" section of this article.

After logging into the server as the "aleph" user, enter these commands:

1. dlib vir01
To access the VIR01 library on the server.

2. util a/17/14
To open the Utilities menu and select the "List Exisiting Indexes for a Table" options.

3. z65
To view the z65 Oracle table.
If "Z65_ID" does not appear under "Exist in the Database", this means it is missing.

4. CTRL+C
To exit the util menu.

5. aes
To open the ./alephe/scratch directory.

6. ls -lrt *clear_vir01*
To find only the clear_vir01 log files, sorted oldest to newest.

7. view <most recent clear_vir01 file>
To check the latest log to see if it contains messages such as:

SQL-ALEPH_ADMIN> CREATE UNIQUE INDEX VIR01.Z65_ID ON VIR01.Z65 (Z65_REC_KEY ASC).
ERROR at line 1:
ORA-01452: cannot CREATE UNIQUE INDEX; duplicate keys found

or

ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired

The above text confirms the problem's cause because it indicates that a z65 pc_server session was created while clear_vir01 was dropping/creating the z65, preventing the Z65_ID from being built.

The "Active GUI users" count seen in the pc_server log starts to build until it exceeds the maximum specified in the license.

Run the clear_vir01 process:

1. dlib vir01
To access the VIR01 library on the server.

2. util x/8
To open the Utilities menu and select the "Clean Virtual Library (VIR01)" process

IMPORTANT: If users are currently using the web OPAC or GUI, running clear_vir01 will abort their sessions.
If the GUI/z65 is the only problem, enter the following commands:

1. dlib vir01

2. util a/17/1

3. vir01

4. z65
To "Drop & Create" the z65 table.

Additional Information

The cause can be further confirmed after logging into the server as the "aleph" user, and entering these commands:

1. s+ vir01
To access the SQL database in the VIR01 library.

2. select count(*) from z65 where z65_type like 'PC-SERVER%';
To determine the number of pc_server records exist in the Z65 table.

3. quit
To exit the SQL database

If no clear_vir01 log is found in $alephe_scratch, consult Article 000045416 (clear_vir01 doesn't run *MASTER RECORD*).

If there is no clear_vir01 log to check for messages, look in the most recent pc_server_<port>.log in the ./log directory (e.g. /exlibris/aleph/a22_1/log) for messages such as:

  Oracle error: update_cursor z65
  ORA-00942: table or view does not exist
(or io_z65_count, io_z65_write, or "WRITE ERROR")

If running clear_vir01, in order to prevent servers from interfering, they must be stopped prior to running, and restarted after.
See Article 000044208 (Restart Servers from job_list) for information.

To check if clear_vir01 has run without error, use the following commands:
1. aes
2. grep ERROR *vir01*
This will search all the vir01 logs for the word 'ERROR'.
If no results appear, than it has run successfully.

[For a general discussion of the "License limit exceeded" condition, see Article 000037619 (License limit exceeded or System is overloaded **MASTER RECORD**).  
This article describes how to see who is connected.]

Other articles referenced in this article:
For more information on Z65, see Article 000036887 (What is the Z65 Oracle Table?)
For more information on vir01, see Article 000034880 ** What is the VIR01 library? **)

Category: System management


  • Article last edited: 4/16/2014