Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

SHARED-OBJECT - define shared objects/DLLs (Unix, Linux and Windows systems)

The SHARED-OBJECT control statement allows you to define

  • on Unix and Linux systems: the name and properties of a shared object if programs are to be exchanged using the dynamic linker.

  • on Windows systems: the name and properties of DLLs used for dynamic loading.

The program exchange functions are supported on all Unix and Linux systems except AIX systems.

SHARED-OBJECT

 shared_object_name 
 [ ,DIRECTORY=directory_name ]
 [ ,LOAD-MODE={ STARTUP | ONCALL } ]
 [ ,VERSION=version ]

shared_object_name

Name of the shared object/DLL up to 32 characters in length.

DIRECTORY=

directory_name

Directory in which the shared object is stored. directory_name can be up to 54 characters in length.

Default: No entry, i.e. the current directory is used.

Unix and Linux systems:
If a directory is not specified for DIRECTORY=, the filebase directory is searched for the shared object. If the shared object cannot be found there, the environment variable LD_LIBRARY_PATH is used as the search path.

LOAD-MODE=

Load mode of the shared object/DLL

    STARTUP

The shared object/DLL is loaded when the application is started.

Default: STARTUP

    ONCALL

The shared object/DLL is loaded when the first call of a program unit or of a conversation exit is issued.

Shared objects/DLLs generated with LOAD-MODE=ONCALL can only be exchanged if the openUTM version support for shared objects/DLLs is used.

VERSION=

Shared object/DLL version up to 24 characters in length.

VERSION= is evaluated only if openUTM version support is used. This is described in the openUTM manual “Using UTM Applications on Unix, Linux and Windows Systems”.

Default: No version specification

On Windows systems it is recommended that you use the VERSION= operand since the search for the "lexically largest name" can return unexpected results on Windows systems.

If VERSION= is not specified and if shared_object_name is a directory name, the shared object/DLL is addressed using the highest version name (in lexical terms). openUTM regards the version name merely as an identifier, i.e. the lexical sequence does not necessary mean “older” or “newer”. The UTM administrator is responsible for version management.

  • Shared object file name without version support (Unix and Linux systems):
    The fully qualified file name of the shared object is directory_name/shared_object_name. If directory_name/shared_object_name is a directory the file is loaded with the highest file name (in lexical terms) from this directory.
    If the generation statement is SHARED-OBJECT aaa.so, DIRECTORY=. the file ./aaa.so is loaded.
  • Shared object file name with version support:
    Unix and Linux systems:
    The fully qualified file name of the shared object is directory_name/shared_object_name/version.
    If the generation statement is SHARED-OBJECT aaa, DIRECTORY=., VERSION=V1.S0 the file ./aaa/V1.S0 is loaded.
    Windows systems:
    The fully qualified file name of the shared object is directory_name\shared_object_name\version.a
    For the generation specification,
    SHARED-OBJECT aaa, DIRECTORY=., VERSION=V1 the file .\aaa\V1.dll is loaded.
    The suffix .dll is added automatically.