Home | Previous Page | Next Page   Configuring and Monitoring Dynamic Server > Configuration Parameters > VPCLASS >

Using the noyield Option

By default, the VPCLASS parameter defines a yielding VP class, which allows the C UDR to yield to other threads that need access to the user-defined VP class. A UDR can perform blocking I/O calls if it executes in a yielding user-defined VP. However, it must still yield for other threads to have access to the VP.

You can also define nonyielding user-defined VPs with the noyield option of VPCLASS. The noyield option specifies creation of a nonyielding user-defined VP class. A nonyielding user-defined VP class executes a user-defined routine in a way that gives the routine exclusive use of the virtual-processor class. In other words, user-defined routines that use a noyield virtual-processor class run serially. They never yield the VP to another thread.

You do not need to specify more than one VP in a nonyielding user-defined VP class, because the UDR runs on a single VP until it completes and any additional virtual processors would be idle.

Important:
If your UDR uses global variables, only one VP in the user-defined virtual-processor class should be nonyielding.

The following example specifies a user-defined class of virtual processors called new_noyield, which runs in no-yield mode:

VPCLASS new_noyield,noyield,num=1

The noyield option applies only to user-defined VP classes. The database server ignores noyield if it is part of a VPCLASS parameter that defines a predefined VP class such as CPU, AIO, and so on.

Home | [ Top of Page | Previous Page | Next Page | Contents | Index ]