For some critical jobs, the job management time must be reduced to a minimum. To do this, the job manager provides a mechanism that enables the executed processes to be stored in cache so they can be reused.
This is based on the principle of providing an interface DLL instead of the program name (.EXE) for the jobs to be run. The manager checks if there is a host process available which has loaded the DLL and sends it the job settings.
This avoids recreating the process each time it is called. The "host" program does not clean anything after it has run, the job DLL remains loaded in memory and any client/server connections remain open and active. Subsequent job executions are therefore much faster.
To avoid putting the stability of the job manager process at risk, the DLL is not loaded and run by the job manager itself but by a dedicated process (GSHOST.EXE). This process uses nominated channels to communicate with the job manager.
See the descriptive diagram below: