The PER_SYSTEM memory duration
A PER_SYSTEM memory pool is associated with the database server instance. A database server instance begins when the oninit utility (or its equivalent) initializes the database server, and it ends when the database server is brought down.
When a C UDR allocates PER_SYSTEM memory, this memory is available to all routine instances that execute before the database server instance is shut down. As the database server shuts down, it frees any PER_SYSTEM shared memory.
The PER_SYSTEM memory duration is useful for system-wide caching
and resource initialization. Allocate PER_SYSTEM memory as named memory
because this memory requires locking. To access it, a C UDR must know
the name of the memory. The UDR can explicitly free this memory with
the mi_named_free() function. However, consider
PER_SYSTEM memory as permanent to the database server. For more information,
see Manage named memory.
Warning: The PER_SYSTEM memory duration takes
up memory that the database server might use for other tasks. Restrict
your use of memory with the PER_SYSTEM memory duration. For most uses,
memory can be successfully allocated with shorter memory durations.
No DataBlade API constructor function allocates its data type structure with a memory duration of PER_SYSTEM.