Application tag

The application tag is a string of characters and is used as one of the classification criteria for the automatic classification of processes or threads (using the rules file). This tag basically provides an application-defined classification criteria in addition to the system-defined criteria such as user, group, application and type.

When an application process or thread sets its tag, it is immediately reclassified using the superclass and subclass rules in effect for the currently active WLM configuration. WLM then reviews the assignment rules looking for a match, using all the process attributes, including the new tag.

To be effective, this tag must appear in one or more of the assignment rules. The format and the use of the various tags by each application must be clearly specified in the application's administration documentation and well-known to the WLM administrators so that they can use the various values of the tags in their assignment rules to distinguish between different instances of the same application.

Because different users might have different requirements regarding what set of characteristics of the application processes they want to use to classify those processes, it is recommended that the application provide a set of configuration or run time attributes that can be used to build the tag. The application administrator can specify the format of this tag to the application. The attributes that can be used for the tag and the syntax to specify the format of the WLM tag are application-dependent and are the responsibility of the application provider.

For example, an instance of a database server is able to determine which database it is working on (db_name) and through which TCP port a given user is connected (port_num). Administrators might have any of the following priorities:

  • To create different classes for processes accessing different databases to give each class different resource entitlement
  • To separate the processes serving remote requests from different origins and to use the port number as a classification attribute
  • To create one superclass for each database and subclass per port number in each superclass.

One way to accommodate these different needs is to specify the content and format of the tag. In this example, assume that the tag can be passed to the application in a configuration file or run time parameter such as WLM_TAG=$db_name or WLM_TAG=$db_name_$port_num.

When setting its tag, an application can specify whether this tag is inherited by its children so that all the processes created by a specific instance of an application can be classified in the same class. Setting the tag inheritance is how the application tag is most commonly used.

The following is an example of how application tags could be used. In this example, the tag of the database is the same as the database name. Then two instances of the server working on two different databases would set up two different tags, for instance db1 and db2.

A system administrator could create two different classes dbserv1 and dbserv2 and classify the two database servers (and all their children if tag inheritance is used) in these classes using the tags. It would then be possible to give each class different resource entitlement according to specific business goals.

The corresponding assignment rules could look similar to the following:
* class   resvd  user  group     application     type  tag
dbserv1     -    -     dbadm     /usr/sbin/dbserv  -   db1
dbserv2     -    -     dbadm     /usr/sbin/dbserv  -   db2