Versioning

Versioning provides the following functionality:

It enables deployment of new versions of libraries and deletion of old versions without interrupting currently executing Service Sessions.
It provides for specifying conflicts, or libraries that cannot coexist with each other.
It enables a Service Session or dependency to specify the use of the latest version of a Grid Library.
It enables easy management of multiple applications needing different versions of the same set of libraries.

To use versioning, you must specify the Grid Library version in the configuration file. An Engine can load only one version of the library with the same name at any time. If the version is not specified, it is implied to be 0.

The version must be a String that follows the proper comparable version format. It can also be used to determine the latest version of the library, for automatic loading. This format is

[n1].[n2].[n3]...

where nx is an integer, and there might be one or more version points.

For instance,     

4.0.1.1, 4.1, 3 

are in the proper comparable version format.

The integer at each version point is evaluated starting at the first point, and continues until a version point is greater than the other. If a version point does not exist for one, it is implied as zero.

For instance

4.0.0.1 > 4.0
4.0.0.5 < 4.0.1.1

To specify that a dependency or Service use a particular version of a Grid Library, the version field is set to that value. To specify that it uses the latest version, the field is left blank.

If a version is specified it must match exactly. That is, 3.0.0 is not the same as 3; if the library’s version is 3.0.0 and the Service specifies 3, the Service does not find that library and subsequently fails.

If a version is specified but not in this format, and there are multiple versions of a library, the “latest version” is undefined. Thus, automatic selection of the latest version is only possible when all Grid Libraries with the specified name provide a version in the proper format.

By default, if a Service was set to use the latest version of a Grid Library, all Engines work on the latest version at the time the Service was started, regardless of whether a newer library has been deployed. This can be changed by setting the GRID_LIBRARY_STRICT_VERSIONING Driver option to false. When false, if a newer version of the library is deployed while the Service is running, Engines that have not yet worked on the Service use the newer version, while Engines that worked on it prior to deployment continue to use the older version.