A process or a group of processes can be manually assigned to a superclass and/or subclass by using Web-based System Manager, SMIT, or the wlmassign command. An application can assign processes through the wlm_assign API function.
To manually assign processes to a class or to cancel an existing manual assignment, a user must have the appropriate level of privilege. (See Security Considerations for further details.) A manual assignment can be made or canceled separately at the superclass level, the subclass level, or both. This assignment is specified by flags for the programming interface and a set of options for the command line interface used by the WLM administration tools. So, a process can be manually assigned to a superclass only, a subclass only, or to a superclass and a subclass of that superclass. In the latter case, the dual assignment can be done simultaneously (with a single command or API call) or at different times, by different users.
Assignment is very flexible, but can be confusing. Following are two examples of the possible cases.
A system administrator manually assigns Process1 from superclassA to superclassB (superclass-level-only assignment). The automatic assignment rules for the subclasses of superclassB are used by WLM to determine to which subclass the process is ultimately assigned. Process1 is assigned to superclassB.subclassA and is flagged as having a "superclass only" assignment.
A user with the appropriate privileges assigns Process2 from its current class superclassA.subclassA to a new subclass of the same superclass, superclassA.subclassB. Process2 is assigned to its new subclass and flagged as having a "subclass only" assignment.
A WLM administrator of the subclasses of superclassB manually reassigns Process1 to subclassC, which is another subclass of superclassB. Process1 is reclassified into superclassB.subclassC and is now flagged as having both superclass and subclass level assignment.
The reassignment and cancellation of a manual assignment at the subclass level is less complex and affects only the subclass level assignment.
Suppose that the system administrator wants Process2 to be in a superclass with more resources and decides to manually assign Process2 to superclassC. In Example 1, Process2 was manually assigned to subclassB of superclassA, with a "subclass only" assignment. Because Process2 is assigned to a different superclass, the previous manual assignment becomes meaningless and is canceled. Process2 now has a "superclass only" manual assignment to superclassC and is assigned to a subclass of superclassC using the automatic assignment rules.
Now, the system administrator decides to terminate the manual assignment from Process1 to superclassB. The "superclass level" manual assignment of Process1 is canceled, and Process1 is assigned a superclass using the top level automatic assignment rules.
If the rules have not changed, Process1 is assigned to superclassA, and its subclass level manual assignment to superclassB.subclassC becomes meaningless and is canceled.
If for some reason the top level rules assign Process1 to superclassB, then the subclass level assignment to superclassB.subclassC is still valid and remains in effect. Process1 now has a "subclass only" manual assignment.
When a process is manually assigned to a superclass or subclass with the inheritance attribute set to yes, and the process is a process group leader, WLM attempts to reclassify all the processes in the process group.
In some cases, some of the processes in the process group are not reclassified to the new class of the group leader. For instance, when processes have been manually assigned to their current class, they remain in their assigned class. It is also possible that one or more of the processes in a group require a higher level of privileges than the user performing the manual assignment.
To assign a process to a class or to cancel a prior manual assignment, the user must have authority both on the process and on the target class. These constraints translate into the following rules:
To modify or terminate a manual assignment, users must have at least the same level of privilege as the person who issued the last manual assignment.