Domains

A domain is a characteristic of an object that controls how programs can access the object. All objects are assigned a domain attribute when they are created.

After a domain is set, it remains in effect for the life of the object. The possible attributes are system and user.

Most object types on the system are created in system domain. When you run your system at security level 40 or 50, you can access system domain objects only by using the commands and callable APIs provided.

The following object types can be either system or user domain. The list includes the symbolic object type.

Objects of the type *USRSPC, *USRIDX, and *USRQ in the user domain can be manipulated directly by MI instructions without using the system-provided APIs and commands.

Note: Objects of the type *PGM, *SRVPGM, and *SQLPKG can also be in the user domain. Their contents cannot be manipulated directly by MI instructions.

User objects can exist in either the user domain or the system domain. The QALWUSRDMN system value determines which libraries can contain user-domain user objects. The default QALWUSRDMN system value is set to *ALL, but it can be changed by system administrators on individual systems to be one library or a list of libraries. If your application requires direct pointer access to user-domain user objects in a library that is not specified in the QALWUSRDMN system value, your system administrator can add the library to the system value.

The ability to create user domain objects on a system with a security level 40 or 50 is controlled by the QALWUSRDMN system value. For more information, see the User queue domain table in Create User Queue (QUSCRTUQ) API.

Note: On a system configured for C2 system security, QALWUSRDMN is set to QTEMP (only the QTEMP library can contain user-domain user objects).