Humm... today must be a bad day !


I’ve found that in the OCILIB 2.5.0 releases build with the option OCI_IMPORT_LINKAGE (runtime loading of oracle shared lib, default option for the prebuilt Windows OCILIB Dlls), some symbols where not loaded anymore !

It affects multithreaded applications. The OCI functions related to mutexes were not loaded (the magic of cut’n paste…)

The following code disappeared between 2.4.0 and 2.5.0 in ocilib.c, OCI_Initialize():

    LIB_SYMBOL(OCILib.lib_handle, "OCIThreadMutexInit", OCIThreadMutexInit,
               OCITHREADMUTEXINIT);
    LIB_SYMBOL(OCILib.lib_handle, "OCIThreadMutexDestroy", OCIThreadMutexDestroy,
               OCITHREADMUTEXDESTROY);
    LIB_SYMBOL(OCILib.lib_handle, "OCIThreadMutexAcquire", OCIThreadMutexAcquire,
               OCITHREADMUTEXACQUIRE);
    LIB_SYMBOL(OCILib.lib_handle, "OCIThreadMutexRelease", OCIThreadMutexRelease,
               OCITHREADMUTEXRELEASE);

So, i’ll make a 2.5.1 release later today !