|Table Of Contents||Index|
XMETER is a software metering program for Novell Networks. Its simple, uses NO RAM, and does no require any VAPs or NLMs running on the server.
XMETER uses Novells semaphores to monitor program usage. What you do is create a BATCH file to load your software. You open a semaphore on the way in and close it on the way out. The batch file must be programmed to restrict access to the program. XMETER returns dos errorlevel codes to control batch files.
Usage: XMETER <Semaphore> <MaxUsers> /O/C/U/L/E/FSemaphore is any name you want to give a semaphore. MaxUsers is the maximum number of users allowed to use the semaphore or the name of a meter list file.
/O Open semaphore. /C Close semaphore. /U Displays number of semaphore users. /L Outputs status line for log file redirection. /E Returns number of semaphore users as an error level. /F:Name specifies log file name. /A:Name specifies name of TSR to attach the semaphore to.A list file can be used to specify the maximum number of users for each program. This list file contains lines as follows:
WORDSTAR 10 LOTUS 5 DBASE 6Using a meter list file: ------------------------ XMETER can use a special text file to limit semaphore access. To use this method, substitute the name of the list file for the MaxUsers parameter as follows:
This opens semaphore TEST if less than 10 users have it open, otherwise to returns DOS ErrorLevel 1.
This closes semaphore TEST allowing others to use it.
This opens semaphore TEST if less than the number of users specified in METER.LST have it open, otherwise to returns DOS ErrorLevel 1. Log information is appended to log file named USAGE.LOG.
Example BATCH file for WordStar limited to 12 users:
@Echo Off XMETER WORDSTAR 10 /O if ErrorLevel 1 goto deny
rem Close Semaphore when done.
XMETER WORDSTAR /C goto e
:deny cls Echo Access Denied! All copies of WORDSTAR are in use.
rem Exit Here :e
XMETER Lotus METER.LST /OThis allows you to maintain the number of copies of each program in a single list.
Lotus 10 Wordstar 15 dBase 9
Usage Tracking: ---------------
XMETER provides usage tracking by outputing a comma delimited ascii line for each semaphore open and close. You must select the /L switch to activate this feature. IMPORTANT: Don't make USAGE.LOG sharable!
Example:This command appends the following line to the file USAGE.LOG.
"MARC","LOTUS","3","O","Y","06-20-93","15:00:56","250:41","16"The line contains 9 fields as follows:
1) User Name 2) Semaphore Name 3) Number of Semaphore users after execution 4) Command, O=Open C=Close 5) Success Status, Y=Success N=Failure 6) Date 7) Time 8) Internet Address of WorkStation 9) Logical Connection NumberHow it Works: ------------- XMeter works by attaching a NetWare semaphore to a TSR in memory. It requires that you have at least one TSR loaded. XMeter will now find TSRs in high memory. In fact, XMeter searches high memory first.
Since Netware semaphores are released when the connection is lost, XMeter allows users to reboot their computer in the middle of an application without having to run a cleanup utility to release the metered resource.
Tricks: ------- When XMETER creates semaphores, it adds the letters XM- to the front of the semaphore name. So semaphore TEST is really XM-TEST. The idea here is so that all XMETER semaphores can be indetified from other Netware semaphores.
Whenever a workstation first uses XMETER it creates a semaphore named XM-XMETER. This can be used to see how many users are using XMETER software. This semaphore can be cleared by using the command:
XMETER XMETER/CIf a user turns off their computer while running an application, Novell will release their semaphores after 15 minutes. All semaphores are also released when the user logs out. If a user reboots within 15 minutes, the semaphores are cleared upon login.
This software package is not the best program out there. It is designed around being a simple "just works" solution to software metering. It is flexable and uses no memory on the workstation.
For more sophisticated software metering use MarxMenu.
|Table Of Contents||Index|