openUTM offers program units for reading and writing user data in various storage areas. These storage areas provide a clear distinction between program and data areas, as well as guaranteeing the reentrant capability of programs. They also allow for high-performance, transaction-oriented communication between programs, and ensure effective memory utilization. Some storage areas are designed specifically for statistical or logging purposes.
Primary storage areas
These are storage areas which are available to the program units in the main memory:
Communication area (KB)
openUTM creates the communication area when a new service is started. The contents of the communication area are transferred to the program unit currently being executed. In the communication area, openUTM provides the program units with up-to-date information. This area is also used for communication between the program units of a service. Its size can be adapted to the data to be transferred. The communication area is subject to transaction security and continues to exist until the service is terminated.
Standard primary working area (SPAB)
By default, openUTM assigns a standard primary working area to each program unit. This area is then available to the program unit from the start of the program to the end of the program (PEND call). The data in this area therefore cannot be stored or forwarded once the program unit run is terminated. The SPAB can be used for the parameter area in which the program unit supplies the parameters for KDCS calls. It can also be used to buffer messages, for example. Since the standard primary working area is reserved for a specific program unit, it is not integrated in transaction management. One advantage the SPAB has over other forms of program memory (e.g. stacks) is that the SPAB is output in the UTM dump.
Other areas
A program unit can use other areas for storing data. These areas are defined during generation using the KDCDEF statement AREA and must be managed by the users themselves, they are not subject to transaction management. Their structure is not prescribed by openUTM and can be defined freely.
Secondary storage areas
These storage areas are implemented by openUTM in background memory that is subject to transaction management. They are read and written to using special KDCS calls:
Local secondary storage area (LSSB)
The local secondary storage area is a service-specific background storage area used to transfer data between program units within a particular service. While the communication area is automatically provided and logged for each program unit, the local secondary storage area is accessed only when required. It is therefore particularly suitable for read-only data, or for cases where several program units which do not require the respective data are to be executed between the write operation and the read operation. The local secondary storage area continues to exist until it is explicitly released or the service is terminated.
Global secondary storage area (GSSB)
The GSSB is a background storage area that allows for any data to be transferred between the services in a UTM application. Unless it is explicitly released, it continues to exist even after the application is terminated.
In UTM cluster applications, GSSBs can be used cluster-wide; all node applications have the same view of the data of a GSSB.Terminal-specific long-term storage area (TLS)
The TLS is assigned an access point (LTERM, LPAP or OSI-LPAP partner) and is used to store information that must be available irrespective of the duration of a service or the runtime of the application. For instance, it can be used to produce statistics for an LTERM partner.
In UTM cluster applications, TLSs are only supported locally in the node.
User-specific long-term storage area (ULS)
A ULS can be assigned to each user ID during configuration. It is used to store information that must be available irrespective of the lifetime of the services or the runtime of the application. For instance, it can be used to produce statistics for each user ID.
A ULS is also assigned a session (LU6.1) and an association (OSI TP).
In UTM cluster applications, ULSs can be used cluster-wide; all node applications have the same view of the data of a ULS.
User log file (USLOG)
The user log file is a log file managed by openUTM in which user-specific information can be written using the KDCS call LPUT. It is implemented in the form of a file generation group (see the openUTM manual “Generating Applications”). The user log file can be used to record attempts to violate the data access control mechanisms, for example.
Each node application has its own user log file in UTM cluster applications.
The user log file is subject to transaction management and is therefore not suitable for use as a general log function. This is because the LPUT information is discarded when a transaction is rolled back.
Overview: UTM storage areas
Abbreviation | Type of Area | Life Cycle | Function | Transactional |
KB | Communication | From the start of the | Access to up-to-date | Yes |
SPAB | Standard primary | From the start of the | Transfer of parameters for | No |
AREA | Other storage | For the duration of the | Store global application | No |
LSSB | Local secondary | From the first write call | Data exchange between the | Yes |
GSSB | Global secondary | From the first write call | Distributed data exchange | Yes |
ULS | User-specific | From generation until | For example, statistics for | Yes |
TLS | Terminal-specific | From generation until | Statistics for particular | Yes |
USLOG | User log file | Defined individually | Logging | Yes |