Assign a UDR to a user-defined virtual-processor class

The SQL CREATE FUNCTION statement registers a user-defined routine.

The following CREATE FUNCTION statement registers the user-defined routine, GreaterThanEqual(), and specifies that calls to this routine are executed by the user-defined VP class named UDR:
CREATE FUNCTION GreaterThanEqual(ScottishName, ScottishName)
   RETURNS boolean 
   WITH (CLASS = UDR  )
   EXTERNAL NAME ‘/usr/lib/objects/udrs.so'
   LANGUAGE C
To execute this function, the onconfig file must include a VPCLASS parameter that defines the UDR class. If not, calls to the GreaterThanEqual function fail.
Tip: The CLASS routine modifier can specify any name for the VP class. This class name is not required to exist when you register the UDR. However, when you try to run a UDR that specifies a user-defined VP class for its execution, this class must exist and have virtual processors assigned to it.
To configure the UDR class, include a line similar to the following one in the onconfig file. This line configures the UDR class with two virtual processors and with no priority aging.
VPCLASS     UDR  ,num=2,noage

The preceding line defines the UDR VP class as a yielding VP class; that is, this VP class allows the C-language UDR to yield to other threads that must access to the UDR VP class. For more information about how to use the VPCLASS configuration parameter, see the HCL Informix® Administrator's Reference.

For more information about the CREATE FUNCTION statement, see the HCL Informix Guide to SQL: Syntax.


Copyright© 2019 HCL Technologies Limited