Thread Safety

Warning 

IMPORTANT!

You must ensure that any user validation package you create using the User Validation API is threadsafe - see IMPORTANT! for more information.

To ensure that your user validation package is threadsafe, make sure that you adhere to the following guidelines:

Make sure that any modules in your user validation package that use User Validation API interfaces use threadsafe code.
Use mutual exclusion locks (mutexes) to prevent multiple threads from simultaneously executing any critical sections of code that are not threadsafe, but that access shared data.
When you build the user validation package, make sure that you use the appropriate flags (for your chosen operating system and compiler) to link the application using threadsafe libraries.

Deploying a non-threadsafe user validation package can cause TIBCO iProcess Engine processes to fail.

Internal Function Names

When developing a new UVAPI package, you must provide internal functions that support the external interfaces detailed in this section. The internal function names are based on the external interfaces, but prefixed with “int_”. Therefore, the internal function to support the uva_initialise interface is called int_uva_initialise. The return and argument types are the same as the external interfaces. The only difference is that the external interfaces pass all strings in an encrypted form but the internal functions receive and return all strings as plain text.

The supplied iProcess encryption object provides all of the external interface functions, decrypts/encrypts string parameters and then calls the internal function supplied by you. System security is enhanced by only passing encrypted strings between iProcess and the UVAPI package.