For coordinated interoperation with a database, openUTM needs a database connection module. This module is supplied with the respective database system. The library containing this connection module is an optional specification in the KDCDEF statement DATABASE (see above).
The connection module can either be loaded dynamically or linked when the application is linked. If openUTM is to interoperate with two database systems, a specific connection module is required for each database system.
Loading the connection module dynamically
The reference to the connection module can be omitted when linking the application program. The advantage of this is that the application program need not be relinked when upgrading to a new database version (with a new connection module). In this case, the connection module is loaded dynamically when the application starts.
The following search algorithm applies here:
in the link context
in the user’s shared code
in non-privileged subsystems (e.g. the DB system can be loaded as a subsystem)
in the shared code of the system address space
in the library that was specified at UTM generation in the DATABASE statement
in the alternative libraries you declared using the link name BLSLIBnn (00<=nn<=99) at application startup with a SET-FILE-LINK command
In particular, this means that the connection module is not loaded from the library specified in the DATABASE statement if the DB system was loaded entirely as a non-privileged subsystem, or if parts of the DB system were loaded as non-privileged subsystems and the connection module is contained in one of these parts.
CAUTION!
When loading the connection module of the database system, please note that it might only be operable in 24-bit mode. In this case, the statement MODIFY-SYMBOL-ATTRIBUTES ... ADDRESSING-MODE=24 must be inserted when linking the UTM application.
Linking the connection module
If the connection module is to be linked when the application is linked, you should use the INCLUDE-MODULES statement. The RESOLVE-BY-AUTOLINK statement can produce undesirable side effects if the libraries specified with RESOLVE-BY-AUTOLINK contain other modules in addition to the connection module.