Choose the user-defined VP class
When you run your C UDR in a user-defined VP, you can relax some,
but not all, of the CPU VP safe-code requirements (Table 1). You must choose a user-defined
VP that is appropriate for the ill-behaved traits of your UDR. The
following types of user-defined VPs allow a C UDR to contain the ill-behaved
traits.
Type of user-defined VP | Purpose |
---|---|
Yielding user-defined VP | Prevents a UDR from blocking the CPU VP because it blocks a user-defined VP thread |
Nonyielding user-defined VP | Preserves global state of the VP across one UDR invocation |
Single-instance user-defined VP | Preserves global state of the VP across all UDR invocations and instances |
Important: The user-defined VP
class frees the CPU VPs from effects of some ill-behaved traits of
a UDR. However, this VP class provides little protection from process
failures. Even when the UDR runs in a user-defined VP class, programming
errors that cause process failures can severely affect the database
server.