Application considerations for independent disk pools
When you are designing or restructuring your application environment for use with independent disk pools, there are several things you should know.
A few of these considerations include the existence of multiple databases, the objects that can and cannot be created in an independent disk pool, how the library list works, and the placement of programs and data in the correct database.
When a primary independent disk pool is made available for the first time, a new database with the same name is also generated by default. See Independent disk pools with distinct databases for more information. If you write an application to access files and libraries in a disk pool group, specify how to access that specific database. Some of your options include:
- Use the Set ASP Group (SETASPGRP) command.
- In an SQL environment, use CONNECT to specify the right database. To achieve the fastest performance, make sure that the database to which you perform an SQL CONNECT operation corresponds with your current library namespace. You may need to use the SETASPGRP command first to achieve this. If the SQL CONNECT function is not operating within the same library namespace, the application uses Distributed Relational Database Architecture(TM) support, which can affect performance.
- Use the Change Job Description (CHGJOBD) command to set the initial ASP group in the job description for a user profile.
As you write applications that create objects, know which objects are supported. See Supported and unsupported object types. If your application uses the Create Library (CRTLIB) command, specify CRTLIB ASP(*ASPDEV) ASPDEV(asp-device-name). If you do not specify these parameters for CRTLIB, the library is created in the system disk pool by default. However, if you use the SQL statement, CREATE COLLECTION, the default for the IN ASP clause is the current library namespace.
When you are operating in an SQL environment, permanent SQL objects cannot span independent disk pool boundaries. For example, you cannot create a view of an independent disk pool object in the system disk pool. This action fails.
A similar concept is true for commitment control with independent disk pools. If you are connected to an independent disk pool relational database, you cannot make committable changes against objects in any other disk pool. When commitment control is active, you have read-only access. You can make committable changes against QTEMP, but you might receive error messages.
It might also be helpful to understand how the library list works when independent disk pools are implemented. When the library list includes QSYS, QSYS2, or SYSIBM, the Multiple system libraries in the independent disk pool (QSYSnnnnn, QSYS2nnnnn, SYSIBnnnnn) are searched before the libraries in the system disk pool. If the object is found in the independent disk pool, the system disk pool will not be searched. In addition, if you switch to a different disk pool group, any libraries that were in the previous library list are removed from the current library list.
You also need to carefully consider where you store data, applications, and application exit programs. IBM recommends that data should be stored in independent disk pools. If your independent disk pools are dedicated to the system, it might work to store applications and exit programs in the system database so that they are always accessible, regardless of what disk pool group is associated with a job. If you use the independent disk pool in a clustered environment, remember that when the disk pool is switched to another system, the exit program must be available there as well. In this case, it may be more appropriate to store the applications and exit programs in the independent disk pool. Remember that the cluster resource group (CRG) exit program cannot exist in an independent disk pool.
If you are using the independent disk pool in a clustered environment, also remember that the user profiles are not stored in the independent disk pool. They are kept in the system disk pool. If an independent disk pool fails over or is switched to another node where the user profile does not currently exist, a user profile might be created on the new node. For a user profile to be created, it must own objects on the switchable disk pool, be the primary group of objects on the switchable disk pool, or be privately authorized to objects on the switchable disk pool. The new user profile has no special authorities and the password is set to *NONE.
Authorization lists may also be created. For an authorization list to be created, it must not currently exist on the target system and it must secure an object on the switchable disk unit. When an authorization list is created, the public authority is set to *EXCLUDE, and no users are given private authority to it.
If you are operating in a clustered environment, see Cluster applications for more information about writing and implementing highly available applications within your cluster.
Parent topic:
Planning for independent disk poolsRelated concepts
Independent disk pools with distinct databases