Why Do I Exceed Elliott User License Count When There are No or Very Few Users in Elliott?

At the end of June 2014, we started to hear from several users reporting that they were receiving messages indicating an exceeding concurrent user count when starting up Elliott while there were no other, or very few other, users in Elliott.  The message is similar to the following:
Licensed Number of Concurrent Users (999) Has Been
Exceeded. Pls. Contact NETCELLENT Inc. Or Your
Authorized Dealer To License Additional Users.
The following is a sample screen showing how this message might look:



So far, we have not been able to identify the exact scenarios that cause this to happen.  However, there is some valuable information we learned from these incidents. We documented these scenarios in this article and hope it will provide you with a solution should you run into the same issue.

(1) Virtual Desktop Scenario
A user implemented virtual desktop through VMWare and it had been working for quite some time until the end of June 2014. This user reported that they were receiving exceeding maximum Elliott user count messages when they were starting up Elliott on the virtual desktop.  However, if they started up Elliott from their local workstations, it worked correctly.  Also, this user had Elliott V8 installed and was in the testing/evaluation stage of Elliott V8.  They tried Elliott V8 from the virtual desktop, and it worked as well.  So the issue only happened when users were running on (a) virtual desktop; and (b) Elliott V7.5.

After debugging this problem remotely on the client's virtual desktop, we found the following:
  • When we started up Elliott V7.5, we attempted to access the file system on the mapped drive -- such as  "M:\Elliott7" -- for a list of USER*.DAT files to determine the number of users currently logged in.  Files like USER#001.DAT, USER#002.DAT in the Elliott root folder are used to determined how many users were currently running in Elliott. These are created when a user starts up Elliott V7 and deleted when the user exits Elliott V7.
  • In this case, on the virtual desktop, we received an error indicating "Disk Full" when we tried to access the files and thus created the ripple effect of exceeding license users count.
  • Oddly, we found that if we hold off the executing for 5 seconds after starting up Elliott, before we access the files to see the number of USER*.DAT files that exist in M:\Elliott7, then this problem does not occur.
  • Somehow there was a strange behavior that occurred on the virtual desktop environment for the first 5 seconds after Elliott started up, when the mapped drive file system was not available.
  • There was an internal discussion at Netcellent whether or not we should fix this problem by delaying the start-up process by 5 seconds.  But this idea was shut down because (a) we don't know the exact cause of this problem, and we need to know the exact cause to determine the proper engineering solution; (b) even if we delay start-up by 5 seconds, there is no guarantee that this would not be a problem in a different environment;  and (c) delaying start-up by 5 seconds for everyone would slow down all Elliott users, including those that do not have this problem.
We communicated our findings to our user's IT staff, and they reported back that they resolved this problem by disabling Windows Defender antivirus on the virtual desktop.  Their explanation was that they used to have AVG antivirus on the virtual desktop, but AVG was too much of a performance hog on the virtual desktop since only one CPU is assigned to each session, so they disabled AVG.  They run Windows 7 on their virtual desktop. It comes with Windows Defender pre-installed automatically.  By running AVG, it disabled Windows Defender since you can have only one antivirus software running on any Windows desktop. After the disabling of AVG, it re-enabled Windows Defender and thus the problem.

We tried to verify this piece of information from our user's IT.  We tested the same scenario on several Windows 7 workstations at Netcellent running Windows Defender with the latest update.  But we could not duplicate this problem at all.  However, we conducted our test on physical Windows 7 workstations, as opposed to virtual workstations in their scenario.  So the performance characteristics between physical and virtual workstations may be different.  With this, we cannot confirm if Windows Defender is the cause of this problem or not.

The reason Elliott V8 is not prone to this problem is because Elliott V8 uses a different method for user licensing count and does not depend on getting a list of USER*DAT files from the mapped drive like the M:\Elliott7 folder.

(2) Remote Desktop Scenario
One of our users has remote sites.  The remote site users run Elliott on a Windows 2008 terminal server.  Their remote users started to receive the running out of Elliott users message in early June 2014.  All their local users running on a regular desktops experienced Elliott running correctly.

At first, we suspected this had something to do with their antivirus software Kaspersky. They were able to get the remote desk users to work after excluding Elliott folder's EXE from checking.  However, later this user's IT staff reported that the the program still does not work consistently after the exclusion.  Eventually, they reported back that since Elliott V8 works consistently with or without antivirus, they let their remote users run Elliott V8 to solve this problem.

(3) Regular Workstation Scenario
One of our users runs Elliott on a regular workstation.  They started receiving exceeding user count messages in early June 2014.  They tried to exclude Elliott from an antivirus check, but it did not help.  Through accidental trial and error, they found out that if they rebooted the Elliott server, then their Elliott users could log back in again.  If their Elliott users stayed in Elliott without exiting, then they could continue to run.  However, if the users exited Elliott, then the users may not have been able to get back into Elliott again until the server was rebooted.

This user can't upgrade to Elliott V8 due to custom modifications.  As of the last communication with them, they are asking their users not to exit Elliott to avoid this problem.

Feedback and Knowledge Base