The configuration file "Als.cfg" controls some aspects of the
behaviour of the server. It is a plain ASCII text file which can be
viewed and edited in any text editor, such as Windows Notepad. The file
format is very simple, and consist of simple "key = value" pairs.
Comments are preceded by a hash sign '#' (also known as a pound sign or
octothorpe in US English). The configuration file does not normally need to be edited, and should
usually be left as-is for most environments. It is read at startup-time
for the service, so any changes in the configuration file will only go
into effect after the service is restarted. The following details are covered in
this section:
- Configuration Variables
Available
- The Configuration File
- Configuration Variables in
Detail
|
Note that in ALS v5 the configuration file was redesigned. Configuration
files from v4 and earlier should not be used with ALS v5 and higher. |
The settings for the configuration file are defined below:
- LICENCE_SERVER_PORT_NUM
- HTTP_SERVER_PORT_NUM
- HTTP_SERVER_ENABLED
- TIMEOUT_SECS
- ALIVE_RECONNECT_ENABLED
- COMPUTER_NAME_ENABLED
- ANY_DEPT_ENABLED
- VERSION_5_PROTOCOL_ENABLED
- DEBUG_LEVEL_NUM
- DEBUG_RETENTION_DAYS
- MAX_CONNECTIONS_PER_LICENCE
- SUPPORT_IP_V4
- SUPPORT_IP_V6
A default configuration file is shown below.
##########################################################
# Altiva Licensing Server Configuration File #
# #
# Last modified by Piers Porter #
# Altiva Software, Inc. #
# 21st March 2016 #
# #
##########################################################
#
# This variable defines the port number of the licence server.
# ALS will use this port to communicate licence requests with the client machines.
# This only needs to be changed if it conflicts with an existing port.
#
LICENCE_SERVER_PORT_NUM = 1999
#
# This variable defines the port number of the ALS HTTP server.
# ALS will use this port to display logging files in HTML format to client machines.
# This only needs to be changed if it conflicts with an existing port.
# It is ignored if the HTTP server is disabled via the setting HTTP_SERVER_ENABLED = 0.
#
HTTP_SERVER_PORT_NUM = 1998
#
# This setting defines whether the HTTP logging is enabled.
# HTTP logging allows remote clients to view the status of the ALS log files by browsing to the machine running ALS.
# For example: http://myserver:1998
#
HTTP_SERVER_ENABLED = 1
#
# Maximum time allowed between heartbeats before a licence is freed back into the pool (in seconds).
# This setting is used to adjust the time allowed for lost connections to be freed.
# A lost connection typically happens when a computer is put in sleep mode, the client application exits unexpectedly,
# a network connection is lost, or the client IP address unexpectedly changes.
# The client will send regular heartbeats to the server. If no heartbeats are received after the given number of seconds,
# then the licence is relinquished automatically.
# The default time of 1800 seconds means 30 minutes between the heartbeat being received and the licence becoming relinquished to the pool.
#
TIMEOUT_SECS = 10
#
# Automatically allocate a new licence if an existing connection to the server is lost.
# This will automatically allocate a new licence from the pool for a client machine whose licence has already been freed.
# This usually happens when a DHCP controller allocates a new IP address to a client that already has a licence checked out from the pool,
# or a formerly lost network connection is re-established.
#
ALIVE_RECONNECT_ENABLED = 1
#
# Use DNS/WINS lookup for computer name?
# This may slow the server down if the client is on a different workgroup / domain to the server.
# Disabling COMPUTER_NAME_ENABLED will report the computer name as "Unknown" in all log files
# and instead only display the IP address in IPv4 dotted-quad format.
#
# COMPUTER_NAME_ENABLED = 1; Lookup is enabled
# COMPUTER_NAME_ENABLED = 0; Lookup is disabled
#
COMPUTER_NAME_ENABLED = 0
#
# Department licensing options. This is only relevant if the licence file on the server has the "DEPT=" command.
#
# ANY_DEPT_ENABLED = 0 : This means that a client can only check out a licence for its own department
# ANY_DEPT_ENABLED = 1 : This means that a client can check out a licence from any department, but it will try to fetch with its own first.
#
ANY_DEPT_ENABLED = 0
#
# This option allows new ALS V5 licence functionality to be unlocked between server and client.
# This should only be enabled if all clients support the new client/server protocol, which was enabled in CADconform for MicroStation v8.00.21 in April 2016.
# If there are any client machines running an earlier version of CADconform, then this option should be disabled.
#
VERSION_5_PROTOCOL_ENABLED = 0
#
# Debug level option.
# Modifying this variable changes the amount of information stored in the debug log file.
# If there is a problem with the Altiva Licence Server, change this variable to the highest level and restart the ALS service.
# This will provide more information in the log file to assist in diagnosing networking, firewall and licence pool problems.
#
# DEBUG_LEVEL_NUM = 0 : Minimal data logged. Only basic start/stop information and critical errors are logged.
# DEBUG_LEVEL_NUM = 1 : Moderate information on service activities and problems are logged. (Default setting)
# DEBUG_LEVEL_NUM = 2 : More service information is logged, including moderate warnings and routine service operations.
# DEBUG_LEVEL_NUM = 3 : Verbose debug messages information logged. All service information is reported. Use this to troubleshoot only, as it may impact performance.
#
DEBUG_LEVEL_NUM = 3
#
# Debug log file retention time.
# This defines how old inactive debugs file are allowed to get before they are deleted automatically.
# Note that this only affects previous log files and not the current log file. If the computer or service has a
# longer uptime than this definition below, then there is no limit on how old the current debug log file can get.
# Older debug logs can be useful for tracing problems with the service. If no such problems occur then this
# setting can be safely ignored.
#
# Note that the default is 4 weeks (28 days)
#
DEBUG_RETENTION_DAYS = 2
#
# Maximum connections per unique licence/client.
# If this is set higher than 1, then each client can request multiple connections for the same product from the same
# machine, if it runs multiple instances of the requested product. In this case, the licence is only freed to the pool
# when the number of active connections reaches zero.
# In ALS v5.0.01 and earlier, there was no limit on the number of simultaneous connections each licence could have.
# In ALS v5.0.02 and higher, this is set to 1 by default, meaning that each licence can only be connected to one client
# at a time.
#
MAX_CONNECTIONS_PER_LICENCE = 1
#
# Allows support for IPv4.
# This should normally be set to "1" unless your network is configured to be IPv6 only. For example, some VPNs such
# as Microsoft DirectAccess do not support IPv4 for name resolution. Disabling IPv4 may give a slight increase in
# connectivity if this is disabled as it means an IPv4 connection will never be attempted. If set to "1" then IPv4
# will be allowed, however IPv6 will usually be attempted first if allowed.
#
SUPPORT_IP_V4 = 1
#
# Allows support for IPv6.
# This should normally be set to "1" unless your network is configured to be IPv4 only. Older network hardware may not
# fully support IPv6. Disabling IPv6 may give a slight increase in connectivity if this option is disabled as it means
# an IPv6 connection will never be attempted. If set to "1" then IPv6 will usually be attempted first.
#
SUPPORT_IP_V6 = 1
Below are more details on what settings are available and how each one works:
This integer value represents the port number to use for communication
on the server. It must also match the port number set in the client
side licence file (see also: "Licence Files"). It is set to "1999" by
default, but can generally be set to any number as required. Port
numbers below 100 should generally be avoided as this may
interfere with ports reserved for other system applications.
This integer value represents the port number to use for HTTP communication between
the server and the client. This is used by the client to view the ALS status in
a web browser. It is set to "1998" by default, but can generally be set to any number
as required. Port numbers below 100 should generally be avoided as this may interfere
with ports reserved for other system applications.
This option enables ("1") or disables ("0") the HTTP Server. The HTTP Server
allows logging information to be displayed to clients in a web browser using the
server name and HTTP port in the URL. For example: http://licserver01:1998.
|
The ALS HTTP Server running in the Microsoft
Edge browser |
This value defines how long to wait (in seconds) before cleaning up
lost connections. Each client application sends a "heartbeat" back to
ALS to indicate that it is still running and continuing to use the
licence. If the network connecting the client and the server goes down,
or the client suddenly crashes or loses power, then the server needs to
relinquish the licence that was being used, otherwise the pool of
available licences may be exhausted by computers that are not actively
using a licence. Therefore ALS will periodically relinquish a licence
when a certain amount of time has past without ALS receiving a
heartbeart from the client. Under normal operation a client will
specifically send a message to ALS that it is no longer using a licence
when the application exits, so the licence is freed immediately. The
heartbeat time setting is only used when the client application did not
exit gracefully, and thus it is not a common occurrence that the server
needs to free licences manually through the heartbeat time. The default
time for a freeing a licence after the heartbeat is lost is 1800
seconds (30 minutes). Generally the clients should always send a
heartbeat at least twice as often as ALS frees licences with lost
heartbeats. The client-side heartbeat can be set by the client
application.
This option will enable ("1") or disable ("0") the functionality to
automatically re-request a new licence if an existing connection to the server
is lost. If this is enabled, then ALS will automatically allocate a new licence
from the pool for a client machine whose licence has already been freed. This is
an usual event that may happen when the licence was freed erroneously. The more
common causes of this might be:
- A formerly lost network connection is re-established, for example the
ethernet cable was unplugged or the wireless connection was temporarily
lost.
- A DHCP controller renews the server connection, allocating a new IP
address to a client that already has a licence checked out from the pool
under a different IP address.
- The ALS service was restarted, either manually or due to a reboot of the
server.
- The client machine was rebooted unexpectedly, or an application crash
occurred before the licence could be relinquished properly.
This setting is used by for logging purposes only. It can be set to "0"
to disable, or "1" to enable. If it is enabled, then the computer name
will be displayed next to the IP address of each computer in the log
file. This can be useful for seeing which computers are using licences
regularly if the IP address is dynamic (and therefore not a useful
unique identifier). The disadvantage of using this setting, is that if
the client computer accessing ALS is part of a different workgroup or
domain, then this can slow down the licence communication, or possibly
cause ALS to time-out. If time-outs or noticeable lags occur regularly,
COMPUTERNAME_LOOKUP should be disabled by setting the value to "0".
As of ALS
v5, the computer name lookup should be much faster when allocating licences to
client machines that also support the enhanced ALS v5 protocol. In CADconform
for MicroStation, this will be version 8.00.21 and higher.
This value controls behaviour of department licensing and can be set to
"0" (disabled) or "1" (enabled). It is only used for licence files
that have specifically been generated for a particular department. If
it is enabled, then licence requests from a specific department will be
attempted first, and then fall back to any available department. If it
is disabled, then licences for a specific department can only be met
with a free licence from a corresponding department. This functionality
can be useful if you want to reserve some licences so they are always
available for a specific department. Consider the example below:
Example scenario:
You have a pool of 10 licences of a product available for everyone,
however you want to install it on about 10 machines, as the application
is not used all the time by everyone. You want the licences to be
available as a first in, first served basis. You also have 2 IT
administrators, and they should always have access to the application
as top priority, so they can resolve any issues with the application if
needed. What you can do is request a licence file where you have 8
normal licences, and 2 licences reserved for the IT department. This
licence file will then run on ALS. On the two IT computers, they have a
client-side setting that specifically requests a licence reserved for
the IT department.
Now assume that you have 8 normal clients running the application and one more normal user tries to check-out a licence.
- If the DEPARTMENTS_ALLOW_ANY
is set to "0", then the user will not be granted a licence, as there
are always 2 licences kept in reserve for the IT department.
- If the DEPARTMENTS_ALLOW_ANY
is set to "1", then the user will be given one of the IT department
licences, as the department is only used to prioritise which licences
are granted first.
Now assume that you purchase an extra 2
licences reserved for a new department named "Mapping". You have 8
normal clients running the application and one more normal user tries
to check-out a licence.
- If the DEPARTMENTS_ALLOW_ANY
is set to "0", then the user will not be granted a licence, as 2
licences are reserved for the IT department and 2 reserved for mapping.
- If the DEPARTMENTS_ALLOW_ANY
is set to "1", then the user will be given either one of the IT department
licences, or one from the mapping department.
Now assume that you have 2 IT
administrators already running the application and one more IT
administrator tries to check-out a licence.
- If the DEPARTMENTS_ALLOW_ANY
is set to "0", then the user will be granted a licence only if there are still some licences left in the normal pool.
- If the DEPARTMENTS_ALLOW_ANY
is set to "1", then the user will be given either one of the normal
licences if available, or one from the mapping department.
Therefore the DEPARTMENTS_ALLOW_ANY setting only has bearing on whether department licences are available to clients that are not in that department.
This option allows new ALS Version 5 licence functionality to be unlocked
between server and client. This should only be enabled if all clients support
the new client/server protocol, which was enabled in CADconform for MicroStation
v8.00.21 in April 2016.
If there are any client machines running an earlier
version of CADconform or other products released before this date, then this
option should be disabled. This option is off ("0") by default in v5.0 of ALS,
but will probably be defaulted on ("1") in future versions.
The DEBUG_LEVEL is used to define how much debugging information
is included in the log file. The higher the number, the more debugging
information is logged. The lowest level is "0" and the highest level is
"3". The default level is "1", which gives minimal debugging
information. The disadvantage of higher levels is that it can create
larger log files and possibly slightly slower operation, though this
affect may be negligible on all but the slowest servers. The various levels of
debugging are outlined below:
- DEBUG_LEVEL_NUM = 0 : Minimal data logged. Only basic start/stop
information and critical errors are logged.
- DEBUG_LEVEL_NUM = 1 : Moderate information on service activities and
problems are logged. (Default setting)
- DEBUG_LEVEL_NUM = 2 : More service information is logged, including
moderate warnings and routine service operations.
- DEBUG_LEVEL_NUM = 3 : Verbose debug messages information logged. All
service information is reported. Use this to troubleshoot only, as it may
impact performance.
See also the
DEBUG_RETENTION_DAYS setting below.
The DEBUG_RETENTION_DAYS setting defines how many days to keep legacy
debug log files for. Every time the ALS service is restarted (either
due to a manual restart or an automatic one after a server reboot), a
new debug log is created. At this stage in starting up, the service
will also automatically delete any existing debugging log files that
are older than the current setting for DEBUG_RETENTION_DAYS. It is
possible for a debug log to be much older than this setting if it is
still in active use, so the age and size of the current debug log will
also be a function of the current uptime of the server. The default is 21 days. If sporadic problem occur with the server that can not be
traced in the current debug log, then you may wish to increase this
size so that are longer audit history is available. The default is 4 weeks (i.e. DEBUG_RETENTION_DAYS
= 28).
The setting MAX_CONNECTIONS_PER_LICENCE defines how many times each licence can
be checked out to a unique client machine. It is set to 1 by default, meaning
each machine can have only one connection at a time. This means that one machine
drawing more then one licence by running multiple instances of a product,
(either simulatenously or through a Virtual Machine), will be treated as one
unique request. Closing the first instance when multiple connections have been
requested will immediately free the licence back into the pool for other client
machines to request. If this variable is set to a number higher than one, then
each successive licence request counts as an additional connection. The licence
is then only freed back into the pool when the number of active connections is
reduced to zero. This variable was added in v5.00.03 of ALS. Previous versions
of ALS had no upper limit on simultaneous connections, which may delay the
relinquishing of the licence back into the pool until all connections were
closed.
This setting enables support for the TCP/IP v4 protocol.
This allows connectivity via 32-bit dotted quad addresses, for example www.google.com has the IPv4 address "172.217.25.142".
This setting should normally be set to "1" unless your network is configured to be IPv6 only. For example, some VPNs such
as Microsoft DirectAccess do not support IPv4 for name resolution. Disabling IPv4 support may cause licence communication to fail faster as it means an IPv4 connection will never be attempted. Generally IPv6 will usually be attempted first if enabled (see below).
Versions of ALS prior to v5.1.0 would always connect only via IPv4, so turning this option on and disabling IPv6 can be seen as running ALS in legacy mode, mimicking the functionality of v5.0.x and earlier.
This setting enables support for the TCP/IP v6 protocol. This allows connectivity of 128-bit addresses via 8 groups of 4 hexadecimal addresses, for example www.google.com has the IPv6 address "2404:6800:4006:805::200E".
This setting should normally be set to "1" unless your network is configured to be IPv4 only. This might be useful if using older network hardware that does not fully support IPv6. Disabling IPv6 may give a slight increase in connectivity if this option is disabled as it means an IPv6 connection will never be attempted.
If set to "1" then IPv6 will usually be attempted first before IPv4. If both IPv4 and IPv6 are enabled (the default setting), then ALS will attempt to create a dual socket on the licence and HTML port, allowing clients to connect using either IPv4 or IPv6. Note that a client that only supports IPv4 may still have its address mapped and transported via IPv6. For example, if a client attempts an IPv4 connection to ALS v5.1 with this setting enabled, then it may get mapped to an IPv6 address, which will look like the IPv4 address with the prefix "::ffff" (that is 80 bits of zeroes followed by 16 bits of ones, then the 32-bit IPv4 address).