Serializing TurboIntegrator processes using synchronized()

IBM® Cognos® TM1® TurboIntegrator (TI) function called synchronized() can be used in a TurboIntegrator script to force serial execution of a designated set of TurboIntegrator processes.

Cognos TM1 application developers can define TurboIntegrator (TI) processes that execute in response to user actions or run as batch processes. Unless explicitly prevented from doing so, TurboIntegrator processes may execute in parallel. In some applications, TurboIntegrator processes should be serialized in order to improve performance efficiency. Prior to the introduction of this new function, application designers used various techniques to ensure that TurboIntegrator processes were serialized.

One technique is to rely on object locks to force serialization of the processes. Typically, a status value is written to a cube to invoke the cube's lock as it prepares for exclusive access mode. However, the introduction of Parallel Interaction (PI) may cause this method to fail. Normally, data writers conflict with other data writers. In this way, an executing TurboIntegrator process in a cube is either able to acquire the lock and run to completion, or it must wait until the lock is available. In PI mode, multi-version concurrency control allows multiple writers to perform their writes immediately.

Since this technique is no longer valid with PI enabled, synchronized() is available to explicitly invoke serialization in TurboIntegrator process code.

See the "Process Control TurboIntegrator Functions" section of the TurboIntegrator Functions chapter of the IBM TM1 Reference for details on using this function.