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.