UltraLite User's Guide
Developing UltraLite Applications
You can develop multi-threaded UltraLite C or C++ applications on the Windows, and Windows CE platforms. You cannot develop multi-threaded UltraLite applications on the Palm Computing Platform, as the platform does not support such applications.
You can also develop multi-threaded UltraLite Java applications.
Each thread of a multi-threaded application must make its own call to db_init(). A SQLCA cannot be shared among different threads. Consequently, each thread must have separate connections and separate transactions from other threads.
For more information, see db_init function.
Each thread of a multi-threaded application must make its own objects, including the ULData, ULConnection, ULTable, ULStatement and ULResultSet objects.
For more information, see Open method.
The UltraLite Java runtime library is thread-safe. Users of the Sun Java VM must use version 1.2 or later to run multi-threaded UltraLite applications. Users of the Jeode VM on Pocket PC and the IBM Java VM can run multi-threaded UltraLite applications even though these VMs are based on JDK 1.1.8.
The entire runtime is treated as a single critical section, only allowing one thread to enter it at a time.
Connections cannot be shared among threads: each Java thread must obtain its own JDBC connection to the database and statements used by a Java thread for must be created with the thread's own connection. Any one thread can have multiple connections.
For more information, see Using the UltraLite JdbcDatabase.connect method.