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.
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 ]