PARALLELIZABLE
Use the PARALLELIZABLE modifier to indicate that an external routine can be executed in parallel in the context of a parallelizable data query (PDQ).
By default, an external routine is non-parallelizable; that is, it executes in sequence.
If your UDR has a complex or smart large object data type as either a parameter or a returned value, you cannot use the PARALLELIZABLE modifier.
If you specify the PARALLELIZABLE modifier for an external routine that cannot be parallelizable, the database server returns a runtime error.
- Data handling
An exception in this category is that collection manipulation functions (mi_collection_*) are not PDQ thread safe.
- Session, thread, and transaction management
- Function execution
- Memory management
- Exception handling
- Callbacks
- Miscellaneous
For details of the DataBlade® API functions that are included in each category, see the Informix® DataBlade® API Function Reference.
If your C language UDR calls a function that is not included in one of these categories, it is not PDQ thread safe and is therefore not parallelizable.
To parallelize Java™ language UDR calls, the database server must have multiple instances of JVPs. UDRs written in the Java™ language and that open a JDBC connection are not parallelizable.