JNI and shared libs

Hi,
I have a multhreaded application that needs access to a C++ API. I have created a JNI interface to acheive this.
Each thread needs to access the JNI methods. If I load the shared library once and try to access the native methods, then I get synchronization problems as each thread try to access the shared library. I do not want to synchronize the methods as this will slow down the application. I have solved the problem by creating a shared library for each thread but I think this is clumbersome. Is there an alternative?
thanks

You can't create a shared library for each thread. The OS will only allow a shared library to be loaded once. That has nothing to do with java nor even with a particular OS.
So whatever you are creating more than one of it isn't the library itself.
Is there an alternative?No.
If there is data that is used between each thread then the following are the only possibilities
1. Share it in such a way that it doesn't matter if multiple threads access it. This in almost all cases means that it is read only.
2. Synchronize it in some way.
3. Create multiple instances.

Similar Messages

  • Java 1.5 JNI and C++ exception

    Hello, All
    I've troubles with handling C++ exceptions using JNI and shared library. I'm using Java 1.5_06, RedHat 7.3 and JBoss 4.0.5
    From Java class I call JNI a method in my shared library(libx.so) which calls a method in other shared library(liby.so). Liby.so uses Xerces library. During parsing process an exception occurs. But according to Xerces sources it's a normal behavior and should be caught. But instead I've got SIGNABRT in JVM and a core dump will created. What's wrong? Backtrace shows similar something:
    XXXXX  __default_terminate() ....
    XXXXX  __terminate() ....
    XXXXX  __throws
    XXXXX C++ method ..
    XXXXX.....
    XXXXX.....
    XXXXX  JNI methodI found similar bugs reports in the forum. But they says about Java 1.4 version and according to bugs descriptions it should be already fixed.
    Message was edited by:
    kostik78

    The question is closed. The root cause was incorrect building of shared library.

  • JVM Crash When Using JNI and COM

    I'm trying to call a DLL compiled from VB6 source code that I do not have access to. The VB6 code simply retrieves data from a DB2 database using ADO and my client code grabs that data and marshals it to my Java code. I'm attempting to achieve this using JNI and COM (without a third-party bridge). It works 75% of the time, but the other 25% of the time, the JVM crashes with the usual Hotspot crash log containing an access violation exception. However, I don't know what in my C++ code (VC++ 8) could be causing this except for passing a "wild" pointer to the code lying underneath the COM object interface. If that is the case, I don't know how I am doing that.
    The Java code that is calling my native method is running on Tomcat 5.5.25 and just to be safe, I am not allowing multiple threads to concurrently call the method in my JNI DLL (though I realize that this will kill performance). Once I can get past this problem, I'll do the COM interfacing on a worker thread in my native code so I don't screw up CoInitialize and CoUninitialize calls in the case the same thread is concurrently executing multiple calls to my native code.
    I've noticed that in most cases, the JVM crashes during my call to the pClsAccount->OpenConnection method. However, my DLL isn't what is listed on the top of the call stack, which is why I suspect the passing of a wild pointer, though I'm just taking a guess at that. Does anyone have an idea as to what's going on ?
    JNIEXPORT jobject JNICALL Java_CustomerInfo_nGetCustomerAccountInfo(JNIEnv *env, jobject customerInfo, jstring accountNumber, jstring iniFileName)
    jboolean isCopy;
    // Account info class and instance to be instantiated
    jclass accountInfoCls = NULL;
    jobject accountInfoObj = NULL;
    // The constructor ID of the accountInfoCls
    jmethodID ctorID = NULL;
    // Pointer to the interface for the ClsAccount COM object
    _clsAccount *pClsAccount = NULL;
    HRESULT hr;
    BSTR bstrIniFileName(L"");
    try
    const char *nativeAccountNumber = NULL;
    if (accountNumber != NULL)
    nativeAccountNumber = env->GetStringUTFChars(accountNumber, &isCopy);
    else
    jclass newExcCls;
    env->ExceptionDescribe();
    env->ExceptionClear();
    newExcCls = env->FindClass("java/lang/IllegalArgumentException");
    env->ThrowNew(newExcCls, "accountNumber passed in was null !");
    return NULL;
    // Initialization
    variantt varConnectionSucceeded = variantt(false);
    variantt varGetAccountInfoSucceeded = variantt(false);
    variantt varAccountNumber = variantt(nativeAccountNumber);
    bstrt bstrLastPaymentDate = bstrt();
    bstrt bstrLastErrorMessage = bstrt();
    bstrt bstrLastErrorNumber = bstrt();
    jlong jTotalDue = NULL;
    jlong jEstablishedDueDay = NULL;
    jlong jLastPaymentAmount = NULL;
    jstring jLastPaymentDate = NULL;
    jstring jLastErrorMessage = NULL;
    jstring jLastErrorNumber = NULL;
    jthrowable jException = NULL;
    const char *chLastPaymentDate = NULL;
    const char *chLastErrorMessage = NULL;
    const char *chLastErrorNumber = NULL;
    long long totalDue;
    long long lastPaymentAmount;
    long establishedDueDateDay;
    //Convert string from Java string to C string to VB string
    const char *nativeIniFileName = NULL;
    if (iniFileName != NULL)
    nativeIniFileName = env->GetStringUTFChars(iniFileName, &isCopy);
    else
    jclass newExcCls;
    env->ExceptionDescribe();
    env->ExceptionClear();
    newExcCls = env->FindClass("java/lang/IllegalArgumentException");
    env->ThrowNew(newExcCls, "iniFileName passed in was null");
    return NULL;
    bstrIniFileName = comutil::ConvertStringToBSTR(nativeIniFileName);
    CoInitialize(NULL);
    // Create an instance of the COClass with the interface over it
    hr = CoCreateInstance(__uuidof(clsAccount), NULL, CLSCTX_INPROC_SERVER, __uuidof(_clsAccount), (void **)&pClsAccount);
    if (hr == S_OK)
    varConnectionSucceeded.boolVal = pClsAccount->OpenConnection(&bstrIniFileName);
     
    if (varConnectionSucceeded.boolVal == -1)
    varGetAccountInfoSucceeded.boolVal = pClsAccount->GetAccountPaymentInformation(&(varAccountNumber.GetVARIANT()));
    env->ReleaseStringUTFChars(accountNumber, nativeAccountNumber);
    // Extract all available account information from the ClsAccount object
    if (varGetAccountInfoSucceeded.boolVal == -1)
    totalDue = pClsAccount->TotalDue.int64;
    establishedDueDateDay = pClsAccount->EstablishedDueDateDay;
    lastPaymentAmount = pClsAccount->LastPaymentAmount.int64;
    bstrLastPaymentDate = pClsAccount->LastPaymentDate;
    chLastPaymentDate = comutil::ConvertBSTRToString(bstrLastPaymentDate.GetBSTR());
    jTotalDue = (jlong)totalDue;
    jEstablishedDueDay = (jlong)establishedDueDateDay;
    jLastPaymentAmount = (jlong)lastPaymentAmount;
    jLastPaymentDate = env->NewStringUTF(chLastPaymentDate);
    delete[] chLastPaymentDate;
    pClsAccount->CloseConnection();
    // Populate error fields if any errors occur
    bstrLastErrorMessage = pClsAccount->LastErrMessage;
    chLastErrorMessage = comutil::ConvertBSTRToString(bstrLastErrorMessage.GetBSTR());
    bstrLastErrorNumber = pClsAccount->LastErrNumber;
    chLastErrorNumber = comutil::ConvertBSTRToString(bstrLastErrorNumber.GetBSTR());
    jLastErrorMessage = env->NewStringUTF(chLastErrorMessage);
    jLastErrorNumber = env->NewStringUTF(chLastErrorNumber);
    delete[] chLastErrorMessage;
    delete[] chLastErrorNumber;
    const char* clsName = "com/nuance/merchantsmutual/businessentities/CustomerAccountInfo";
    // Find the Java class and the ID of its constructor
    accountInfoCls = env->FindClass(clsName);
    ctorID = env->GetMethodID(accountInfoCls, "<init>", "(JJJLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V");
    jException = env->ExceptionOccurred();
    if (jException != NULL)
    env->ExceptionDescribe();
    env->ExceptionClear();
    //Release all resources associated with the ClsAccount instance
    pClsAccount->Release();
    //Instantiate the class with the given parameters
    accountInfoObj = env->NewObject(accountInfoCls, ctorID, jTotalDue, jEstablishedDueDay, jLastPaymentAmount, jLastPaymentDate, jLastErrorMessage, jLastErrorNumber);
    jException = env->ExceptionOccurred();
    if (jException != NULL)
    env->ExceptionDescribe();
    env->ExceptionClear();
    else if (hr == REGDB_E_CLASSNOTREG)
    cout << "COM class not registered" << endl;
    else if ( hr == CLASS_E_NOAGGREGATION)
    cout << "COM class can't be aggregated" << endl;
    else if (hr == E_NOINTERFACE)
    cout << "No interface for COM class clsAccount" << endl;
    else if (hr == E_POINTER)
    cout << "*ppv pointer was NULL !" << endl;
    else
    cout << "Error occurred while creating COM object. HR is [" << hr << "]" << endl;
    // Free the BSTR because a new one was returned with a call to comutil::ConvertStringToBSTR
    SysFreeString(bstrIniFileName);
    // Release the string when it's no longer needed. MUST call if string won't be used
    // anymore or else a memory leak will occur
    env->ReleaseStringUTFChars(iniFileName, nativeIniFileName);
    CoUninitialize();
    &#12288;
    catch (_com_error &e)
    cout << "Encountered an exception in GetCustomerAccountInfo: Error was " << e.ErrorMessage();
    pClsAccount->Release();
    catch (...)
    pClsAccount->Release();
    return accountInfoObj;
    Edited by: Cthulhu76 on Jan 5, 2010 9:18 AM

    0x49202400 JavaThread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" daemon [_thread_blocked, id=5340, stack(0x49bf0000,0x49c40000)]
    0x48a7e800 JavaThread "Thread-1" [_thread_in_native, id=5976, stack(0x48f00000,0x48f50000)]
    0x48a0dc00 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=3072, stack(0x48c60000,0x48cb0000)]
    0x48a09000 JavaThread "CompilerThread0" daemon [_thread_blocked, id=4988, stack(0x48c10000,0x48c60000)]
    0x48a07c00 JavaThread "Attach Listener" daemon [_thread_blocked, id=3124, stack(0x48bc0000,0x48c10000)]
    0x48a07000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=2572, stack(0x48b70000,0x48bc0000)]
    0x489f5c00 JavaThread "Finalizer" daemon [_thread_blocked, id=5752, stack(0x48b20000,0x48b70000)]
    0x489f4c00 JavaThread "Reference Handler" daemon [_thread_blocked, id=2596, stack(0x48ad0000,0x48b20000)]
    0x003c6000 JavaThread "main" [_thread_in_native, id=4252, stack(0x00820000,0x00870000)]
    Other Threads:
    0x489f0400 VMThread [stack: 0x48a80000,0x48ad0000] [id=5624]
    0x48a18800 WatcherThread [stack: 0x48cb0000,0x48d00000] [id=1192]
    VM state:not at safepoint (normal execution)
    VM Mutex/Monitor currently owned by a thread: None
    Heap
    def new generation total 36288K, used 12762K [0x02940000, 0x050a0000, 0x07800000)
    eden space 32256K, 34% used [0x02940000, 0x0343af58, 0x048c0000)
    from space 4032K, 37% used [0x04cb0000, 0x04e2ba28, 0x050a0000)
    to space 4032K, 0% used [0x048c0000, 0x048c0000, 0x04cb0000)
    tenured generation total 483968K, used 7518K [0x07800000, 0x250a0000, 0x42940000)
    the space 483968K, 1% used [0x07800000, 0x07f57958, 0x07f57a00, 0x250a0000)
    compacting perm gen total 14080K, used 14016K [0x42940000, 0x43700000, 0x46940000)
    the space 14080K, 99% used [0x42940000, 0x436f0320, 0x436f0400, 0x43700000)
    No shared spaces configured.
    Dynamic libraries:
    0x00400000 - 0x0040f000      C:\Program Files\Apache Software Foundation\Tomcat 5.5\bin\tomcat5.exe
    0x7c800000 - 0x7c8c0000      C:\WINDOWS\system32\ntdll.dll
    0x77e40000 - 0x77f42000      C:\WINDOWS\system32\kernel32.dll
    0x77380000 - 0x77411000      C:\WINDOWS\system32\USER32.dll
    0x77c00000 - 0x77c48000      C:\WINDOWS\system32\GDI32.dll
    0x77f50000 - 0x77feb000      C:\WINDOWS\system32\ADVAPI32.dll
    0x77c50000 - 0x77cef000      C:\WINDOWS\system32\RPCRT4.dll
    0x76f50000 - 0x76f63000      C:\WINDOWS\system32\Secur32.dll
    0x77ba0000 - 0x77bfa000      C:\WINDOWS\system32\MSVCRT.dll
    0x7c8d0000 - 0x7d0cf000      C:\WINDOWS\system32\SHELL32.dll
    0x77da0000 - 0x77df2000      C:\WINDOWS\system32\SHLWAPI.dll
    0x76290000 - 0x762ad000      C:\WINDOWS\system32\IMM32.DLL
    0x77420000 - 0x77523000      C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.3790.3959_x-ww_D8713E55\comctl32.dll
    0x6d7c0000 - 0x6da10000      C:\Program Files\Java\jre1.6.0_07\bin\client\jvm.dll
    0x76aa0000 - 0x76acd000      C:\WINDOWS\system32\WINMM.dll
    0x7c340000 - 0x7c396000      C:\WINDOWS\system32\MSVCR71.dll
    0x6d270000 - 0x6d278000      C:\Program Files\Java\jre1.6.0_07\bin\hpi.dll
    0x76b70000 - 0x76b7b000      C:\WINDOWS\system32\PSAPI.DLL
    0x6d770000 - 0x6d77c000      C:\Program Files\Java\jre1.6.0_07\bin\verify.dll
    0x6d310000 - 0x6d32f000      C:\Program Files\Java\jre1.6.0_07\bin\java.dll
    0x6d7b0000 - 0x6d7bf000      C:\Program Files\Java\jre1.6.0_07\bin\zip.dll
    0x6d570000 - 0x6d583000      C:\Program Files\Java\jre1.6.0_07\bin\net.dll
    0x71c00000 - 0x71c17000      C:\WINDOWS\system32\WS2_32.dll
    0x71bf0000 - 0x71bf8000      C:\WINDOWS\system32\WS2HELP.dll
    0x71b20000 - 0x71b61000      C:\WINDOWS\system32\mswsock.dll
    0x5f270000 - 0x5f2ca000      C:\WINDOWS\system32\hnetcfg.dll
    0x71ae0000 - 0x71ae8000      C:\WINDOWS\System32\wshtcpip.dll
    0x76ed0000 - 0x76efa000      C:\WINDOWS\system32\DNSAPI.dll
    0x76f70000 - 0x76f77000      C:\WINDOWS\System32\winrnr.dll
    0x76f10000 - 0x76f3e000      C:\WINDOWS\system32\WLDAP32.dll
    0x76f80000 - 0x76f85000      C:\WINDOWS\system32\rasadhlp.dll
    0x4a6a0000 - 0x4a6ac000      C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\MMI\WEB-INF\lib\CustomerInfoProxy.dll
    0x77670000 - 0x777a9000      C:\WINDOWS\system32\ole32.dll
    0x77d00000 - 0x77d8b000      C:\WINDOWS\system32\OLEAUT32.dll
    0x7c420000 - 0x7c4a7000      C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_E6967989\MSVCP80.dll
    0x78130000 - 0x781cb000      C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_E6967989\MSVCR80.dll
    0x777b0000 - 0x77833000      C:\WINDOWS\system32\CLBCatQ.DLL
    0x77010000 - 0x770d6000      C:\WINDOWS\system32\COMRes.dll
    0x77b90000 - 0x77b98000      C:\WINDOWS\system32\VERSION.dll
    0x75da0000 - 0x75e5d000      C:\WINDOWS\system32\SXS.DLL
    0x75e60000 - 0x75e87000      C:\WINDOWS\system32\apphelp.dll
    0x4dc30000 - 0x4dc5e000      C:\WINDOWS\system32\msctfime.ime
    0x4b0d0000 - 0x4b395000      C:\WINDOWS\system32\xpsp2res.dll
    0x71bb0000 - 0x71bb9000      C:\WINDOWS\system32\WSOCK32.dll
    0x4bbe0000 - 0x4bbea000      C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\MMI\WEB-INF\lib\ClearTranProxy.dll
    0x745e0000 - 0x7489e000      C:\WINDOWS\system32\msi.dll
    0x71c40000 - 0x71c97000      C:\WINDOWS\system32\NETAPI32.dll
    0x4bc50000 - 0x4bc6c000      C:\WINDOWS\system32\DBNETLIB.DLL
    0x71f60000 - 0x71f64000      C:\WINDOWS\system32\security.dll
    0x76c90000 - 0x76cb7000      C:\WINDOWS\system32\msv1_0.dll
    0x76cf0000 - 0x76d0a000      C:\WINDOWS\system32\iphlpapi.dll
    0x761b0000 - 0x76243000      C:\WINDOWS\system32\crypt32.dll
    0x76190000 - 0x761a2000      C:\WINDOWS\system32\MSASN1.dll
    0x4bcf0000 - 0x4bcff000      C:\Program Files\Common Files\System\Ole DB\SQLOLEDB.RLL
    0x4a8a0000 - 0x4a8aa000      C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\MMI\WEB-INF\lib\MIGI.DLL
    0x73570000 - 0x736c2000      C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\MMI\WEB-INF\lib\MSVBVM60.DLL
    0x4a950000 - 0x4a9e2000      C:\Program Files\Common Files\System\ado\msado15.dll
    0x74a50000 - 0x74a6a000      C:\WINDOWS\system32\MSDART.DLL
    0x4c850000 - 0x4c8c9000      C:\Program Files\Common Files\System\Ole DB\oledb32.dll
    0x4dbb0000 - 0x4dbc1000      C:\Program Files\Common Files\System\Ole DB\OLEDB32R.DLL
    VM Arguments:
    jvm_args: -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 5.5 -Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 5.5 -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\endorsed -Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 5.5\temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\logging.properties -Djava.library.path=C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\MMI\WEB-INF\lib vfprintf -Xms512m -Xmx1024m
    java_command: <unknown>
    Launcher Type: generic
    Environment Variables:
    JAVA_HOME=C:\Program Files\Java\jdk1.6.0_07
    [error occurred during error reporting (printing environment variables), id 0xc0000005]
    --------------- S Y S T E M ---------------
    OS: Windows Server 2003 family Build 3790 Service Pack 2
    CPU:total 4 (4 cores per cpu, 1 threads per core) family 6 model 7 stepping 6, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3
    Memory: 4k page, physical 2097151k(2097151k free), swap 4194303k(4194303k free)
    vm_info: Java HotSpot(TM) Client VM (10.0-b23) for windows-x86 JRE (1.6.0_07-b06), built on Jun 10 2008 01:14:11 by "java_re" with MS VC++ 7.1
    time: Mon Dec 28 15:24:00 2009
    elapsed time: 600 seconds

  • Can't load shared lib lib... with SuSE 6.2

    Hi,
    i have a Problem with sqlplus and the shared librarys, if I start
    sqlplus everytime it complains about the shared libs.
    Is it wron to set the LD_LIBRARY_PATH to $ORACLE_HOME/lib ???
    Do I need an updated JRE ??? GLIBC ???
    Thank you for the help !!
    Michael
    null

    Hi,
    which libs are wrong? There are several libs with 0 byte size!!!
    That is a known bug, and when ld reads them it of course
    complains ;-)
    For one of the 0 byte libs there is a patch (look at earlier
    postings around 2 weeks ago)
    Marcus
    PS: it seems anyhow this release is not ready for prime time. If
    you want to play around with Oracle, take 8.0.5.1, that works
    really good.
    Christian Schroeder (guest) wrote:
    : Marcus (guest) wrote:
    : Hi,
    : : try adding $ORACLE_HOME/lib path to /etc/ld.so.conf
    : : then, run ldconfig -v as root, this may solve your problem
    : I did this, but the ldconf complained that he couldn't read
    : the headers of the libraries, especially the
    jni-shared-library.
    : I was wondering if I use the wrong ldd version? It says it is
    : 2.1.2! Is this enough?
    : Thanks you for you help,
    : cu Christian
    null

  • Problem with classloader (for shared-lib's) on oc4j 10.0.3.4 under jdk 1.5

    I have a project that runs great on oc4j 10.0.3.4 under jdk 1.6. (everything worked great)
    I recently tried to run it under jdk 1.5 and i've run into a little problem with the shared-lib's:
    The classloader's debug file reports the following: (i have translated some of it)
    Class error: oracle.classloader.util.AnnotatedNoClassDefFoundError:
         Missing class: javax.xml.bind.JAXBContext
    Dependant class: nl.comp.util.XmlUtil
         Classloader: comp:0.1
         Code-source: /C:/programs/oc4j/j2ee/home/shared-lib/comp/0.1/comp.jar
         Configuration: <code-source> in /c:/programs/oc4j/j2ee/home/config/server.xml
    The missing class is available from the following location:
         1. Code-source: /C:/programs/oc4j/lib/xml.jar (from <code-source> (ignore manifest Class-Path) in META-INF/boot.xml in C:\programs\oc4j\j2ee\home\oc4j.jar)
    This code-source is available from classloader oracle.xml:10.1.0_2
         2. Code-source: /C:/programs/oc4j/j2ee/home/shared-lib/jaxb/2.1.6/jaxb-api.jar (from <code-source> in /c:/programs/oc4j/j2ee/home/config/server.xml)
    This code-source is available from classloader jaxb:2.1.6.
    So the classloader knows where to find the necessary lib, but it isn't loading it? If i run the exact same code (with same descriptors and everything) under jdk 1.6, it works, under 1.5 i get the above error.
    What is different on the class loader level between the two jdk versions that might affect the program in such a way?
    Need i update a descriptor or do something else?

    Jack,
    Not a definitive answer for you (sorry), just a few suggestions (that I assume you are unaware of).
    1. Try unsetting your "ClassPath" variable. Open a "command" window and type the following:
    set ClassPath=2. Launch OC4J from the directory where the "oc4j.jar" file is located, for example:
    D:
    cd oc4j\j2ee\home
    java -jar oc4j.jar3. I'm just guessing, but if your drive "D:" is a mapped, network drive, this may be causing the problem. Perhaps try installing OC4J on a local drive?
    Hope this helps.
    Good Luck,
    Avi.

  • How to control the shared libs when creating an new OC4J  in AS 10.1.3.4

    Hi there
    I experience some wired behavior in AS 10.1.3.4!
    I Have 2 different installation of AS 10.,1.3.4 (Win 2003 server).
    When I create an OC4J instance (using the manager) at virtual server 1 I got 28 global libraries
    When I create an OC4J instance (using the manager) at virtual server 2 I got 30 global libraries, (+ apache.webservices & oracle.ifs.client )
    Why this difference ?
    And how to control it?
    Note the default instance "Home" has 28 libraries on both servers!!
    Why is it sometime possible possible to use <instance>applib for the jar, and sometime I need to create an <instance>\shared-lib\global.libraries\1.0 library ?
    Regards HAns

    Hi there
    I experience some wired behavior in AS 10.1.3.4!
    I Have 2 different installation of AS 10.,1.3.4 (Win 2003 server).
    When I create an OC4J instance (using the manager) at virtual server 1 I got 28 global libraries
    When I create an OC4J instance (using the manager) at virtual server 2 I got 30 global libraries, (+ apache.webservices & oracle.ifs.client )
    Why this difference ?
    And how to control it?
    Note the default instance "Home" has 28 libraries on both servers!!
    Why is it sometime possible possible to use <instance>applib for the jar, and sometime I need to create an <instance>\shared-lib\global.libraries\1.0 library ?
    Regards HAns

  • Pmap and shared libraries

    I'm trying to subtract the "shared" mappings from the output that pmap
    produces and show memory usage per process and a separate shared
    memory usage for the system.
    Pmap shows shared library mappings like this ...
    Address Kbytes Resident Shared Private Permissions Mapped File
    FF080000 656 616 600 16 read/exec libc.so.1
    FF132000 32 32 - 32 read/write/exec libc.so.1
    It looks like all processes that have access to libc.so have
    the same mapping. It was my understanding that the Shared and Private allocations (at least in the read/exec mapping) were a fixed
    characteristic of the particular shared library.
    Where is the 40 Kbytes that are not currently used? Virtual, swapped
    out?, but would it be Shared or Private?

    No, not all processes mapping a shared library have the same
    shared/private .text section allocations.
    The shared libraries are tuned for maximum sharing, that is they
    are compiled as position independant code so most of the .text
    section (program code) can be mapped without changes into each
    process, at whatever virtual address is appropriate for each
    process. All the code that needs to be adapted for a certain
    virtual address is concentrated at one place in the .text section
    (procedure linkage table, global offset table, ...). This part
    of the shared library cannot be shared between processes and is
    typically what you see as the "private" part of the .text section
    in the pmap -x output. The non sharable .text section part is
    just the procedure linkage table, global offset table, ... and
    thus is ~ the same size for each process.
    By using mprotect on the .text section or by setting breakpoints
    into the .text section (to name two exceptions) you are able to
    make changes to more parts of the shared .text sections, so that
    you get more 'private' pages in a processes' address space. Here's
    an example with breakpoints:
    <pre>
    4% adb /bin/cat
    main:b
    :r
    breakpoint at:
    main: save %sp, -0x190, %sp
    printf:b
    memmove:b
    atoi:b
    malloc:b
    getenv:b
    :c
    breakpoint at:
    getenv: save %sp, -0x60, %sp
    </pre>
    Now in another window you can verify with pmap -x that cat's copy of
    libc.so with several breakpoints (=changes, private copies) in the
    .text section has more private memory allocated:
    <pre>
    FF280000 656 616 568 48 read/exec libc.so.1
    </pre>
    While some other processes' copy of libc.so at the same time has:
    <pre>
    FF180000 656 616 592 24 read/exec libc.so.1
    </pre>
    The 40Kbytes difference you've observed between the .text sections'
    size and the resident size are VM pages not loaded in main memory.
    If these VM pages have not been changed, then they can be paged in
    from the shared lib's file, else there have been changes to these
    pages and they resides on the swap space.

  • Using older shared libs for games ?

    Hi fellow archers,
    I like to play the enhanced Quake engine DarkPlaces (http://icculus.org/twilight/darkplaces/) together with a few mods (namely SDQuake and Kleshik).
    Under Ubuntu 9.04 x64 DarkPlaces runs nicely as native x64 Linux app. Under the most recent version of arch64 DarkPlaces bombed out with an error message that the libjpeg version is too new. Something like Version 0.80 found but Version 0.62 is expected. Seems to me that even the newest version of Darkplaces is build against an older version of libjpeg than the one included in arch64. Libpng is also used by DarkPlaces since textures are stored as PNG.
    My Ubuntu 9.04 x64 shows the following libs:
    /usr/lib/libpng12.a
    /usr/lib/libpng12.so.0.27.0
    /usr/lib/libjpeg.a
    /usr/lib/libjpeg.so.62.0.0
    Is it "wise" to use a custom lib folder for DarkPlaces and set it via LD_LIBRARY_PATH ?
    e.g.
    export LD_LIBRARY_PATH=/home/ds/dplibs
    Or can I simply install older versions of libjpeg and libpng without screwing up my arch64 installation ? I can remember that I also did install a few older libs on my Ubuntu 10.04 in order to get UT2k4 running.
    BTW: I would prefer not to recompile DarkPlaces against newer versions of libpng/libjpeg.
    TIA,
    D$

    Ok, thanks for all your replies !
    I will try out the approach using a dedicated lib directory for DarkPlaces under arch64.
    Unfortunately my 500GB HDD which I used for arch died
    So I have to wait until my new 1TB HDD arrives.
    stqn wrote:... but I guess if you want to play (and not rebuild) this game you don't have a choice..
    Well, the other not so slick option would be using the Windows version of the DarkPlaces engine inside a 32 chrooted WINE since for Windows all requiered libs (aka dll) are included in the right version.
    As usual shared libs also do have their disadvantages compared to statically linked stuff
    Last edited by Darksoul71 (2010-07-28 22:16:20)

  • ODCI : oracle data catridge interface service : what shared libs are needed

    Hi,
    I am writing aggregate functions. For using ODCI along with OCI in C/C++.. what are the shared libraries which are required : i have oci.h & odci.h files but do not know what shared libraries are needed to use the ODCI interface.
    I am getting the error :
    ORA-06521: PL/SQL: Error mapping function
    ORA-06522: /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/custagg.so:
    undefined symbol: ODCIAggregateInitialize
    ORA-28579: network error during callback from external procedure agent
    ./libagtsh.so: undefined reference to `homtscb_ShutdownCallback'
    I don't see any one responding to my queries.
    Can any one give me some other paid forums where I can pay some fee and get clarifications for my errors and doubts.
    I am a student trying to study the extendibility of databases with user defined aggregates without the need to change the underlying database engine. This is a part of research which i am doing.

    But some how i am having problem with ODCI : it is
    not identifying the ODCIAggregateInitialize function
    It is throwing error : ORA-06521: PL/SQL: Error
    mapping function
    ORA-06522:
    /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/li
    b/custagg.so:
    undefined symbol: ODCIAggregateInitializeThat's a pretty useful error message IMHO
    And generally in Unix environment we don't include
    'extern "C" ' before each member function in the C
    program but we do that in Windows environment . So
    may be I thought of just try including that in my
    program(unix environment) and it was giving me even
    a worse error :
    RA-28579: network error during callback from external
    procedure agent.So I just removed that extern "C"
    keyword.Actually, the extern "C" is required because even though you are writing C-like code, it's C++ since there are declarations in the middle of the code, which C doesn't support (maybe C99 does, I don't know). This tells me you compile using a C++ compiler, which mangles the method name (to support method overloading, which C doesn't support). Adding the extern "C" makes the C++ not mangle the method, and thus the ODCI system can find the entry point in your shared lib.
    ORA-28579 is not a worse error, it is the error you should fix. But I can't help you there, I've never done it. OTOH, if you can make this work, I'd be very interested if you could post a complete example demonstrating what you are doing. --DD                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • NPE when using POJO Data Control deployed as webcenter shared Lib

    Hello everyone,
    I am using Jdevelopper 11.1.1.7...
    I have a methodAction Binding defined for a JSFF. I am executing this methodAction in a managed bean. When doing so I have the following exception:
    Caused By: oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.NullPointerException, msg=null
    at oracle.adf.model.binding.DCDataControlReference.getDataControl(DCDataControlReference.java:118)
    at oracle.adf.model.BindingContext.instantiateDataControl(BindingContext.java:1128)
    at oracle.adf.model.dcframe.DataControlFrameImpl.doFindDataControl(DataControlFrameImpl.java:1638)
    at oracle.adf.model.dcframe.DataControlFrameImpl.internalFindDataControl(DataControlFrameImpl.java:1507)
    at oracle.adf.model.dcframe.DataControlFrameImpl.findDataControl(DataControlFrameImpl.java:1467)
    at oracle.adf.model.BindingContext.internalFindDataControl(BindingContext.java:1261)
    at oracle.adf.model.BindingContext.get(BindingContext.java:1211)
    at oracle.adf.model.binding.DCUtil.findSpelObject(DCUtil.java:304)
    at oracle.adf.model.binding.DCBindingContainer.evaluateParameterWithElCheck(DCBindingContainer.java:1466)
    at oracle.adf.model.binding.DCBindingContainer.evaluateParameter(DCBindingContainer.java:1511)
    at oracle.jbo.uicli.binding.JUCtrlActionBinding.getResult(JUCtrlActionBinding.java:1968)
    at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding._execute(FacesCtrlActionBinding.java:267)
    at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding.execute(FacesCtrlActionBinding.java:210)
    at com.euroscript.platon.reporting.view.ReportingBean.getListLanguages(ReportingBean.java:661)
    at com.euroscript.platon.reporting.view.ReportingBean.getParamLabelsNeedingCustomLov(ReportingBean.java:87)
    at com.euroscript.platon.reporting.view.ReportingBean.initParams(ReportingBean.java:151)
    at com.euroscript.platon.reporting.view.ReportingBean.onSelectReport(ReportingBean.java:110)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.sun.el.parser.AstValue.invoke(AstValue.java:187)
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
    at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:53)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodBinding(UIXComponentBase.java:1415)
    at org.apache.myfaces.trinidad.component.UIXEditableValue.broadcast(UIXEditableValue.java:216)
    at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:181)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:103)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:97)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:1086)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:478)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:207)
    This methodAction calls a Data Contol based on a POJO which is using a JAX-WS Proxy. This Data Control POJO is packaged in a separate JAR file named ServicesProxy.jar.
    Both ServicesProxy.jar and the ADF application using it are deployed as two distinct shared libraries used by webcenter portal application.
    An important information is that the error does not happen when debugging the ADF application on my IntegratedServer. The error happens only when deployed as a shared Lib used by webcenter portal application.
    This jar file ServicesProxy is used by other applications within our portal, so I think that the data control is properly created.
    Do you have any idea what could be the cause of such error?

    vinaykumar2 wrote:
    not really.May be you can check log in EM to find out some warning or error.try that..
    I have checked in the EM, I don't really find more helpful info...
    Here is the full stacktrace found in the EM (WC_Spaces1-diagnostic.log)
    dfd51:69a509b6:142a48c6891:-8000-0000000000000ffd,0] [APP: webcenter#11.1.1.4.0] [DSID: 0000KA^^HbLDc_l6wvicMG1IaBTa000009] ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase PROCESS_VALIDATIONS 3[[
    javax.faces.el.EvaluationException: oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.NullPointerException, msg=null
            at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:58)
            at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodBinding(UIXComponentBase.java:1415)
            at org.apache.myfaces.trinidad.component.UIXEditableValue.broadcast(UIXEditableValue.java:216)
            at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:181)
            at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
            at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
            at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
            at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:103)
            at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
            at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
            at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
            at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:97)
            at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:1086)
            at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:478)
            at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:207)
            at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
            at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
            at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
            at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
            at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.portlet.client.adapter.adf.ADFPortletFilter.doFilter(ADFPortletFilter.java:32)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.webcenter.framework.events.dispatcher.EventDispatcherFilter.doFilter(EventDispatcherFilter.java:44)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.wcps.client.PersonalizationFilter.doFilter(PersonalizationFilter.java:74)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.webcenter.content.integration.servlets.ContentServletFilter.doFilter(ContentServletFilter.java:168)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.webcenter.generalsettings.model.provider.GeneralSettingsProviderFilter.doFilter(GeneralSettingsProviderFilter.java:85)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.webcenter.webcenterapp.internal.view.webapp.WebCenterShellPageRedirectionFilter.doFilter(WebCenterShellPageRedirectionFilter.java:342)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.webcenter.webcenterapp.internal.view.webapp.WebCenterShellFilter.doFilter(WebCenterShellFilter.java:953)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.adf.view.page.editor.webapp.WebCenterComposerFilter.doFilter(WebCenterComposerFilter.java:117)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.adf.share.http.ServletADFFilter.doFilter(ServletADFFilter.java:71)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:128)
            at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
            at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
            at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
            at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
            at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
            at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:180)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.webcenter.webcenterapp.internal.view.webapp.WebCenterLocaleWrapperFilter.processFilters(WebCenterLocaleWrapperFilter.java:369)
            at oracle.webcenter.webcenterapp.internal.view.webapp.WebCenterLocaleWrapperFilter.doFilter(WebCenterLocaleWrapperFilter.java:265)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.adfinternal.view.faces.caching.filter.AdfFacesCachingFilter.doFilter(AdfFacesCachingFilter.java:126)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
            at java.security.AccessController.doPrivileged(Native Method)
            at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:324)
            at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:460)
            at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
            at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
            at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:163)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
            at java.security.AccessController.doPrivileged(Native Method)
            at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:324)
            at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:460)
            at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
            at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
            at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
            at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
            at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
            at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
            at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
            at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
            at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
            at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
            at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
            at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
    Caused by: oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.NullPointerException, msg=null
            at oracle.adf.model.binding.DCDataControlReference.getDataControl(DCDataControlReference.java:118)
            at oracle.adf.model.BindingContext.instantiateDataControl(BindingContext.java:1128)
            at oracle.adf.model.dcframe.DataControlFrameImpl.doFindDataControl(DataControlFrameImpl.java:1638)
            at oracle.adf.model.dcframe.DataControlFrameImpl.internalFindDataControl(DataControlFrameImpl.java:1507)
            at oracle.adf.model.dcframe.DataControlFrameImpl.findDataControl(DataControlFrameImpl.java:1467)
            at oracle.adf.model.BindingContext.internalFindDataControl(BindingContext.java:1261)
            at oracle.adf.model.BindingContext.get(BindingContext.java:1211)
            at oracle.adf.model.binding.DCUtil.findSpelObject(DCUtil.java:304)
            at oracle.adf.model.binding.DCBindingContainer.evaluateParameterWithElCheck(DCBindingContainer.java:1466)
            at oracle.adf.model.binding.DCBindingContainer.evaluateParameter(DCBindingContainer.java:1511)
            at oracle.jbo.uicli.binding.JUCtrlActionBinding.getResult(JUCtrlActionBinding.java:1968)
            at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding._execute(FacesCtrlActionBinding.java:267)
            at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding.execute(FacesCtrlActionBinding.java:210)
            at com.euroscript.platon.reporting.view.ReportingBean.getListLanguages(ReportingBean.java:463)
            at com.euroscript.platon.reporting.view.ReportingBean.getParamLabelsNeedingCustomLov(ReportingBean.java:87)
            at com.euroscript.platon.reporting.view.ReportingBean.initParams(ReportingBean.java:151)
            at com.euroscript.platon.reporting.view.ReportingBean.onSelectReport(ReportingBean.java:110)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:606)
            at com.sun.el.parser.AstValue.invoke(AstValue.java:187)
            at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
            at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:53)
            ... 84 more
    Caused by: java.lang.NullPointerException
            at oracle.adf.model.binding.DCDataControlReference.getDataControl(DCDataControlReference.java:113)
            ... 107 more
    any suggestion???

  • Timed Loop in Shared Lib caused LabWindow program to NOT exit

    I have a shared Lib created in LabView that I call from LabWindows.  If I create a VI with nothing but a Timed Loop and no other code, my Labwindows program will not terminate.  (Even if I don't call the library function (VI) containing the Timed Loop). 

    I have a conditional that after 3 iterations, the loop is terminated.  (tied to stop) 
    The timed loop is empty. 
    The timed loop is definitely the cause of LabWindows not terminating.
    I have attached a sample of the problem.
    Attachments:
    Timed Loop.zip ‏67 KB

  • [Resolved] Distributing a Python module that uses C shared libs?

    I did some research on distutils, and I managed to find fairly detailed instructions for how one could distribute a Python module with C extensions. However, I have a Python module which uses ctypes to run code from C shared libraries (more specifically: SDL, and related libraries).
    Basically, this is what I have:
    pslab.py # requires ctypes wrapper modules below
    sdl.py # ctypes wrapper modules require respective shared libs below
    sdlmixer.py
    sdlimage.py
    sdlttf.py
    # This is for Linux -- .dll for Windows, .dylib for OSX.
    libSDL.so
    libSDL_mixer.so
    libSDL_image.so
    libSDL_ttf.so
    Is there a "standard" way to distribute modules of this type (maybe some undocumented distutils method, or something I failed to find)?
    The Python files are not the problem (distutils can handle them), but I need a way to install the appropriate shared libs for the platform in question (if necessary), so that ctypes wrapper modules can find and load them.
    Last edited by Goran (2012-08-14 08:51:19)

    You could distribute those files ... but I wouldn't recommend it.
    I believe the closest thing to a "standard" is simply to list sdl as a dependency.  A package distributor should not try to manage dependencies for users (only inform them of the dependencies).  That is either up to the user, or (more often) the distro's package management system.
    If I download a program that uses gtk, I don't expect it to include all of the gtk too.  Rather, the documentation would simply specify that gtk is a dependency.  Are you going to also distribute copies of the python interpreter?  Perhaps I'm missing something, but why would sdl be any different than python itself?  It's assumed (or speficied) that the user needs to have these installed for your package to work.
    Last edited by Trilby (2012-08-13 23:44:44)

  • Which Shared Libs are required to run ADF

    When we setup a new stand alone server, the shared libs are not targeted to that server.
    What Shared libs need to be targeted to a managed server for ADF applicaitons?
    Running WebLogic 10.3.1
    JDeveloper 11.1.1.1.0
    thanks,
    Rodger...

    You should be more specific with your environment.
    My understanding of a standalone WLS is this: a WLS installed with the plain WLS installer, no JDeveloper involved.
    If you installed JDeveloper which includes WLS and want to run a new WLS domain from this installation then you only need to run the Configuration Wizard to create a new domain. During this run you should include (set the check box) the Oracle JRF (something like Java Runtime Framework) option. Then your new domain is able to run the ADF application. You should be aware that you need to package it as an EAR file otherwise the shared libraries are not called. (Hint: See http://blogs.oracle.com/olaf/2008/10/nice_jdev_11g_feature_ear_pack.html)
    --olaf                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Dynamicaly add a shared lib using deployment plan

    Hi,
    I would like to dynamically add a shared lib reference to my EAR application.
    It seems to be possible using deployement plan but to take effect weblogic want I redeploy the application.
    When I update my application and if I choose Update this application in place with new deployment plan changes. (A deployment plan must be specified for this option), thre is no error but when I try to instanciate my class, I get a "ClassNotFoundException"
    If I choose Redeploy this application using the following deployment files: it works fine but it is not compliant with my requirements (I don't want to redeploy for that).
    is it the normal behavior or I miss something ?
    Best Regards,
    C.

    WebLogic does the following if an application references a shared library:
    Classes of the library are added to the classpath of the application and the deployment descriptors are merged in memory.
    When an application (ear) is deployed weblogic creates application classloaders. Now if we add a shared library we need
    to create the classloaders again (to load the classes of the shared library) - this can be accomplished by redeploying the
    application.

  • JNI with rasapi32.Lib  (Dial Up Program)

    I am writting a dialup program on JAVA, using JNI of a C++ code.
    I included the header "ras.h" and i need to link the library named "RASAPI32.LIB" to compile the C++ code.
    and i found that i need to type this to Generate the dll file.
    cl -Ic:\java\include -Ic:\java\include\win32 -MD -LD dialup.cpp -Fedialup.dll -link RASAPI32.LIB
    (am i right?? as if i don't use "/link" i got an link error
    Is that the dll file i create included also the lib file? )
    after successfully generated the dll file. and then i run java dialup (i got error.. during the line i call the function in the dll. (error go out after the system.loadLibrary("dialup"); )
    I got UnsatisfiedLinkError at the line "new dialup().DialUp();" the only line in main function.
    Please help me smart programmers..... THX!
    also any care need to be taken when "JNI used with *.Lib & *.dll"

    Hi,
    I'm sorry, but i didn't understand very well.
    It seems that you made a program to dial to the internet, automaticaly, throw modem. If is that, please tell me more, how do you do that?
    Thanks in advance,
    Liliana

Maybe you are looking for

  • FileVault 2 seems to be causing kernel boot panics

    Hello, I'm on a 10.8.2 Mountain Lion OS X (13-inch, Mid 2010), no new updates are available. I turned on FileVault 2 a few months ago and since then I've had a lot of kernel panics while booting. Sometimes it just booted ok and sometimes it panicked.

  • Tax setting in Extended Classic Scenario

    I am using SRM 5.5, ECS, ECC 6.0, VERTEX for Tax in ECC (Tax calculation occurs in the backend) and completed the following config steps 1) Set the default to "Tax Calculation occurs in the backend" 2) Entered the same tax codes as in backend (I0, I1

  • Imac 2009 external DVD drive

    hi everyone. My 2009 Imac DVD drive is damaged and spits out discs (daughter stuck a memory card in it and damaged it apparently). Bought an Apple Superdrive but its not compatible with an Imac with the built in drive!! Can anyone recommend an altern

  • IDOC node is not populating

    Hello XI Gurus, here iam using XI 3.0 SP22, the requirment is we are sending some data from JMS to R/3 system, based on some conditions Idoc needs to be posted to SAP ... we have 2 differenr IDOC structure PORDCh,PORDCHCHG..so in interface determinat

  • Manual Deployment (Very Urgent)

    Hi, What is manual Deployment, Why do we use Manual deployment. I guess manual deployment is done after automatic deployment. What are the prerequisites for performing manual deployment. How is it different from automatic Pull/ Push deployment?? Plea