Usage Events

KeyServer records various client actions in the KSUsage table. The event type is stored as an integer in the usageEvent field, and text representations of the event are in the KSTermEvent table. This document will describe the events in a bit more detail and explain when they will be written.

Event types and meanings

1obtainlicense obtained A license for a Site or Concurrent policy was obtained. This means it was issued by the server, and simultaneously used by the client. This single event for Site and Concurrent policies implies both allocation and usage, whereas Lease and Node policies have two separate events.
2returnlicense returned A license for a Site or Concurrent policy was returned. This means that at the same time it stopped being used by the client, it was revoked by the server.
3launchprogram launched A program was launched in a situation where KeyServer had issued a policy for the program, and was able to count and enforce the necessary policy allocation. Either KeyAccess was online and in communication with KeyServer, or the policy type was Lease or Node and the client had a policy allocation.
4quitprogram quit A program was quit in a situation where KeyServer had issued a policy for the program, and was able to count and enforce the necessary policy allocation. Either KeyAccess was online and in communication with KeyServer, or the policy type was Leased or Node and the client had a policy allocation.
5queueuser placed on waiting queue The user asked for a policy which had all copies in use. The KeyServer queued the user so that when a copy becomes available, the user is notified.
6dequeueuser remove from waiting queue The user was on a waiting queue for a policy, and a copy became available. They were removed from the queue and subsequently will be given the policy.
7denyprogram launch denied The client tried to run a program for which the server had Products defined with Policies specifying this launch should be denied.
8logged launchlogged program launched, no license control A program was launched while the client was connected to the server. The program was associated with a product, but no applicable Manage policy was found. An applicable Observe policy was found.
9logged quitlogged program quit, no license control A program was quit while the client was connected to the server. The program was associated with a product, but no applicable policy was found. An applicable Observe policy was found.
10launch offlineoffline program launch, license obtained A program Managed by a Site or Concurrent policy was launched offline. A policy associated with the program is recorded in the event by the server in an attempt to "count" the usage against some policy, but since the usage occured offline, there is no way to know whether if it had been online, this policy (or any policy associated with the program) would have been granted.
11quit offlineoffline program quit, license returned A program which is ultimately Managed by some policies which was launched offline was quit.
12logged launch offlineoffline logged program launched, no license control A program in a product with an Observe policy for this client (but no Manage policy) was either launched offline, or it was launched online, but the corresponding quit ultimately happened offline.
13logged quit offlineoffline logged program quit, no license control A program in a product with an Observe policy for this client (but no Manage policy) was either quit offline, or was quit online but the corresponding launch was offline.
14deny unkeyedunkeyed program launch denied unused
15logonsession logon A user logged on to KeyServer. In the simplest case this corresponds with a user logging in to the local computer. However, this event can also be written if the user goes offline, their session with KeyServer times out, then they come back online and reach KeyServer again. It will also be recorded if KeyServer is restarted, when clients that were connected to the old process initiate communication with the new process.
16logoffsession logoff A user logged out of KeyServer. The user logged out of the local computer, or KeyServer stopped running, or the client lost its connection to the KeyServer and the session timed out.
17blocksession blocked A client tried to log into KeyServer but could not. Either the computer record is set to Excluded, the connection is being attempted from a location which is not allowed to connect, the user was unable to authenticate, or the computer is set to Dormant and KeyServer's seats are full.
18infoserver informationCurrently not used.
19upserver started The KeyServer process started up.
20downserver stopped The KeyServer process stopped.
21shadow infoshadow informationCurrently not used.
22shadow upshadow started serving A KeyShadow started to communicate with clients because the KeyServer could not be reached.
23shadow downshadow stopped serving A KeyShadow stopped communicating with clients because the KeyServer came back.
24auditedaudit completed A client finished sending a software audit to the KeyServer.
25issuedserver lease issued A KeyServer license was issued to the client, enabling it to connect to KeyServer.
26revokedserver lease revoked A KeyServer license was revoked from the client, either due to client inactivity, or because the computer record was deleted or set to "Excluded".
27license issuedlicense lease issued A license for a Leased, Node, or portable policy was issued to the client and will count against the policy limit until it is revoked, regardless of whether it is actively in use.
28license revokedlicense lease revokedA license for a Leased, Node, or portable policy was revoked, and the client will no longer be able to use the policy unless it is issued to the client again.
29license startlicense usage start A client started using a license for a policy in order to enable the use of a program.
30license stoplicense usage stop A client stopped using a license for a policy that it no longer needs in order to use any program.
31session idle startidle A client recorded that the user input has been idle for the defined time and entered the idle state.
32session idle stopidled A client has recorded that there was user input exiting the system from an idled state.
33product usage startproduct start Usage started of a Product that is in an Observe or Manage Policy.
34product usage stopproduct stop Usage stopped of a Product that is in an Observe or Manage Policy.

Events 1-4 can have a reason indicating "shutdown", "lost", or "crashed". This means that the client became unable to talk to the KeyServer for some reason, and the session timed out. When this occurs, both the client and the server (if it is still running) know that the server will no longer be counting the usage. If the policy is set to "Relaxed Enforcement", or it is a policy type that remains allocated to the client, the client will continue to run the associated program and will report the remainder of the usage to the Server later. If on the other hand the policy is Site or Concurrent, and is uses "Strict Enforcement", the client will force the user to quit the program.

Usage vs Allocation, Offline

Since there are different events for usage and allocation, one can report either on policy usage or on policy allocation, for any policy type. This is perhaps most interesting for a Lease Policy, where usage and allocation are quite different, but unlike a Node policy, allocation does more than just grow over time.

When a 6.2 KeyAccess cannot contact the KeyServer, it knows in some cases that it has a policy - and in these cases, the eventual usage that is written will not be considered "offline" since the server has accounted for the policy allocation. So "offline" does not mean strictly that the client could not reach the server, but moreover that the client did not have a policy allocated. In this case, the client does not know whether it would have been able to get a policy allocation if it were online.

Selecting events for reporting

Generally when writing reports, multiple event types need to be selected depending on what type of data you wish to report on. Here are some examples:

Also, depending on what you need to report on, you may wish to select only "end" events - e.g. policy return but no policy obtain.