NT DLL to Solaris Shared Library;  C++ Exceptions

I have written a "plugin" DLL for a third party product that runs on NT. In my plugin I use C++ exception handling and it works wonderfully :-)
I am now trying to port my plugin so that it will work with the same third party product, but this time running on Solaris.
I knew I was going to have to port my DLL to Solaris and so made sure I did not use any Win32 specific anything. My code compiles & links fine on Solaris. For the most part it even works correctly.
The problem I have is that my code is not catching any of the exceptions it is throwing.
Section 5.14 of the C++ Programming Guide says that for exception handling to work in a shared library, it must be loaded with the RTLD_GLOBAL flag passed to the dlopen() function used to load the shared library.
Of course since the dlopen() function is in a third party product I have no way of knowing whether this parameter is being passed to the dlopen() function or not .. and more importantly I have no way of forcing it to be so.
So ultimately I guess the question for the more experienced shared library writers is .. do you just not use C++ exception mechanism because you can not force your shared library to be opened with the proper parameter to dlopen() .. or is there something else I can do to enable C++ exceptions in my shared library.

All works fine!...
$ mkdir /tmp/xxx
$ cat > dllfile.c
$ cat > dlluser.c
$ gcc -fPIC -c dllfile.c
$ gcc -shared -W1,-soname,libdllfile.so.1 -o libdllfile.so dllfile.o
$ gcc -o prog dlluser.c -ldl
$ ls -l
total 56
-rw-r--r-- 1 xxxxxx users 80 Апр 8 17:04 dllfile.c
-rw-r--r-- 1 xxxxxx users 908 Апр 8 17:15 dllfile.o
-rw-r--r-- 1 xxxxxx users 368 Апр 8 17:03 dlluser.c
-rwxr-xr-x 1 xxxxxx users 5260 Апр 8 17:15 libdllfile.so
-rwxr-xr-x 1 xxxxxx users 6412 Апр 8 17:16 prog
$
$ file *
dllfile.c:     c program text
dllfile.o:     ELF 32-bit MSB relocatable SPARC Version 1
dlluser.c:     c program text
libdllfile.so:     ELF 32-bit MSB dynamic lib SPARC Version 1, dynamically linked, not stripped
prog:          ELF 32-bit MSB executable SPARC Version 1, dynamically linked, not stripped
$
$ su
Password:
# mkdir -p /root/shared_library/
# cp libdllfile.so /root/shared_library/
# exit
$ ./prog
With the changes
library loaded
Inside function
$

Similar Messages

  • Problem with JNI in a Solaris shared library

    Hi,
    I have a problem.
    I have used JNI in my .dll on Windows & .so on Solaris . I have also used the same JNI code in a .exe on Windows & an executable on Solaris. 3 out of the above 4 combinations work & 1 doesen't. When I use JNI from a .so on Solaris 8(with/without the J2SE recommended patch), the JVM seems to have some exception & dumps core when I invoke CreateJavaVM(). See Below - I've included the output on the screen & the output from 'pstack core' :
    Unexpected Signal : 11 occurred at PC=0xFED29D44
    Function=[Unknown. Nearest: JVM_GetMethodIxExceptionIndexes+0x1994]
    Library=/usr/java/jre/lib/sparc/libjvm.so
    Current Java thread:
    Dynamic libraries:
    0x10000 SblSim
    0xff280000 /usr/lib/libnsl.so.1
    0xfec00000 /usr/java/jre/lib/sparc/libjvm.so
    0xff370000 /usr/lib/libpthread.so.1
    0xff350000 /usr/lib/librt.so.1
    0xff260000 /usr/lib/libsocket.so.1
    0xff390000 /usr/lib/libdl.so.1
    0xff230000 /usr/lib/libCrun.so.1
    0xff200000 /usr/lib/libm.so.1
    0xff340000 /usr/lib/libw.so.1
    0xff1b0000 /usr/lib/libthread.so.1
    0xff080000 /usr/lib/libc.so.1
    0xff180000 /usr/lib/libmp.so.2
    0xff160000 /usr/lib/libaio.so.1
    0xff1f0000 /usr/platform/SUNW,Sun-Blade-1000/lib/libc_psr.so.1
    0xfebd0000 /usr/j2se/jre/lib/sparc/native_threads/libhpi.so
    0xfeba0000 /usr/j2se/jre/lib/sparc/libverify.so
    0xfeb60000 /usr/j2se/jre/lib/sparc/libjava.so
    0xfeb40000 /usr/j2se/jre/lib/sparc/libzip.so
    0xfe920000 /usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-1.so.2
    0xf1400000 ./libaicd.so
    0xfc480000 ./libmttoolkit.so
    0xfdfe0000 ./libmttlogger.so
    0xfdfb0000 /usr/j2se/jre/lib/sparc/libnet.so
    Local Time = Tue Nov 12 09:51:37 2002
    Elapsed Time = 29
    # HotSpot Virtual Machine Error : 11
    # Error ID : 4F530E43505002D5 01
    # Please report this error at
    # http://java.sun.com/cgi-bin/bugreport.cgi
    # Java VM: Java HotSpot(TM) Client VM (1.4.0_01-b03 mixed mode)
    # An error report file has been saved as hs_err_pid3120.log.
    # Please refer to the file for further information.
    Abort(coredump)
    Below is the output of 'pstack core'
    $ pstack core
    core 'core' of 3120: SblSim libaicd.so 127.0.0.1 9999
    ----------------- lwp# 1 / thread# 1 --------------------
    ff1c9764 __sigprocmask (ff1cbf60, 0, 0, 565f8, ff1de000, 0) + 8
    ff1be110 _sigon   (565f8, ff1e5930, 6, ffbedba4, 565f8, 6) + d0
    ff1c1150 thrpkill (0, 1, 6, ff1de000, 1, ff140450) + f8
    ff0cb900 raise (6, 0, 0, ffffffff, ff1403bc, 4) + 40
    ff0b58ec abort (ff13c000, ffbedcf8, 0, fffffff8, 4, ffbedd19) + 100
    feee2700 ???????? (1, fef98e50, ffbedd98, 0, feffc130, feee1258)
    feee12c8 ???????? (60650, b, fed29d44, ffbeeab8, b, 0)
    fede77c0 ???????? (fed29d44, ffbeeab8, ffbee800, fed29d44, fed03744, 0)
    ff1cb824 __sighndlr (b, ffbeeab8, ffbee800, fede6f38, 5669c, 5668c) + c
    ff1c84d8 sigacthandler (b, 565f8, 0, 0, 0, ff1de000) + 708
    --- called from signal handler with signal 11 (SIGSEGV) ---
    fed29d44 ???????? (0, 60650, 0, 0, 0, 0)
    fed2d7d4 ???????? (606e4, 0, 0, ffbeed00, 0, 0)
    f172e818 __1cHJNIEnv_JNewObject6MpnH_jclass_pnK_jmethodID_E_pnI_jobject__ (606e4, 0, 0, ffbeed70, 39, 107f90) + 70
    f172dbf8 __1cGJEvent2t5B6M_v_ (107f60, f1a877f4, db088, ff0c1c44, 107f48, 0) + 80
    f16f2864 __1cGCEvent2t6Mii_v_ (107f60, 0, 1, ff13c000, 107f48, 0) + 7c
    f16e62e8 __1cVCISCHelperThreadMutex2t6M_v_ (107f50, 0, 560ac, 30f68, fefe4000, 0) + c0
    f16ddc34 __1cLinitGlobals6F_v_ (0, 1, 19a, f1a198ec, f1a198ec, 0) + 5c
    f16de4e4 CreateISCDriverInstance (0, 5cc40, 0, 57608, 565e8, 0) + 554
    00034f08 __1cJRunSblSim6F_v_ (1, ffbef322, ffbef32c, ff13fc70, 100d4, 0) + 320
    00035588 main (4, ffbef1dc, ffbef1f0, 55c00, 0, 0) + 1a8
    00018460 _start   (0, 0, 0, 0, 0, 0) + 108
    ----------------- lwp# 2 / thread# 2 --------------------
    ff11e958 _signotifywait (ff1de000, 59, 0, 0, 0, 0) + 8
    ff1c2030 thr_yield (0, 0, 0, 0, 0, 0) + 8c
    ----------------- lwp# 3 --------------------------------
    ff1c9774 private___lwp_cond_wait (ff075d70, ff1ded9c, ff1de000, 0, 0, 4) + 8
    ff11c554 doorreturn (ff075cb0, ff1ba740, 0, 0, 0, 0) + 68
    ----------------- lwp# 4 / thread# 4 --------------------
    ff11efbc ___lwp_cond_wait (60048, 60030, fe901ad0, 0, 0, fe901ac8) + 8
    ff116610 lwpcond_timedwait (1cb8c88, 3dd1157a, fe901ba4, 60030, 60048, 1) + 98
    fecfc7d8 ???????? (0, 1, 0, 581b8, feffa26c, 0)
    fecfcfd4 ???????? (ff00a15c, feffa4b8, feffa4b4, 0, 0, 0)
    fecfccc0 ???????? (d3980, 0, 0, 0, 0, 0)
    fecfcbd0 ???????? (d3980, ff1df688, 1, 1, ff1de000, 0)
    ff1cb728 threadstart (d3980, 0, 0, 0, 0, 0) + 40
    ----------------- lwp# 5 --------------------------------
    ff11c4fc doorreturn (4, ff1df688, ff1df6a0, 3, ff1de000, 1) + 10
    ff1ba740 lwpstart (fea95d70, 0, 6000, ff075b74, 0, 0) + 18
    ff1c2030 thr_yield (0, 0, 0, 0, 0, 0) + 8c
    ----------------- lwp# 6 / thread# 5 --------------------
    ff11efbc ___lwp_cond_wait (d5720, d5708, 0, fed10a40, 0, 0) + 8
    fed110d4 ???????? (d56c8, 0, 5000, 5210, d4d38, 4d24)
    fed10824 ???????? (fdf8172c, 0, 0, d4d38, d4d38, 30dec8)
    fed103b0 ???????? (d4dcc, fdf81824, 0, 0, 0, 0)
    fa40cc94 ???????? (f2000380, b6, fdf818a4, ffffffff, 0, fdf817c0)
    fa405da0 ???????? (f2000380, b6, fdf818a8, fa415444, 0, fdf81840)
    fa405da0 ???????? (fdf81938, 0, 0, fa4157a4, 2f4210, fdf818d8)
    fa400438 ???????? (fdf819c0, fdf81c08, a, f6050b68, fa40bc8c, fdf81b50)
    fecfe2f8 ???????? (fdf81c00, fdf81a88, fdf81b48, d4d38, d4d38, fdf81a9c)
    fed0ff90 ???????? (fefe4000, d5298, fdf81b3c, fdf81b38, fdf81b48, d4d38)
    fed0fdf0 ???????? (fdf81c00, fdf81bfc, fdf81bf0, fdf81be8, fdf81be0, d4d38)
    fed0fd78 ???????? (d4d38, d4d38, ac9a0, d5298, 2d4488, fed0fa60)
    fed0fa88 ???????? (d4d38, 0, 0, 0, 0, 0)
    fecfcbd0 ???????? (d4d38, ff1df688, 1, 1, ff1de000, 0)
    ff1cb728 threadstart (d4d38, 0, 0, 0, 0, 0) + 40
    ----------------- lwp# 7 / thread# 6 --------------------
    ff11efbc ___lwp_cond_wait (d7040, d7028, 0, 1, 0, 0) + 8
    fed110d4 ???????? (d6fe8, 0, 5000, 5210, d6658, 4d24)
    fed10824 ???????? (fa38169c, 0, 0, d6658, d6658, 30dec8)
    fed103b0 ???????? (d66ec, fa38179c, 0, 0, 0, 0)
    fa40cc94 ???????? (f2000490, b6, fa3817a0, fa414050, 0, fa381730)
    fa405da0 ???????? (f2000478, b6, fa3818b4, fa415444, 0, fa3817d8)
    fa405c4c ???????? (f2000478, b6, fa381934, fa415444, d6658, fa381858)
    fa405c4c ???????? (fa381938, 0, 0, fa38197c, 2f4210, fa3818d8)
    fa400438 ???????? (fa3819c0, fa381c08, a, f60520b8, fa40bc8c, fa381b50)
    fecfe2f8 ???????? (fa381c00, fa381a88, fa381b48, d6658, d6658, fa381a9c)
    fed0ff90 ???????? (fefe4000, d6bb8, fa381b3c, fa381b38, fa381b48, d6658)
    fed0fdf0 ???????? (fa381c00, fa381bfc, fa381bf0, fa381be8, fa381be0, d6658)
    fed0fd78 ???????? (d6658, d6658, ac9e0, d6bb8, 2d4488, fed0fa60)
    fed0fa88 ???????? (d6658, 0, 0, 0, 0, 0)
    fecfcbd0 ???????? (d6658, ff1df688, 1, 1, ff1de000, 0)
    ff1cb728 threadstart (d6658, 0, 0, 0, 0, 0) + 40
    ----------------- lwp# 8 / thread# 7 --------------------
    ff11d194 _poll    (0, 0, 0, fa281a28, ff13f1b4, fa281a28) + 8
    ff1cb134 select (0, a, 0, ff1de000, fa281e14, 0) + 34
    fed32afc ???????? (d8040, 0, a, 0, 0, 0)
    fed328b4 ???????? (d8040, 0, 0, 0, 0, 0)
    fecfcbd0 ???????? (d8040, ff1df688, 1, 1, ff1de000, 0)
    ff1cb728 threadstart (d8040, 0, 0, 0, 0, 0) + 40
    ----------------- lwp# 9 / thread# 8 --------------------
    ff11efbc ___lwp_cond_wait (5f998, 5f980, 2e7aa0, ff1de000, fa181e14, 0) + 8
    fecfc634 ???????? (5f950, 0, 0, 0, feffa26c, 0)
    fed3371c ???????? (3c00, 3f44, 0, 0, 0, 0)
    fecfcbd0 ???????? (d81a8, ff1df688, 1, 1, ff1de000, 0)
    ff1cb728 threadstart (d81a8, 0, 0, 0, 0, 0) + 40
    ----------------- lwp# 10 / thread# 9 --------------------
    ff11f008 lwpsema_wait (f1f81e30, ff1de000, 0, f1f81d70, ff3e2628, 0) + c
    ff1b94c0 _swtch   (f1f81d70, ffffffff, ff1de000, 5, 1000, 0) + 158
    ff1bcc64 sema_wait (ff020fe0, ff1e98e4, 5000, 10000, 534d, 1) + bc
    fed345c8 ???????? (0, 6, b, a, 1, 0)
    fed34254 ???????? (ff002ae4, ff00a5a0, ff00a5d4, dab90, 2d4488, fed0fa60)
    fed0fa88 ???????? (da630, 0, 0, 0, 0, 0)
    fecfcbd0 ???????? (da630, ff1df688, 1, 1, ff1de000, 0)
    ff1cb728 threadstart (da630, 0, 0, 0, 0, 0) + 40
    ----------------- lwp# 11 / thread# 10 --------------------
    ff11efbc ___lwp_cond_wait (604e8, 604d0, 2e7aa0, feffa26c, 106c40, 0) + 8
    fecfc88c ???????? (604a0, 0, 0, dbbd0, feffa26c, 0)
    fed349ac ???????? (db670, db670, dbfd0, dbbd0, 2d4488, fed0fa60)
    fed0fa88 ???????? (db670, 0, 0, 0, 0, 0)
    fecfcbd0 ???????? (db670, ff1df688, 1, 1, ff1de000, 0)
    ff1cb728 threadstart (db670, 0, 0, 0, 0, 0) + 40
    -------------------------- thread# 3 --------------------
    ff1bddbc reapwait (ff1e29e0, 20520, 0, ff1de000, 0, 0) + 38
    ff1bdb14 _reaper  (ff1dee30, ff1e4740, ff1e29e0, ff1dee08, 1, fe400000) + 38
    ff1cb728 threadstart (0, 0, 0, 0, 0, 0) + 40

    This is an update to the original message -
    I have tried both HotSpot & Server JVMs but still see the
    same behavior. I'm using 1.4 .
    I'd like to provide more information to those who can help
    me. I have a feeling there might be something wrong in my
    CC options. Thus you will find below what my CC statement
    looks like for one of the files in my project & for the
    linking of the final shared library. I also have
    provided the output of ldd on my shared library libaicd.so
    & for comparison the output of ldd on libjvm.so as that
    might provide some usefull information just incase
    something looks suspecious & might ring a bell.
    /opt/SUNWspro.cc6/bin/CC -c -KPIC -g -DDEBUG=DEBUG -
    D_DEBUG -mt -DSOLARIS -DSTD_STREAM -
    I/vob1/qwsrc/fw/include -I.-I/vob4/source/idl -
    I/vob4/source/mttoolkit -I/vob4/source/mttoolkit/tools -
    I/vob4/source/integrations/siebel/aicd -
    I/vob4/source/include -I/vob1/qwsrc/fw/include -
    I/vob4/source/source -I/vob4/source/mttoolkit -
    I/vob1/external/platform_neutral/siebel/scapi/include -
    I/external/sparc/Sun/jdk/1.3.1/include -
    I/external/sparc/Sun/jdk/1.3.1/include/solaris -
    I/vob4/source/idl -I/vob4/source/mttoolkit -
    I/vob4/source/mttoolkit/tools -
    I/vob4/source/mttoolkit/vnet -
    I/vob4/source/mttoolkit/bool -DUNIX -
    D_USE_MTTServerToolkit -D_JAVA_ WIAcceptTimeOut.cpp -
    o /space/users/janak/buildoutput/sparc/debug/obj/integratio s/siebel/aicd/WIAcceptTimeOut.o
    /opt/SUNWspro.cc6/bin/CC -G -
    o /space/users/janak/buildoutput/sparc/debug/lib/fw/libaicd.so
    /space/us
    ers/janak/buildoutput/sparc/debug/obj/integrations/siebel/ai
    cd/AgentService.o /space/users/janak/buildoutput/sparc/debug
    /obj/integrations/siebel/aicd/AgentServiceCmds.o /space/user
    s/janak/buildoutput/sparc/debug/obj/integrations/siebel/aicd
    /AgentServiceEvents.o /space/users/janak/buildoutput/sparc/d
    ebug/obj/integrations/siebel/aicd/AgentServiceICAReq.o /spac
    e/users/janak/buildoutput/sparc/debug/obj/integrations/siebe
    l/aicd/AgentServiceICEvents.o /space/users/janak/buildoutput
    /sparc/debug/obj/integrations/siebel/aicd/AgentServiceUtilit
    ies.o /space/users/janak/buildoutput/sparc/debug/obj/integra
    tions/siebel/aicd/AvMc.o /space/users/janak/buildoutput/spar
    c/debug/obj/integrations/siebel/aicd/InternationalStrings.o
    /space/users/janak/buildoutput/sparc/debug/obj/integrations/
    siebel/aicd/JEvent.o /space/users/janak/buildoutput/sparc/de
    bug/obj/integrations/siebel/aicd/JMultipleEvents.o /space/us
    ers/janak/buildoutput/sparc/debug/obj/integrations/siebel/ai
    cd/JNIObject.o /space/users/janak/buildoutput/sparc/debug/ob
    j/integrations/siebel/aicd/JObject.o /space/users/janak/buil
    doutput/sparc/debug/obj/integrations/siebel/aicd/JSemaphore.
    o /space/users/janak/buildoutput/sparc/debug/obj/integration
    s/siebel/aicd/JWorkerThread.o /space/users/janak/buildoutput
    /sparc/debug/obj/integrations/siebel/aicd/MultipleEvents.o /
    space/users/janak/buildoutput/sparc/debug/obj/integrations/s
    iebel/aicd/Param.o /space/users/janak/buildoutput/sparc/debu
    g/obj/integrations/siebel/aicd/ParamQueue.o /space/users/jan
    ak/buildoutput/sparc/debug/obj/integrations/siebel/aicd/RefC
    ount.o /space/users/janak/buildoutput/sparc/debug/obj/integr
    ations/siebel/aicd/SiebelDriver.o /space/users/janak/buildou
    tput/sparc/debug/obj/integrations/siebel/aicd/SiebelEvent.o
    /space/users/janak/buildoutput/sparc/debug/obj/integrations/
    siebel/aicd/SiebelWorkItem.o /space/users/janak/buildoutput/
    sparc/debug/obj/integrations/siebel/aicd/SingleEvent.o /spac
    e/users/janak/buildoutput/sparc/debug/obj/integrations/siebe
    l/aicd/SmartPtr.o /space/users/janak/buildoutput/sparc/debug
    /obj/integrations/siebel/aicd/StdAfx.o /space/users/janak/bu
    ildoutput/sparc/debug/obj/integrations/siebel/aicd/ThreadPoo
    l.o /space/users/janak/buildoutput/sparc/debug/obj/integrati
    ons/siebel/aicd/Utilities.o /space/users/janak/buildoutput/s
    parc/debug/obj/integrations/siebel/aicd/WIAcceptTimeOut.o -
    lnsl -lc -lCstd -
    L/space/users/janak/buildoutput/sparc/debug/lib/cti -
    lmttoolkit -
    L/space/users/janak/buildoutput/sparc/debug/lib/fw -
    lmttlogger -
    L/space/users/janak/buildoutput/sparc/debug/lib/fw -
    lqwlicmtt -
    L/external/sparc/Sun/jdk/1.3.1/jre/lib/sparc/server -
    Bdynamic -ljvm -mt -lpthread -lposix4
    $ ldd /usr/j2se/jre/lib/sparc/libjvm.so
    libCrun.so.1 => /usr/lib/libCrun.so.1
    libdl.so.1 => /usr/lib/libdl.so.1
    libthread.so.1 => /usr/lib/libthread.so.1
    libsocket.so.1 => /usr/lib/libsocket.so.1
    libnsl.so.1 => /usr/lib/libnsl.so.1
    libm.so.1 => /usr/lib/libm.so.1
    libw.so.1 => /usr/lib/libw.so.1
    libc.so.1 => /usr/lib/libc.so.1
    libmp.so.2 => /usr/lib/libmp.so.2
    /usr/platform/SUNW,Sun-Blade-1000/lib/libc_psr.so.1
    $ ldd libaicd.so
    libnsl.so.1 => /usr/lib/libnsl.so.1
    libc.so.1 => /usr/lib/libc.so.1
    libmttoolkit.so => ./libmttoolkit.so
    libmttlogger.so => ./libmttlogger.so
    libjvm.so => /usr/java/jre/lib/sparc/libjvm.so
    libpthread.so.1 => /usr/lib/libpthread.so.1
    librt.so.1 => /usr/lib/librt.so.1
    libdl.so.1 => /usr/lib/libdl.so.1
    libmp.so.2 => /usr/lib/libmp.so.2
    libCrun.so.1 => /usr/lib/libCrun.so.1
    libthread.so.1 => /usr/lib/libthread.so.1
    libsocket.so.1 => /usr/lib/libsocket.so.1
    libm.so.1 => /usr/lib/libm.so.1
    libaio.so.1 => /usr/lib/libaio.so.1
    libw.so.1 => /usr/lib/libw.so.1
    /usr/platform/SUNW,Sun-Blade-1000/lib/libc_psr.so.1

  • How to catch exception from shared library on Linux?

    Description:
    JNI dynamically loads shared library. Shared library throws exception (class CTestException). JNI can not catch it by CTestException name, only (...) works.
    My config:
    Linux RH AS 4 (x86 64)
    gcc: 3.4.5
    glib: 2.2.5
    Java 1.5.0_06
    g++ compiler options for JNI and shared libraries:
    g++ -Wl,-E -fPIC -shared ...
    There are multiple bugs on Java bugs database regarding C++ ABI incompatibility between Java binaries and stdc++ libraries linked with native code. But I could not find any conclusions on these bugs. Only plans/suggestions to recompile Java on new gcc. These bugs were quite old (regarding Java 1.3, 1.4). Now 1.6 is available but still there is same incompatibility. Maybe I am missing something and there is a way to fix this problem? Like to use specific gcc/glib versions for compilation? How people solve such problems? Any help is appreciated.

    It isn't any different; the commands are the same. You can find the exp executable in tehe $ORACLE_HOME/bin directory.

  • Import shared library(dll)

    Salut.
    I want to import the GetVolumeInformationW function from the Windows kernel32.dll.
    Microsoft says:
    Requirements
    Client
    Requires Windows Vista, Windows XP, Windows 2000 Professional, Windows NT Workstation, Windows Me, Windows 98, or Windows 95.
    Server
    Requires Windows Server "Longhorn", Windows Server 2003, Windows 2000 Server, or Windows NT Server.
    Header
    Declared in Winbase.h; include Windows.h.
    Library
    Use Kernel32.lib.
    DLL
    Requires Kernel32.dll.
    Unicode
    Implemented as GetVolumeInformationW (Unicode) and GetVolumeInformationA (ANSI). Note that Unicode support on Windows Me/98/95 requires Microsoft Layer for Unicode.
    1- I start the wizard, select "Create VIs for a shared library" then click next
    2- Then select C:\WINDOWS\system32\kernel32.dll for the shared library.
    3- Then select C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\WinBase.h for the header file
    4- Click next
    5- Add C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include to the include path (for Windows.h)
    6- Click next...wait
    7- Then NI says :
    The shared library contains 949 function(s), among which the declarations of 0 function(s) are found in the header file and these function(s) will be imported. The remaining 949 function(s) listed below cannot be imported.
    How can i make it work? Is it possible?

    Hello,
    I just downloaded the SDK and attempted the same operations you
    described, with identical results.  I suspect that the problem is
    that the WinBase.h header depends on predefined symbols that are not
    present by default in our implementation of the DLL importer.  I
    haven't spent enough time examining the code to tell you precisely what
    these symbols would need to be, but that is where I would focus my
    efforts.  According to Microsoft, you may want to try defining
    NTDDI_VERSION, as per this document.
    Cheers,
    Matt Pollock
    National Instruments

  • Shared library deployment error in jdev- 11.4,  PS3 release

    Hi,
    I am facing an shared library reference exception.Please help in resolving it.
    Find the below exception.
    <Mar 10, 2011 4:39:16 PM IST> <Error> <Deployer> <BEA-149265> <Failure occurred
    in the execution of deployment request with ID '1299755348296' for task '22'. Er
    ror is: 'weblogic.application.ModuleException: Failed to load webapp: '/wcsdocs'
    weblogic.application.ModuleException: Failed to load webapp: '/wcsdocs'
    at weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:393)
    at weblogic.application.internal.flow.ScopedModuleDriver.prepare(ScopedM
    oduleDriver.java:176)
    at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(Modu
    leListenerInvoker.java:199)
    at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(Depl
    oymentCallbackFlow.java:517)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineD
    river.java:52)
    Truncated. see log file for complete stacktrace
    Caused By: weblogic.management.DeploymentException: Error: Unresolved Webapp Lib
    rary references for "ServletContext@11873704[app:webcenter module:/wcsdocs path:
    /wcsdocs spec-version:2.5 version:11.1.1.4.0]", defined in weblogic.xml [Extensi
    on-Name: Resource, exact-match: false]
    at weblogic.servlet.internal.WebAppServletContext.processWebAppLibraries
    (WebAppServletContext.java:2754)
    at weblogic.servlet.internal.WebAppServletContext.<init>(WebAppServletCo
    ntext.java:415)
    at weblogic.servlet.internal.WebAppServletContext.<init>(WebAppServletCo
    ntext.java:493)
    at weblogic.servlet.internal.HttpServer.loadWebApp(HttpServer.java:418)
    at weblogic.servlet.internal.WebAppModule.registerWebApp(WebAppModule.ja
    va:972)
    Truncated. see log file for complete stacktrace
    >

    <Aug 19, 2011 9:56:23 PM CDT> <Error> <Deployer> <BEA-149205> <Failed to initialize the application 'webcenter [Version=11.1.1.4.0]' due to error weblogic.application.ModuleException: Failed to load webapp: '/wcsdocs'.
    weblogic.application.ModuleException: Failed to load webapp: '/wcsdocs'
    at weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:393)
    at weblogic.application.internal.flow.ScopedModuleDriver.prepare(ScopedModuleDriver.java:180)
    at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
    at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:518)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
    Truncated. see log file for complete stacktrace
    Caused By: java.lang.ClassNotFoundException: custom.webcenter.spaces.view.SessionInvalidationServlet
    at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297)
    at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    Truncated. see log file for complete stacktrace
    >

  • Exceptions not caught in shared library when compiled under Sun Studio 9

    I realize it's a fairly old version of Sun Studio, however if at all possibly we'd like to avoid updating to the latest.
    Sun Studio 9, version reports
    version of "/opt/SUNWspro/bin/../prod/bin/../../bin/cc": Sun C 5.6 2004/07/15
    version of "/opt/SUNWspro/bin/../prod/bin/../../bin/CC": Sun C++ 5.6 2004/07/15
    uname -a
    SunOS sunblade 5.9 Generic_118558-27 sun4u sparc SUNW,Sun-Blade-100
    The problem is within our shared library a function calls another method within a try/catch block. This method then sometimes throws an exception which does have a matching catch block. On all other systems (Windows, AIX, HP-UX, Linux) the code works, the exception is caught and handled. On Solaris with Sun Studio 9 though, the exception is ignored and instead triggers an abort and core dump.
    Stack Trace:
    ffffffff7daa871c lwpkill (6, 0, ffffffff7fffd9c0, ffffffff7d3064d4, 2, ffffffff7fffd9ec) + 8
    ffffffff7da3e4b8 abort (ffffffff7d40dac8, ffffffff7d40cc38, ffffffff7d411e78, 10604c, 2, ffffffff7d40dac8) + 100
    ffffffff7d3064d4 __1cH__CimplRdefault_terminate6F_v_ (ffffffff7d40dac8, ffffffff7d40cc38, ffffffff7d411e78, 10604c, 104e40, ffffffff7d3064d0) + 4
    ffffffff7d3062b4 __1cH__CimplMex_terminate6F_v_ (ffffffff7d40de40, 0, 0, ffffffff7d40de40, ffffffff7d40c978, 1) + 24
    ffffffff7d306f04 exthrow_body (ffffffff7d40de40, 0, 0, 105af4, 52, ffffffff7d40e2e8) + 84
    ffffffff7d306e58 __1cG__CrunIex_throw6Fpvpkn0AQstatic_type_info_pF1_v_v_ (ffffffff7d40dec8, ffffffff7f0dea78, ffffffff7ecb6b28, ffffffff7d40de40, 0, ffffffff7d40de40) + 3c
    ffffffff7ecb6d90 __1cLIGExceptionFThrow6FnQenumIGErrorCodes_pkcxxp2x_v_ (fffffffffffff3e3, 0, 0, 0, ffffffff7f1187da, a0) + 80
    ffffffff7ecb6e78 __1cOThrowException6FnQenumIGErrorCodes_pkcxxp1x_v_ (fffffffffffff3e3, 0, 0, 0, ffffffff7f1187da, a0) + 30
    ffffffff7f083304 __1cSIGRasterProcessingNVerifyPalette6FpnMIGRasterPage_nTenumIGContrastModes__v_ (1001f3c10, 0, 0, 0, 0, 0) + b4
    ffffffff7f083760 __1cSIGRasterProcessingOInvertContrast6FpnMIGRasterPage_nTenumIGContrastModes_nTenumIGColorChannels_pnPtagAT_RECTANGLE__v_ (1001f3c10, 0, 0, ffffffff7fffe1a8, 0, 0) + 20
    ffffffff7f039a2c iIG_IP_contrast_invert (1001f3c10, 100162b10, 0, 0, 0, 0) + 104
    ffffffff7f039ba0 iIG_IP_contrast_invert_masked (1001f3c10, 100162b10, 0, 0, 0, 0) + 80
    000000010000b4e0 ipcontrast_invert_notify (10014d000, 10014d, 0, 100000, 100162000, 100162) + 48
    Try/catch block:
         try
              <Triggering function>
         catch(const IGException& ige)
              <Handling Code>
    The code which throws the exception is a static method of IGException which has a basic throw line:
         throw IGException(...);
    Source code is compiled with the following flags, none of which I could find any info to suggest affect this:
    CC -c -Xt -xCC -misalign -xarch=v9 -O
    Linking of the shared object is then done via the following, again nothing obvious that could cause issues. mapfile is an empty file.
    ld -o <outputfilename> -G -z textoff -M mapfile -z noversion -64 -h <outputfilename> <object files> -L/opt/SUNWspro/lib/v9 -lCrun -lX11 -lc -lm
    I did read somewhere mentioning to make sure to use RTLD_GLOBAL if using dlopen on the .so, but the test app is using ld to link the library.
    Does anyone have any ideas why with the Sun Studio 9 compiler these exceptions are not being caught? Based on the fact they are caught on all other compilers, i'm guessing this issue is with the compiler.
    Also, as a test it seems that if the shared object is not built as a 64-bit object, then everything works. The issue only seems to occur when it is a 64-bit object. Likely an issue with the 64-bit compiling?
    Edited by: 837682 on Feb 17, 2011 9:23 AM

    As the other poster pointed out, you need to link the shared library using CC, not ld. I should have noticed that error in the original post.
    Try using CC instead of ld in your link command. The CC command causes additional files to be linked into the shared library that are required for proper operation, and particularly for exception handling. I think that is the actual source of your problem.
    You should not use -L options that point into the compiler installation area, and when you use CC to link, you don't need to.
    I'm surprised that you seem to have a copy of libCrun.so.1 in the compiler installation area -- that should not be the case. The the only versions of libCrun should be static libraries libCrun.a. You almost never want to link with a static version of a system library, and absolutely never when building a shared library. The file /opt/SUNWspro/lib/libCrun.so.1 ought to be a symbolic link pointing to /usr/lib/libCrun.so.1, but if that were the case, the version command would have the same output.
    By any chance, did you install your compiler by copying it from another installation? If you do that, you need to use tar, not cp, to ensure that symbolic links are preserved.

  • DAC - Error loading shared library [pmwrtrel.dll] in the dynamic lib mgr

    Hi,
    While executing ETL load on a Windows 32-bit machine with DAC v10.1.3.4.1, we were able to execute 24 tasks out of 317 successfully. Then it fails with the following error message:
    PRE-SESS> TM_6232 Error loading shared library [pmwrtrel.dll] in the dynamic library manager. The error is [Database driver event...Error occurred loading library [pmwrtrel.dll]. System error encountered is 127. Error text is The specified procedure could not be found. .].
    PRE-SESS> CMN_1761 Timestamp Event: [Mon Mar 29 19:04:05 2010]
    PRE-SESS> WRT_8236 Error getting pre session writer object for target [W_ETL_RUN_S]
    MANAGER> PETL_24027 Pre-session task completed successfully. : (Mon Mar 29 19:04:05 2010)
    DIRECTOR> PETL_24006 Starting data movement.
    MAPPING> TM_6660 Total Buffer Pool size is 12582912 bytes and Block size is 128000 bytes.
    READER_1_1_1> DBG_21437 Reader: Source is a file-based source.
    READER_1_1_1> FR_3118 source [SQ_FILE_DUAL] code page: [7-bit ASCII]
    READER_1_1_1> FR_3071 Maximum Line sequential buffer length is 1026.
    READER_1_1_1> BLKR_16003 Initialization completed successfully.
    WRITER_1_*_1> CMN_1761 Timestamp Event: [Mon Mar 29 19:04:05 2010]
    WRITER_1_*_1> TM_6232 Error loading shared library [pmwrtrel.dll] in the dynamic library manager. The error is [Database driver event...Error occurred loading library [pmwrtrel.dll]. System error encountered is 127. Error text is The specified procedure could not be found. .].
    MANAGER> PETL_24031
    ***** RUN INFO FOR TGT LOAD ORDER GROUP [1], CONCURRENT SET [1] *****
    Thread [READER_1_1_1] created for [the read stage] of partition point [SQ_FILE_DUAL] has completed. The total run time was insufficient for any meaningful statistics.
    Thread [TRANSF_1_1_1] created for [the transformation stage] of partition point [SQ_FILE_DUAL] has completed. The total run time was insufficient for any meaningful statistics.
    Thread [WRITER_1_*_1] created for [the write stage] of partition point [W_ETL_RUN_S] has completed. The total run time was insufficient for any meaningful statistics.
    MAPPING> CMN_1793 The index cache size that would hold [7340064] rows in the lookup table for [MPLT_GET_ETL_PROC_WID.LKP_ETL_PROC_WID], in memory, is [29555310648557682] bytes
    MAPPING> CMN_1792 The data cache size that would hold [7340064] rows in the lookup table for [MPLT_GET_ETL_PROC_WID.LKP_ETL_PROC_WID], in memory, is [12948046503805036] bytes
    MANAGER> PETL_24005 Starting post-session tasks. : (Mon Mar 29 19:04:05 2010)
    MANAGER> PETL_24029 Post-session task completed successfully. : (Mon Mar 29 19:04:05 2010)
    MAPPING> TM_6018 The session completed with [0] row transformation errors.
    MANAGER> PETL_24002 Parallel Pipeline Engine finished.
    DIRECTOR> PETL_24013 Session run completed with failure.
    DIRECTOR> TM_6022
    SESSION LOAD SUMMARY
    ================================================
    DIRECTOR> TM_6252 Source Load Summary.
    DIRECTOR> CMN_1740 Table: [SQ_FILE_DUAL] (Instance Name: [SQ_FILE_DUAL])
         Output Rows [0], Affected Rows [0], Applied Rows [0], Rejected Rows [0]
    DIRECTOR> TM_6253 Target Load Summary.
    DIRECTOR> CMN_1740 Table: [W_ETL_RUN_S] (Instance Name: [W_ETL_RUN_S])
         Output Rows [0], Affected Rows [0], Applied Rows [0], Rejected Rows [0]
    DIRECTOR> TM_6023
    ===================================================
    DIRECTOR> TM_6020 Session [SIL_InsertRowInRunTable] completed at [Mon Mar 29 19:04:06 2010].
    Kindly someone tell us how to resolve this issue.
    Regards,
    Vishnu

    what BIA version are you on?
    perhaps you have to install a informatica fix or a DAC patch

  • Using V9 C++ parser within shared library (Solaris)

    I am trying to use the latest C++ version of XML parser within a shared library on Solaris (v8) but I am having a problem with an unresolved symbol when the shared library is loaded.
    ../bin/Release/xxsd: fatal: relocation error: file /space/xxs/bin/Release/libxxtOracle.so: symbol __0fJXMLParserHxmlinitPUcPFPvPCUcUi_vPvP6IxmlsaxcbTDTB: referenced symbol not found
    Compiler is Forte V6.
    We currently successfully use the previous version of the parser on Solaris (oraxml8) with same build settings within our application.
    I am able to build and run the sample demo successfully.
    Any suggestions as to what the problem is and how to get round it?.
    Mike

    All works fine!...
    $ mkdir /tmp/xxx
    $ cat > dllfile.c
    $ cat > dlluser.c
    $ gcc -fPIC -c dllfile.c
    $ gcc -shared -W1,-soname,libdllfile.so.1 -o libdllfile.so dllfile.o
    $ gcc -o prog dlluser.c -ldl
    $ ls -l
    total 56
    -rw-r--r-- 1 xxxxxx users 80 &#1040;&#1087;&#1088; 8 17:04 dllfile.c
    -rw-r--r-- 1 xxxxxx users 908 &#1040;&#1087;&#1088; 8 17:15 dllfile.o
    -rw-r--r-- 1 xxxxxx users 368 &#1040;&#1087;&#1088; 8 17:03 dlluser.c
    -rwxr-xr-x 1 xxxxxx users 5260 &#1040;&#1087;&#1088; 8 17:15 libdllfile.so
    -rwxr-xr-x 1 xxxxxx users 6412 &#1040;&#1087;&#1088; 8 17:16 prog
    $
    $ file *
    dllfile.c:     c program text
    dllfile.o:     ELF 32-bit MSB relocatable SPARC Version 1
    dlluser.c:     c program text
    libdllfile.so:     ELF 32-bit MSB dynamic lib SPARC Version 1, dynamically linked, not stripped
    prog:          ELF 32-bit MSB executable SPARC Version 1, dynamically linked, not stripped
    $
    $ su
    Password:
    # mkdir -p /root/shared_library/
    # cp libdllfile.so /root/shared_library/
    # exit
    $ ./prog
    With the changes
    library loaded
    Inside function
    $

  • Building 64bit shared library on Solaris 10

    I'm trying to port a Java application that depends on BerkeleyDB from GNU/Linux to Solaris 10. The GNU/Linux version was just recently rebuilt against Sun Java 6. The 64bit version of the JVM for the AMD Opteron processor. It produced a 64bit shared library. All is well in GNU/Linux land.
    I try building BerkeleyDB on Solaris following the instructions in the documentation and it produces a 32bit shared library. So when the application starts up and tells the JVM to run in 64bit server mode it complains it cannot load a 32bit shared library. So my question is how do I force the build system to build a 64bit shared library in Solaris 10?
    I'm using the Sun Studio 11 compiler for building BDB. I'm also doing this on a T1000 so any T1000 specific flags would be appreciated.

    Hi,
    I am not familiar with your particular environment. The general method for building a 64 bit Berkeley DB library on Solaris is to pass the "-xarch=v9a" flag to the configure command.
    I hope this helps.
    - Alex Gorrod

  • Creating simple shared library using gcc under Solaris 10

    Hi All:
    I apologize if this is too newbie a question but have seen nothing that works for me yet.
    I'm trying to create a shared library that contains a single object file using gcc (as installed on Solaris 10). I compiled the source code as follows:
    gcc -c -fPIC x.cpp -o x.o
    and got the x.o object file created and readable.
    I then tried (from sample code on line):
    gcc -shared -Wl,-soname,libMyLib.so.1 -o libMyLib.so.1.0.1 x.o
    and get the following errors:
    ld: warning: option -o appears more than once, first setting taken
    ld: fatal: file libMyLib.so.1: open failed: No such file or directory
    ld: fatal: File processing errors. No output written to x.o
    collect2: ld returned 1 exit status

    -soname is a GNU ld option. Use -h instead.
    NB:
    - you should use g++ not gcc to compile C++ code
    - this forum is about the Oracle C++ compiler, not gcc. With it, you would do:
    CC -c -KPIC x.cpp
    CC -G -h libMyLib.so.1 -o libMyLib.so.1.0.1 x.o

  • How to build a shared library (dll) of a VI to be called by VC++

    hi All,
    How should I build a shared library ( dll ) using LabVIEW so that the desired output from LabVIEW can be returned to the main program that runs in VC++ ?
    I'm currently working in a project that uses the PXI 1042 & DMM, AWG, FGEN, SCOPE, RFSG, RFSA etc.
    The VC++ programmers dont want the LabVIEW front-end to be visible when called into VC++, in the sense they don't want LV to be another front-end, as the entire software is designed using VC++. It is enough if I simply pass the final values of measurement to them for display purpose.
    So, they've asked me if it is possible in LabVIEW to provide the VIs as dlls instead of exes.
    Since I've seen the feasibility of building a EXE or a DLL in LV, I've replied positively to them.
    In another of my project, I'm using dlls built in VC++ for hardware drive interaction parts in my LabVIEW project.
    Likewise, what are the methodologies that I should follow when building a Dll in LV ?
    I tried with a simple VI, wherein it returns a value of addtion of 2 elements & I passed it thro' the connector pane correctly.
    When I called the same dll in LV itself & configured it correctly by specifying the correct return type & I/O, then also it did not run properly.
    I could not understand what was going.
    So experts pls help me out by some simple examples or related links.
    Regards & Thanks,
    Partha.
    - Partha
    LabVIEW - Wires that catch bugs!

    Here you can find Application Notes and examples:
    http://zone.ni.com/devzone/devzone.nsf/webcategories/98D192CDCCDA21EE86256AB7006BECAF
    Hope this helps!

  • Writing LabVIEW application on Solaris that invokes a function in a shared library

    In the "Call Library Function" Configure window I choose a Shared Library "xxx.so" file and select the Function Name "Foo" (written in C). It happens that function "Foo" calls another function "Bar" (also written in C) that resides in a different Shared Library (in /usr/dt/lib). After clicking "OK", a window comes up with the message "/xxx/xxx.so fatal relocation error ... symbol Bar: referenced symbol not found." Is there a way to get around this (such as search a list of libraries)? Combining the libraries is not an option; they are very large and belong to different software packages.

    Thanks for your quick response.
    Yes, usr/dt/lib is in the LD_LIBRARY_PATH environment variable. Is LabVIEW supposed to search LD_LIBRARY_PATH libraries in addition to the one I specify in the "Call Library Function" Configure window? That's what I would like it to do, but there still seems to be a problem. -j_b

  • Getting the JDK version for an shared library

    Hi,
    Given is an shared library for Windows (*.dll) or Solaris (*.so).
    These libraries are included for native calls by using JNI.
    Is it possible to identify the version of the JDK which was used for creating this libraries?
    TIA,
    Frank

    Is it possible to identify the version of the JDK which was used for creating this libraries?No. Not unless you explicitly add something in yourself.

  • Solution of "no ocijdbc8 in shared library path" Windows95 Jdeveloper 3.0

    I installed Jdeveloper 3.0 and got the message "no ocijdbc8 in shared library path".
    We are using Oracle 8.0.5 so I had Oracle 8.0.5 client in my PC.
    1. I down loaded oci805jdbc.dll, oci805jdbc_g.dll and put my c:\orawin95\bin directory. The PATH contains the directory.
    2. Then I tested the dll with the following program: (provided with sombody else in this discussion forum.)
    public class Test4 {
    public static void main (String [] args)
    try
    System.loadLibrary("oci805jdbc");
    System.out.println("Successfully Loaded");
    } catch(Exception e)
    System.out.println("LD_LIBRARY_PATH is not properly set");
    e.printStackTrace();
    The output:
    Successfully Loaded
    I tried the following too (ocijdbc8.dll exists in c:\orawin95\bin directory):
    public class Test {
    public static void main (String [] args)
    try
    System.loadLibrary("ocijdbc8");
    System.out.println("Successfully Loaded");
    } catch(Exception e)
    System.out.println("LD_LIBRARY_PATH is not properly set");
    e.printStackTrace();
    The output:
    java.lang.UnsatisfiedLinkError: no ocijdbc8 in shared library path
    May be I need Oracle 8.1.5 client or the dll is corrupted?
    3. I modified my Jdeveloper.ini file (changed jdbc lib: 8.1.5 to 8.0.5:
    Original row:
    [Java_Global]
    IDEClassPath=..\lib\jdeveloper.zip;..\lib\jdev-rt.zip;..\lib\jbcl2.0.zip;..\lib\jgl3.1.0.jar;..\sqlj\lib\translator.zip;..\aurora\lib\aurora_client.jar;..\aurora\lib\jasper.zip;..\ aurora\lib\vbjtools.jar;..\aurora\lib\vbjorb.jar;..\aurora\lib\vbjapp.jar;..\aurora\lib\vbj30ssl.jar;..\aurora\lib\aurora.zip;..\jdbc\lib\oracle8.1.5\classes111.zip;..\lib\javax_ej b.zip;..\lib\jndi.jar;..\lib\netasst.jar;..\lib\jsp2java.jar;..\lib\jsdk.jar;..\lib\oasdeploy.jar;..\lib\f60all.jar;..\lib\jbodatum.zip;..\lib\jbomt.zip;..\lib\jbovb.zip;..\lib\jbo o8i.zip;..\lib\jboejb.jar;..\lib\jbodt.zip;..\lib\jbotester.zip;..\lib\xmlparserv2.jar;..\lib\dacf.zip;..\lib\dacfdt.zip;..\infobus\lib\infobus.jar;..\lib\LW_pfjbean.jar
    Modified row:
    [Java_Global]
    IDEClassPath=..\lib\jdeveloper.zip;..\lib\jdev-rt.zip;..\lib\jbcl2.0.zip;..\lib\jgl3.1.0.jar;..\sqlj\lib\translator.zip;..\aurora\lib\aurora_client.jar;..\aurora\lib\jasper.zip;..\ aurora\lib\vbjtools.jar;..\aurora\lib\vbjorb.jar;..\aurora\lib\vbjapp.jar;..\aurora\lib\vbj30ssl.jar;..\aurora\lib\aurora.zip;..\jdbc\lib\oracle8.0.5\classes111.zip;..\lib\javax_ej b.zip;..\lib\jndi.jar;..\lib\netasst.jar;..\lib\jsp2java.jar;..\lib\jsdk.jar;..\lib\oasdeploy.jar;..\lib\f60all.jar;..\lib\jbodatum.zip;..\lib\jbomt.zip;..\lib\jbovb.zip;..\lib\jbo o8i.zip;..\lib\jboejb.jar;..\lib\jbodt.zip;..\lib\jbotester.zip;..\lib\xmlparserv2.jar;..\lib\dacf.zip;..\lib\dacfdt.zip;..\infobus\lib\infobus.jar;..\lib\LW_pfjbean.jar
    I am sure that the actual ..\jdbc\.. \lib\classes111.zip (or classes12 in java2) responsible for the ocijdbc8/oci805jdbc etc calling.
    The OracleDriver.class contains the name of the dll without the .dll extension.
    With this parameter is called the system.loadLibrary method!
    Importent:
    USE THE APPROPIATE ORACLE CLIENT (appropiate ocijdbc.dll)!
    USE THE APPROPIATE classes111.zip,
    (classes12.zip)!
    Manual setup using sqlj from DOS promt:
    set CLASSPATH=.;c:\orawin95\LITE\CLASSES\OLJDK11.JAR;c:\orawin95\LITE\CLASSES\OLITE40.JAR;d:\jdev\sqlj\lib\runtime.zip;d:\jdev\sqlj\lib\translator.zip;d:\jdev\jdbc\lib\oracle8.0.5\clas ses111.zip;d:\jdev\sqlj\lib\translator.zip;d:\jdev\java\lib\classes.zip;d:\jdev\jdbc\lib\oracle8.1.5\nls_charset11.zip;c:\orawin95\bin
    PATH C:\ORAWIN95\bin;d:\mgwin\bin;d:\bcc55;d:\bcc55\bin;d:\TC;C:\WINDOWS;C:\WINDOWS\COMMAND;C:\WNETFIN;C:\PROGRA~1\PERSON~1;C:\PSM;C:\WINDOWS\UTILS;d:\jdev\java\bin;d:\jdev\bin;d:\jdev\ jdbc\lib
    Good Luck!
    Otto
    [email protected]
    [email protected]
    null

    nstall the Oracle8i client on your machine, and make sure that
    <ORACLE_HOME> is set correctly. (From The Tools->IDE Options and click on the
    environment TAB ) and select an ORACLE_HOME from the List Box)
    or
    Exit from JDeveloper and edit the jdeveloper.ini file which is located in
    <J Developer Home>\bin.
    Modify the entries:
    JLP=-Djava.library.path=.;%JAVA_ROOT%\bin;%JAVA_ROOT%\jre\bin
    SLP=-Dsun.boot.library.path=.;%JAVA_ROOT%\bin;%JAVA_ROOT%\jre\bin
    to include the Oracle Bin directory. For example:
    JLP=-Djava.library.path=.;%JAVA_ROOT%\bin;%JAVA_ROOT%\jre\bin;D:\ORA8i\BIN
    SLP=-Dsun.boot.library.path=.;%JAVA_ROOT%\bin;%JAVA_ROOT%\jre\bin;D:\ORA8i\BIN

  • JDBC+Lite+WinCE : java.lang.UnsatisfiedLinkError: no oljdbc40 in shared library path

    Greetings,
    I'm trying to work with Oracle 9i Lite on PocketPC and I got one
    exception when I try to use jdbc package (oljdbc40.jar):
    java.lang.UnsatisfiedLinkError: no oljdbc40 in shared library
    path
    Since I didn't made the dll (is an Oracle product), I can't make
    much about the dll or the native class file where the call take
    place.
    my standard definitions are:
    -PocketPC (ipaq)
    -Personal Java 1.1 beta
    -I have my application in a JAR-based file in "\Program
    Files\App"
    -Oracle Lite installation in "\ORACE";
    -dll files installed by oracle in "\Windows";
    -wince registry classpath for JAR/CLASS file aimed
    to "\ORACE\oljdbc40.jar"
    So, what should I do to run my application that uses a jdbc
    package from oracle based on a dll file?
    I'm hopeful to solve this and avoid my thought from using any
    Microsoft Visual tool...
    thanks,
    Pedro Salazar

    Hi Pedro,
    Did you ever get this problem fixed? I'm seeing the same issue running Personal Java 1.1 beta for StrongARM on PocketPC 2000 with Oracle 9i Lite 5.0.2
    Any help much appreciated!
    Thanks,
    Simon.

Maybe you are looking for