Grid Library Loading
When a Service Session is set to use a Grid Library, that library is loaded. Loading is the process of setting up all resources in the Grid Library for use by the Service. A library is loaded only once per Engine session.
First, the library loads itself, and then it loads all dependencies. The library loader uses the depth-first, or preorder traversal algorithm when loading libraries. When there are a number of dependencies in a Grid Library, the order in the XML is considered left-to-right with respect to the algorithm. The library search order for lib-path and jar-path is determined by their respective lists. Certain aspects of a load might require a restart, and possibly re-initialization of the state. The following steps are performed by a load of the root library and all dependencies:
|
1.
|
Checks for conflicts with currently loaded Grid Libraries. If so, it restarts with the requested Grid Library and clears out the current state of any loaded libraries. |
|
2.
|
If new lib-paths have been added for its OS, they append to the current list of lib-paths. The state of loaded libraries includes all libraries already loaded, plus the requested library. Note that specifying a JRE dependency has this effect. |
|
3.
|
If new jar-paths have been added for its OS, the jars and classes are added to the classloader. |
|
4.
|
If new assembly-paths have been added, it adds them to the .NET search path. |
|
5.
|
If new command-paths have been added for its OS, it is added to the search path for Command tasks. |
|
6.
|
If new hooks-paths have been added, any hooks in the path are initialized. |
|
7.
|
If the default is current and a Grid Library is requested, the Engine restarts. |