JNI on VMS 8.3

Hi,
Can i use JNI on VMS 8.3? if so where can i get the jvm
Thanks.

zuku wrote:
... VMS 8.3
where can i get the jvmGoogle ([vms 8.3 java|http://www.google.com/search?q=vms+8.3+java]) suggests [http://h18012.www1.hp.com/java/alpha/].

Similar Messages

  • JNI : Two native libraries with the same functions

    Hello,
    I have two versions of the same native library like "abc_v1.sl" and "abc_v2.sl".
    They have the same functions but they act differently.
    I want to use both of them in parallel (each in its own thread) but only the functions of the first loaded library are being called.
    Isn't there any possibility to load each native library in a different name space... maybe a different JVM?
    Any help will be appriciated.
    Thank you!

    Isn't there any possibility to load each native library in a different name space... maybe a different JVM?Naturally if you have different processes (different VMs) then each can load a different version.
    This might actually be easier to do. Especially if you think that you are going to be adding more versions. It would require that you implement a communication api from each of thes to your main application.
    If you want to do it in in a single process then you have some work to do in C. It has nothing to do with java or JNI.
    Basically you need to dynamically load each library and the create a thunk to each method you want to access. Where 'thunk' represents a dynamic descriptor that allows you to dynamically call the method.
    What you are doing now is statically loading the libraries. So that won't work.
    You can search on your platform/compiler for examples on how to do that.

  • Pinning objects inside JNI

    I am working on a project where I must have the guarantee that certain objects are pinned in memory, by the Hotspot Server VM (within the scope of a JNI method). I am retrieving objects addresses using something like this:
    jobject obj = env->GetObjectField(slot, objectValueID); /* get object reference */
    jint address = env->GetIntField(slot, objectValueID); /* get the object's address */
    Does Hotspot VM move objects that are referenced from JNI code? If so, is there any way to prevent it from doing so?
    I realize this is not a safe approach for accessing objects, and it may not work for all VMs, but I only need it to work for Hotspot, within a JNI method.
    Thanks a lot,
    Michael B.

    Hi, Girish,
    Pin , anywhere in Oracle terminology means "access" . That's not quite right . . .
    The term "pinning" is a generic computer science term for exclusive relocation to RAM, and it's used in the Oracle docs quite a bit!
    http://www.oracle.com/pls/db111/ranked?word=pin&remark=federated_search
    The term "pinning" is like "caching", but pinning is guaranteed to stay in RAM, a way of "marking" a RAM object and non-eligible for swapping back to disk:
    http://www.dba-oracle.com/art_proc.htm

  • AttachCurrentThread fails when several VMs running in different threads

    Hi,
    I would like to build an application that runs several JVMs in parallel. I'm using Java6 and according to the JNI specs this should be possible as long as each VM instance is running in a separate thread.
    In the below mentioned demo application two threads are created. Both instantiate a VM (which works well). But only one thread seems to be able to run AttachCurrentThread. When AttachCurrentThread is called for the second one I get the following error:
    # An unexpected error has been detected by Java Runtime Environment:
    #  SIGSEGV (0xb) at pc=0x080486ae, pid=1428, tid=3035118512
    # Java VM: Java HotSpot(TM) Client VM (1.6.0_03-b05 mixed mode, sharing)
    # Problematic frame:
    # C  [jvmthreads+0x6ae]But because one thread successfully instantiates a java class I think that the basic code structure is OK. It seems to be a threading issue. My application looks as follows:
    #include <stdlib.h>
    #include <jni.h>
    #include <pthread.h>
    #define USER_CLASSPATH "myclasses.jar"
    #define CLASS_NAME "com.foobar/DummyRtbosFiller"
    JavaVM* JavaThreads_createJVM(){
         JNIEnv *env;
        JavaVM *vm;
        jint res;
        setenv("JAVA_VM_VERSION", "1.5", 1);
    //    setenv("JAVA_VM_VERSION", "1.5", 0);
        JavaVMInitArgs vm_args;
        JavaVMOption options[7];
        options[0].optionString = malloc(3000*sizeof(char));
        sprintf(options[0].optionString, "-Djava.class.path="USER_CLASSPATH);
        options[1].optionString = "-Xmx64m";
         int enableRemDebugging = 0;
         if(enableRemDebugging){
             printf("enable remote debugging");
              // intellij remote debugging support
              options[2].optionString = "-Xdebug";
              options[3].optionString = "-Xnoagent";
              options[4].optionString = "-Djava.compiler=NONE";
              options[5].optionString = "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=34343";
              vm_args.nOptions = 6;
         }else{
              vm_args.nOptions = 2;
         vm_args.options = options;
        vm_args.version = JNI_VERSION_1_4;
        vm_args.ignoreUnrecognized = JNI_TRUE;
        /* Create the Java VM */
        res = JNI_CreateJavaVM(&vm, (void**)&env, &vm_args);
        printf("java started.\n");
         return vm;
    * \brief Shuts down an existing java virtual machine.
    * \param jvm Pointer to the jvm to be destroyed.
    * This method is used to shut down an existing java virtual machine.
    int JavaThreads_destroyJVM(JavaVM *jvm){
    //     JNIEnv *env = getAttachedEnv(self, jvm);
    //     if ((*env)->ExceptionOccurred(env)) {
    //        (*env)->ExceptionDescribe(env);
          // detach the current thread from the vm
        (*jvm)->DetachCurrentThread(jvm);
        (*jvm)->DestroyJavaVM(jvm);
         return 0;
    * \brief Attaches the current thread to a given vm instance
    * \param self Pointer to bbcm-instance
    * \param jvm Pointer to the jvm use for attachment
    * This method is used to attach the current thread to a given vm instance
    JNIEnv* getAttachedEnv(JavaVM *jvm){
         JNIEnv *localEnv = NULL;
         int envErr = 0;
         /* get a local java env */
         envErr = (*jvm)->AttachCurrentThread( jvm, (void**)&localEnv, NULL );
         if ( envErr != 0 ){
              if ( (*localEnv)->ExceptionCheck( localEnv ) == JNI_TRUE ){
                (*localEnv)->ExceptionDescribe( localEnv );
         if((*localEnv)->ExceptionOccurred(localEnv)){
             (*localEnv)->ExceptionDescribe(localEnv);
         if (localEnv == NULL) {
            printf("ERROR: failed to get ENV pointer in pushContext");
              //  JavaThreads_destroyJVM(jvm);
            return (JNIEnv*) NULL;
         return localEnv;
    * \brief Create a new instance of the transcriber application
    * \return Pointer to the java object
    * This method is used to create a new instance transcriber application
    jobject startJavaSubSystem(JavaVM *jvm, char* argString){
        printf("attaching env pointer.\n");
         JNIEnv *env = getAttachedEnv(jvm);
        printf("thread attachment done.\n");
         jclass cls;
         jmethodID mid;
         jobject transcriber;
         cls = (*env)->FindClass(env, CLASS_NAME);
        if (cls == NULL) {
            JavaThreads_destroyJVM(jvm);
         jstring jArgumentString = (*env)->NewStringUTF(env, argString);
        mid = (*env)->GetMethodID(env, cls, "<init>", "(ILjava/lang/String;)V");
         if (mid == NULL) {
            JavaThreads_destroyJVM(jvm);
        printf("starting object instantiation\n");
        (*env)->NewObject(env, cls, mid, 1, jArgumentString);
         return transcriber;
    void startJavaThread(char* arg){
         JavaVM *jvm;
        printf("create a jvm instance for component '%s'\n", arg);
         jvm = JavaThreads_createJVM();
        printf("attempting to start component '%s'\n", arg);
        startJavaSubSystem(jvm, arg);
        printf("component '%s' started !\n", arg);
        // sleep forever to keep the thread alive
        sleep(10000);
    int main(int argc, char **argv) {
          pthread_t thread1, thread2;
          /* Create independent threads each of which will instantiate a java VM. */
         int iret1 = pthread_create( &thread1, NULL, startJavaThread,  (void*) "test47");
         sleep(1);
         int iret2 = pthread_create( &thread2, NULL, startJavaThread, (void*) "test48");
         pthread_join( thread1, NULL);
         pthread_join( thread2, NULL);
         printf("Thread 1 returns: %d\n",iret1);
         printf("Thread 2 returns: %d\n",iret2);
         return 0;
    }What could be my mistake?
    Any help (links, docs, ideas) is welcome.
    Best regards, Holger

    You're right. I got confused by the specs of JNI_GetCreatedJVMs:
    JNI_GetCreatedJavaVMs function returns all virtual machine instances
    that have been created in the current process.But unfortunately you're completely right (cf. http://java.sun.com/javase/6/docs/technotes/guides/jni/spec/invocation.html#wp9502 )
    As of JDK/JRE 1.2, creation of multiple VMs in a single process is not supported.Nothing seems to have changed since then. :-(
    thanks for the help, bg, holger

  • New VMS/IPC boxes - speed and pricing

    For the most part, I've been a very happy FiOS customer. The internet side has gone out exactly once in the year I've had the service, and it was restored within an hour. TV has dropped out twice, both times very late at night (I assume for head-end maintenance). Reliability is better than every other ISP I've ever had, combined.
    That said..
    I wanted to snag another STB for the house - found out the local stores had all been closed (I can understand why from the financial aspect, but it was still a shock pulling up to my old store to pick up another STB.. and finding a "for lease" sign, when I'd been by there 2 months prior), so I looked at options online. The new VMS + IPC boxes looked promising, especially since they added the ability for the entire house to pause, rewind, schedule recordings, etc, from any TV - instead of only the DVR being able to do that (though the old boxes could stream recordings from the DVR).
    My chief complaint so far - while the VMS box itself is responsive, the IPC boxes are painfully slow to respond to anything. Picture quality is fantastic, but using them feels, to put it in nerd terms, like using a Pentium 90 with Windows XP and 128MB RAM. They take 5+ to respond to anything more than a channel change (and even that takes up to 3 seconds), and frequently "lose" remote key presses if you try to, say, hit guide, hit page down, then try to arrow down to the channel that you know is on the next page. It literally feels like a throwback to the earliest digital set top boxes from Comcast/Time Warner - the first ones with built-in TV listings in the mid 1990s. The speed is right on par with them; the only thing faster right now is they don't shut down for 30 minutes a day to update the TV listings.
    I've gone through the built-in diagnostics on the boxes to verify signal levels - they're decent (not perfect, but this is a 20 year old house with mostly original coax), but we have no pixelation or picture drop-out, so I would think they could carry the basic stuff between the IPC boxes and VMS pretty easily. The router certainly has no problem handling the 75/35 on the same coax (speedtest shows 85-90 down, 35-40 up, with a ~5ms ping, no matter which cable outlet it's plugged into)..
    My other complaint - why did Verizon move to "rooms" for pricing? I thought I was getting a DVR plus 3 STBs (since I ordered 3 STBs and asked for a DVR), instead of a VMS + 2 STBs - and I'm paying much more than I did for the old DVR + 2 STBs.
    With the griping out of the way - is there a reasonable chance that firmware updates will help with the speed of the IPC boxes? Or is there a chance it's a cabling issue? (I have no problem pulling new coax or cat5e, and I can provide signal levels if that'll help) If not, is there any chance of getting the old QIP7232 DVR + QIP7100 box back (and adding another 7100), and switching back to what I was paying before? I know they're a bit antiquated (especially the 7100s), but they were much more responsive, and didn't make me want to throw the STBs through the window. It just seems really rediculous that I'm paying such a large premium (plus the "upgrade fee") for equipment that, in terms of the user experience, is much worse.
    Again.. been a happy customer for a long time, but the new terminals are super painful to use.
    Thanks.

    If this is the case.  I think I will wait till the bugs are worked out
    Question what were you paying before and after for the boxes.   So what was the old DVR + 2 STB's and the new DVR plus 2 stb's
    Trying to get an idea of what you meant by way more.  Most people said same pricing and a small $20 or so upgrade fee

  • Problem with JNI and Tomcat (and threads???)

    Howdy,
    Here is the issue - I would like some help on HOW to debug and fix this problem:
    2 test use cases -
    1)
    a)User goes to Login.jsp, enters user and password
    b) User submits to LoginServlet
    c) login calls JNI code that connects to a powerbuilder(Yes I know this is ugly) PBNI code module (this is a .dll) that authenticates the user with the database
    d) the servlet then redirects to another .jsp page
    e) user then submits to LogoutServlet - also a JNI call to a powerbuilder PBNI code module
    f) REPEAT STEPS a-e over a few times (inconsistent) and then the call to the JNI code hangs
    2)
    a) users does NOT goto Login.jsp, but rather calls LoginServlet and passes the userid and password as GET parms
    b) user does NOT get redirected to a page (redirect code commented out)
    c) user calls LogoutServlet
    d) repeat steps a-c at will and no failure, no hanging
    The only difference is that in case 1 (with JSP), there is a redirect and it afffected the JNI call by haniging inside JNI code.
    In case 2 (without JSP) there is still a JNI call, but it does not hang. In addition, when it hangs and I stop Tomcat, the logs show cleanup entries that say:
    Oct 19, 2004 9:17:09 AM org.apache.catalina.core.StandardWrapper unload
    INFO: Waiting for 1 instance(s) to be deallocated
    Oct 19, 2004 9:17:10 AM org.apache.catalina.core.StandardWrapper unload
    INFO: Waiting for 1 instance(s) to be deallocated
    Oct 19, 2004 9:17:11 AM org.apache.catalina.core.StandardWrapper unload
    INFO: Waiting for 1 instance(s) to be deallocated
    Is this a threading issue in Tomcat???
    On would assume that the JNI code is not cleaning up after itself, but I don't believe this is the case,
    and even if it was, why would I get the tomcat log cleanup entries above???
    What do those cleanup entries imply about the state of Tomcat????

    hi ,
    I met the same problem this morning, and searched the www.google.com in order to solve it, as a result, your article was shown on my screen. :)
    Till now I have read some technical information and solved my problems. Maybe the solution be useful to you:
    ==============================
    error message : (Environment : Tomcat 5, Windows 2003, Mysql5)
    2006-3-29 11:53:48 org.apache.catalina.core.StandardWrapper unload
    message: Waiting for 2 instance(s) to be deallocated
    ==============================
    cause: the number of connection to database exceeded.another word,too many connections.
    ==============================
    solution: close the connection when it becomes useless for your program. :)
    ==============================
    ps. Sorry for my weak English . hehe ....

  • How do i get win 8.1. *pro* for mac parallels, deauthorizing win 8.1 pro and license rules for windows vms

    ok, i've seen this question asked a number of times.  i know the general procedure:
    - first download some installer things to a window box so i can make a bootable DVD / flash drive
    - go the mac and use the DVD / usb stick to install the virtual machine
    great.. BUT :
    1) unfortunately, i'm still really confused at the  most basic part which is where (link) do i actually get the initial download thing to create the 8.1 *PRO* from microsoft and where (link) / how do i pay for the subscription key to install the thing???? 
    i keep seeing a link for windows 8 or windows 8.1 where windows PRO is NEVER mentioned.  i ABSOLUTELY MUST HAVE a) PRO 64 bit and NOT vanilla windows and b) it MUST BE A FULL INSTALL (i'm not upgrading from windows 7, 8 or 8.1 NON pro..  i'm going
    to be installing this thing on a brand new system.
    i'm an IT guy for two decades and i can tell you trying to find, download, install a clean version of windows 8.1 PRO is a royal pita and nothing about windows 8.1 PRO is intuitive on the MS site.  it's almost as if they do NOT want you to install the
    thing.   i'm not trying to bust jewels here, i'm just being honest and providing feedback that you folks need to make this much more clear and intuitive.  people really shouldN'T have to post on forums to find out how to purchase, download and enter
    in a subscription key for a base version of an OS.  it's crazy.
    2) once i can figure out how to download, install and register the darn thing ;)... i'm curious how the licensing works.
    2a) first if my windows 8.1 pro experiment on mac parallels sucks, i want to be able to remove the authorization so i can reinstall 8.1 pro on another system.   can i / how do i do this in my scenario?
    2b) i actually already bought windows pro 8.1 about a year ago (to upgrade a laptop that came with 8 that i needed to upgrade to vanilla 8.1 then to finally to pro) so that i could windows phone 8.1 development with simulator on the laptop.  unfortunately
    the laptop maxed out at 4G and the performance of the emulator was ridiculously slow that it's unusable.  i'd love to somehow be able to put the laptop back to windows *vanilla* 8.1 and reclaim my 8.1 pro that i *already* purchased by removing the authorization
    from that laptop allowing me to reinstall the full 8.1 pro with the same key on the mac with parallels.  then i can sell the laptop that has sat there collecting dust for a year and regain my windows 8.1 pro investment vs having to buy another copy for
    the mac. 
    i have no idea how to do this though i think it should be possible.  can anybody tell me where / how i do this?
    note the win pro 8.1 install never went well so i actually had some guy from MS login to my laptop remotely and do the install.. in doing so i believe he wiped away the original windows vanilla 8.1 recovery partition asus put on the drive meaning i'm not
    sure i can get the laptop back to 8.1  or 8 vanilla so i can resell it functionally to another person while removing my 8.1 *pro* license from it.   any suggestions here highly welcome.
    2c)  once i get the windows 8.1 pro installed in a vm under parallels, i'll have one licensed copy running.  my guess is that is what i'm limited to.  but when you start working with VMs the whole purpose is to be able to create multiple test
    enviornments and dispose of them when you don't need them etc.   since the window will be tied to the single mac hw id, will i be able to install multiple *win* vms (duping an exising win vm for instance) from the one license  or must i purchase
    multiple win licenses for each win vm on the SAME system?   if you need a new license for each vm, wouldn't i have to do a FULL WINDOWS INSTALL every time i wanted to create another windows VM.. THAT IS CRAZILY INEFFICIENT...
    there has to be some kind of option to dup a windows licensed vm on the SAME system yes?  what are the rules / procedures for making this work.
    i'm using parallels on mac as an example but the same question would apply to using hyperV (which i know nothing about at this point) as the virtual host platform as well.
    i'm open to well thought out links that actually answer these questions succinctly in addition to comments here
    thanks in advance

    Hello bigbobber,
    If  you have issue in using Windows 8.1 Pro in the software  parallels in MAC?
    About this issue, it is recommended to contact the related parallels support.
    About the license issue, please read the following article about Buyer’s Guide and Microsoft software license agreement windows 8.1.
    http://www.microsoft.com/licensing/about-licensing/windows8-1.aspx
    It is recommended to contact the phone support if you have license issue.
    Best regards,
    Fangzhou CHEN
    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact [email protected]

  • Couldn't Load DLL and Call JNI in Portal Servlet !!!

    Hello,
    I'm trying to write a small test servlet in portal which will call functions in a DLL using JNI. Here is my source code. I put my DLL in \Window\system32, usr/sap/J2E/JC01/j2ee/os_libs, even included into my portal project \PORTAL-INF\lib. But everytime when I try to preview my page, I got the following error and I couldn't find the log file specified in the error message. Please help me out. Thanks a lot!
    Portal Runtime Error
    An exception occurred while processing a request for :
    iView : N/A
    Component Name : N/A
    MyTestDLL.
    Exception id: 12:25_23/12/06_0029_11241950
    See the details for the exception ID in the log file
    Source Code:
    import com.sapportals.portal.prt.component.*;
    public class CIViewTest extends AbstractPortalComponent
         public void doContent(IPortalComponentRequest request, IPortalComponentResponse response)
              response.write("Hello From Java Servlet!!!\n");
         static {
              try {
                   Runtime.getRuntime().loadLibrary("MyTestDLL");
    // I've also tried System.LoadLibrary("MyTestDLL");
              } catch (UnsatisfiedLinkError ule) {
                   throw ule;

    Nobody used JNI in Portal Servlet??? Please advice. Thanks!

  • Application crashes when using JNI with Jdk 1,2, 1.3 and 1.4

    Hi!
    I have this application that has a GUI written in Java and a file parser written in C. JNI is used to connect these parts together. The problem is that the application only works when I am using jdk 1.1.8 but not when using jdk1.2, jdk1.3 or jdk1.4. I am running the application on a Solaris 8 machine.
    I have not written the application myself but I am going to be working with it from now on. But I have today little knowledge with JNI and I have tried different approaches to solve the problem. For example I have tried to used DDD together with GDB to find out what the problem is but with no luck. When I run the application using jdk1.4 I get the following error when the JVM crashes:
    An unexpected exception has been detected in native code outside the VM.
    Unexpected Signal : 10 occurred at PC=0xFA023164
    Function=Java_Bitmap_setDebug+0x1C
    Library=/usr/u/lal/micview/micview2_1_0_beta1/libBitmapImpl.so
    Current Java thread:
    at Bitmap.setDebug(Native Method)
    at DisplayPanel.loadFile(DisplayPanel.java:396)
    at MicPlot.loadFile(MicPlot.java:1452)
    at MicPlot.loadFile(MicPlot.java:1441)
    at MicPlot.miOpen_Action(MicPlot.java:1267)
    at MicPlot$SymAction.actionPerformed(MicPlot.java:1184)
    at java.awt.MenuItem.processActionEvent(MenuItem.java:588)
    at java.awt.MenuItem.processEvent(MenuItem.java:548)
    at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:285)
    at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:273)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:452)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
    Dynamic libraries:
    0x10000 /opt/java/jdk1.4/bin/java
    0xff360000 /usr/lib/libthread.so.1
    0xff3a0000 /usr/lib/libdl.so.1
    0xff280000 /usr/lib/libc.so.1
    0xff270000 /usr/platform/SUNW,Ultra-4/lib/libc_psr.so.1
    0xfe000000 /opt/java/j2sdk1.4.1/jre/lib/sparc/client/libjvm.so
    0xff220000 /usr/lib/libCrun.so.1
    0xff200000 /usr/lib/libsocket.so.1
    0xff100000 /usr/lib/libnsl.so.1
    0xff1d0000 /usr/lib/libm.so.1
    0xff250000 /usr/lib/libw.so.1
    0xff0e0000 /usr/lib/libmp.so.2
    0xff0b0000 /opt/java/j2sdk1.4.1/jre/lib/sparc/native_threads/libhpi.so
    0xff080000 /opt/java/j2sdk1.4.1/jre/lib/sparc/libverify.so
    0xff030000 /opt/java/j2sdk1.4.1/jre/lib/sparc/libjava.so
    0xfe7e0000 /opt/java/j2sdk1.4.1/jre/lib/sparc/libzip.so
    0xfe4e0000 /usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-1.so.2
    0xedd00000 /opt/java/j2sdk1.4.1/jre/lib/sparc/libawt.so
    0xfc480000 /opt/java/j2sdk1.4.1/jre/lib/sparc/libmlib_image.so
    0xfc410000 /opt/java/j2sdk1.4.1/jre/lib/sparc/motif21/libmawt.so
    0xeda80000 /usr/dt/lib/libXm.so.4
    0xfa090000 /usr/openwin/lib/libXt.so.4
    0xfa3d0000 /usr/openwin/lib/libXext.so.0
    0xfc7e0000 /usr/openwin/lib/libXtst.so.1
    0xed980000 /usr/openwin/lib/libX11.so.4
    0xfa2a0000 /usr/openwin/lib/libdps.so.5
    0xfa3b0000 /usr/openwin/lib/libSM.so.6
    0xfa1d0000 /usr/openwin/lib/libICE.so.6
    0xed880000 /opt/java/j2sdk1.4.1/jre/lib/sparc/libfontmanager.so
    0xfa390000 /usr/openwin/lib/locale/common/xlibi18n.so.2
    0xfa1b0000 /usr/openwin/lib/locale/iso8859-1/xomEuro.so.2
    0xfa190000 /usr/lib//liblayout.so
    0xfa050000 /usr/openwin/lib/locale/common/ximlocal.so.2
    0xfa010000 /usr/u/lal/micview/micview2_1_0_beta1/libBitmapImpl.so
    Local Time = Thu Oct 3 13:32:47 2002
    Elapsed Time = 35
    # The exception above was detected in native code outside the VM
    # Java VM: Java HotSpot(TM) Client VM (1.4.1-beta-b14 mixed mode)
    # An error report file has been saved as hs_err_pid27692.log.
    # Please refer to the file for further information.
    Abort
    From this information I think that the problem should be in the native method setDebug. But I have tried to set a breakpoint at the beginning of that function in the C part but with no luck. The application crashes before it reaches that position in the C file.
    What could possibly go wrong between the setDebug function in the C part and the function call in the Java part?
    When using GDB, GDB cannot figure out what is wrong it just returns a hex address, no function name.
    I would really appreciate some help. I have tried everything that I can come up with!
    Best regards
    Lars

    I have figured out that the application fails on its first call to the native methods.
    So I have this Bitmap class that contains all the native calls and it is defined shortly as follow:
    public class Bitmap {
    static {
    System.loadLibrary("BitmapImpl");
    native void setDebug(int debuglevel, int statistics);
    There are many more native methods defined in Bitmap, but I only show the setDebug method because that is the first one that is executed and also the one that immediately fails.
    My setDebug C function is defined as follow in BitmapImpl.c
    #include <time.h>
    #include <stdio.h>
    #include <limits.h>
    #include <fcntl.h>
    #include <jni.h>
    #include <math.h>
    #include <errno.h>
    #include "Bitmap.h"
    #include "data.h"
    jint debug = 0;
    jint statistics = 1;
    JNIEXPORT void JNICALL Java_Bitmap_setDebug
    (JNIEnv *jenv, jobject jo, jint d, jint s)
    debug = d;
    statistics = s;
    My libBitmapImpl.so file is compiled using the following Makefile and using GNU gcc:
    JAVAPATH=$(JAVAINCLUDEPATH)
    LMACRO=-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DSOLARIS
    CSOURCE=BitmapImpl.c
    all:
    gcc -O3 -G $(LMACRO) -I$(JAVAPATH) -I$(JAVAPATH)/solaris \
    $(CSOURCE) -o libBitmapImpl.so
    It is still a total mystory why the application fails. I have tried it on a RedHat Linux machine and there it works fine. But not on Solaris. Only if I use the jdk1.1.8 but not a later one.
    Would really appreiciate some help!
    Best regards
    Lars

  • 64-bit JNI C++ to JAVA invocation multiple threads classloader problem

    Hi ALL,
    I have a C++ app that invokes Java classes on 64-bit Solaris 10 with 64-bit JVM.
    Here is the problem:
    The native non-main (not the thread that initializes the JVM) threads would not be able to find any user-define class.
    Here are the symptoms and observations:
    1. JNIEnv::ExceptionDescribe() showed the following StackOverflowError:
    Exception in thread "Thread-0" java.lang.StackOverflowError
            at java.util.Arrays.copyOf(Arrays.java:2734)
            at java.util.Vector.ensureCapacityHelper(Vector.java:226)
            at java.util.Vector.addElement(Vector.java:573)
            at java.lang.ClassLoader.addClass(ClassLoader.java:173)
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
            at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)2. The "main thread" that instantiates the JVM has no problem finding and loading any class or method
    3. But the other threads (non-main threads) would not be able to find the user-defined classes unless the classes were already loaded by the main thread.
    4. The non-main threads can find the "standard" java classes with no problem
    5. The same app ran fine on 32-bit system.
    6. Except for the JVM reference is global, each thread acquired JNIEnv by either GetEnv() or AttachCurrentThread().
    Any idea why it is a problem with 64-bit?
    I have the sample program to reproduce this issue in this thread: http://forums.sun.com/thread.jspa?messageID=10885363&#10885363. That was the original thread I raised but I have narrowed it down to a more concrete scenario. That's why I am creating this new thread. I hope this does not break any rule on this forum. If it does, I apologize.
    I really appreciate it if anyone can provide any help/suggestion.
    Regards,
    - Triet

    Here is the sample program. Again, this works on 32-bit but not 64-bit.
    #include <string>
    #include "jni.h"
    #include "TestThread.h"
    static JavaVM *g_pjvm = NULL;  /* denotes a Java VM */
    static JNIEnv *g_penv = NULL;  /* pointer to native method interface */
    void initJVM(char** jvmOptions) {
        printf("RJniTest init starts...\n");
        JavaVMInitArgs vm_args; /* JDK/JRE 6 VM initialization arguments */
        JavaVMOption* poptions;
        int optionLen = 0;
        while (jvmOptions[optionLen]) {
            optionLen++;
        printf("RJniTest::init len=%d\n", optionLen);
        if (optionLen > 0) {
            printf("RJniWrapper::init jvmOptions\n");
            poptions = new JavaVMOption[optionLen];
            //poptions[0].optionString = "-Djava.class.path=/usr/lib/java";
            int idx = 0;
            while (jvmOptions[idx]) {
                poptions[idx].optionString = jvmOptions[idx];
                idx++;
        printf("RJniTest::init vm_args: version(%x), nOptions(%d)\n",
                JNI_VERSION_1_6, optionLen);
        vm_args.version = JNI_VERSION_1_6;
        vm_args.nOptions = optionLen;
        vm_args.options = poptions;
        vm_args.ignoreUnrecognized = JNI_FALSE;
        // load and initialize a Java VM, return a JNI interface
        // pointer in env
        printf("RJniTest::init creates JVM\n");
        JNI_CreateJavaVM(&g_pjvm, (void**)&g_penv, &vm_args);
        printf("RJniTest init ends\n");
    void findClass(const char* classname) {
        static const char* fname = "justFindClasses";
        printf("%s: findClass: %s\n", fname, classname);
        JNIEnv* jenv;
        jint ret = g_pjvm->GetEnv((void**)&jenv, JNI_VERSION_1_6);
        if (ret == JNI_EDETACHED) {
            ret = g_pjvm->AttachCurrentThread((void**)&jenv, NULL);
            if (ret != JNI_OK || jenv == NULL) {
                printf("%s: get env error: ret=%d\n", ret, fname);
            } else {
                printf("%s: got new env\n", fname);
        } else if (ret == JNI_OK) {
            printf("%s: env already there\n");
        jclass classref;
        classref = jenv->FindClass(classname);
        if (classref == NULL) {
            printf("%s: %s class not found!\n", fname, classname);
            if (jenv->ExceptionOccurred()) {
                jenv->ExceptionDescribe();
                jenv->ExceptionClear();
        printf("%s: found class: %s\n", fname, classname);
    class RJniTestThread : public TestThread {
    public:
        void threadmain();
    void RJniTestThread::threadmain() {
        printf("RJniTestThread::threadmain: Starting testing\n");
        findClass("org/apache/commons/logging/Log");
        findClass("java/util/List");
        printf("RJniTestThread::threadmain: done.\n");
    int main(int argc, char** argv) {
        char **jvmOptions = NULL;
        printf("RJniTestDriver starts...\n");
        if (argc > 1) {
            jvmOptions = new char*[argc];
            for (int i = 0; i < argc ; i ++) {
                jvmOptions[i] = argv[i + 1];
            jvmOptions[argc - 1] = NULL;
        } else {
            int size = 8;
            int i = 0;
            jvmOptions = new char*[size];
            jvmOptions[i++] = (char*) "-Djava.class.path=<list of jar files and path here>";
            jvmOptions[i++] = (char*) "-Djava.library.path=/sandbox/mxdev/3rdparty/java/unix/jdk1.6.0_14/jre/lib/sparc";
            jvmOptions[i++] = (char*) "-Djava.compiler=NONE";
            jvmOptions[i++] = (char*) "-verbose:jni";
            jvmOptions[i++] = (char*) "-Xcheck:jni";
            jvmOptions[i++] = NULL;
        printf("init JVM\n");
        initJVM(jvmOptions);
        // UNCOMMENT HERE
        // findClass("org/apache/commons/logging/Log");
        // findClass("java/util/List");
        // UNCOMMENT END
        printf("start test thread\n");
        RJniTestThread testThread;
        ThreadId tid = testThread.launch();
        printf("wait for test thread\n");
        int ret = pthread_join(tid, NULL);
        printf("RJniTestDriver ends\n");
    }

  • VMS File Extensions

    Hi,
    We have MacOS and Win 95 boxes talking to an Alpha running OpenVMS.
    Our Forte applications run some reports on the Alpha box, due to
    their size etc. However, we want the users (on the PCs) to be able to
    manipulate the resulting files as necessary. At the moment we get a
    list of the files in a "user" directory and display that on the
    screen. Unfortunately, we can't seem to get the version numbers of the
    files (it isn't in the suffix, where I would expect it to be). This is important, as the
    User needs to know which file is the latest version (or the previous one etc).
    Does anybody have any way of getting the version number for a VMS
    file in Forte?
    Thanks in advance
    Derek Rendall
    University of Otago
    New Zealand

    Elevlyn,
    Thank you for fully explaining the situation. Now I can suggest you try this .ged reader.
    1) Make a backup of your ged file.
    2) Download the reader, and run a virus scan on the program before you run the the installer.
    3) Test the reader
    4) Please report back the progress. What the reader OK?
    I am a volunteer. I am not an HP employee.
    To say THANK YOU, press the "thumbs up symbol" to render a KUDO. Please click Accept as Solution, if your problem is solved. You can render both Solution and KUDO.
    The Law of Effect states that positive reinforcement increases the probability of a behavior being repeated. (B.F.Skinner). You toss me KUDO and/or Solution, and I perform better.
    (2) HP DV7t i7 3160QM 2.3Ghz 8GB
    HP m9200t E8400,Win7 Pro 32 bit. 4GB RAM, ASUS 550Ti 2GB, Rosewill 630W. 1T HD SATA 3Gb/s
    Custom Asus P8P67, I7-2600k, 16GB RAM, WIN7 Pro 64bit, EVGA GTX660 2GB, 750W OCZ, 1T HD SATA 6Gb/s
    Custom Asus P8Z77, I7-3770k, 16GB RAM, WIN7 Pro 64bit, EVGA GTX670 2GB, 750W OCZ, 1T HD SATA 6Gb/s
    Both Customs use Rosewill Blackhawk case.
    Printer -- HP OfficeJet Pro 8600 Plus

  • VMS Client Channel Buffering Problem

    I just received my new Verizon VMS system which includes 2 client units.  I hooked everything up and all was working as it should except that when watching live TV on the two client units, it will not buffer two different TV channels and allow me to switch back and forth between these two channels and rewind, fast forward or pause.  It will only buffer one channel and when I switch to another, the original channels buffer is gone.  I could do this on all three of my standard HD DVR boxes before swithcing to the VMS and this was a huge feature for me as I like to watch multiple shows or sporting events simultaneaously.  I called support and after about 90 minutes they could find no problem or find any solution other then to send me a new VMS.  The odd thing is when they looked at all of the tuners being used, tuners 3 annd 4 were never getting used.  The odder thing is that it seemed to work properly on one of the client boxes until they did a cold init and then that one also stopped allowing 2 channels to be buffered.
    Should I be able to buffer two seperate channels on the client boxes as well as the main VMS box or did they for some awful reasone take this feature away from the clients??
    Thanks,
    Eric

    DOES VMS DO THESE THINGS FOR YOU ?
    VZ  VMS1100 Video Media Server
    From Pg of 2 of Manual
    The VMS1100 provides the following advanced functionality:
    • Whole home DVR support for up to four connected IP Client set-top boxes
    • Authorization and purchase of on-demand programming
    • High-Definition television (HDTV) video decoding
    • HDTV output through component video (YPbPr) or High-Definition Multimedia Interface™ (HDMI™)
    • Surround-sound audio through a variety of analog and digital interconnection options
    Live playback and LOD buffering capabilities to pause and time shift live video and seamlessly record for
    all connected televisions
    • Built-in MoCA 1.1/2.0 HW support
    As with all ARRIS digital set-tops, the hardware features are enabled by core operating and third-party
    application software.
    Tom
    Freedom Essentials, QIP 7100 1,Bose SOLO TV Sound System,,QIP 7216 P2,M1424WR Rev F, iPad 2 WiFi,iPhone 5,TV SYST INFO Release 1.9.5 Build No. 17.45
    Data Object 39.45

  • VMS 1100 and Slingbox

    rataylor wrote:
    Thanks! Is STB the same as the new VMS server box? (Will it even work with the client box?)Lots of terms there.  A DVR including the new VMS boxes is a STB.  However the older Verizon STB's and DVR's will not work the VMS box.  Only the new IP boxes work with the VMS box.   And the IP boxes will not work without at least one VMS box.  The previous STB did not have to have a DVR box in order to work.

    Thanks for the suggestions. I think the problem is my Slingbox is the original "SOLO" model and the new FIOS equipment uses 1080i for signal. It would probably work if I got the new Slingbox 500 which also uses 1080i. One last question....if the Client & TV are hooked up via HDMI and the SOLO is connected to the Client with the component cables, can it send a signal to both units or does it have to be connected one or the other? I know it worked set up like that with the old DVR I had but I think that had more than one tuner whereas I've read the client just has one.

  • VMS new install - IP box issues

    Installed my VMS and 2 IP boxes without issue.  However, I am now seeing a problem between the IP boxes.  I only have the 3 total units.  While watching a channel on IP1, if I put the same channel on IP2, IP1 freezes, as if it were paused.
    To correct the problem, I need to turn off IP2 then change the channel on IP1 to something different and then return to the original channel.  Anyone else seeing this?  We have to be able to watch the same channel on multiple TVs...

    I did a bit of Googling after I've been working this issue for several hours straight, and it seems I have the dreaded "NF3 vs 6800" issue.
    I have flashed the BIOS to clock the BFG 6800GT OC back down to 350/1000 and even went so far to push it back to 345/1000.  I have turned fastwrites off, the hidden ATI/NV setting in the BIOS is turned off, I tried pushing the voltage to the card up to 1.6 and used NiBitor and RivaTuner to try and force the 2d/3d times to be the same. 
    Nothing worked.  I'm still getting annoying "RGB pixilation" as well as periodic UI freezes for half a second.  Called BFG and they said they knew of no issues, and after doing a bit of searching on this board, it seems to be an NForce vs. 6800 problem.
    Has anyone got any other ideas before I go over to the darkside and purchase a VIA board?

  • VMS & IPC Low MOCA speeds Check your COAX!

    To much load on the COAX? Two 4-way by directional splitters and the router sits on the first splitter.
    Make sure in is in and out is out.
    Quantum TV ROCKs! Now that I removed the sand.
    Enable Client Ethernet option with hopes they built it with Gigabit!
    System Log
    LAN Coax
    LAN Coax Link Low Rate <TX 89Mbps/RX 113Mbps>
    Actiontec issues, did not see this prior to Quantum TV?
    Why does the router report this if the Ethernet is supporting the computers at Gigabit, and MOCA LAN is supporting the IPC Clients?
    The clients should not care at this MOCA speed?
    Does it matter that the LAN is running slow, since the MOCA WAN and LAN are at a different frequencies, and MOCA WAN not used with Ethernet WAN configurations?
    Or would this too cause a bottle neck on the bridge, because with Gigabit LAN it should not?
    Come on Verizon get a router with MOCA 2.0 and decent Wifi!
    All VMS and IPC devices report a good SNR. Is this only an issue with the load on MOCA it you are running MOCA WAN?
    ONT, 1- MI424WR-GEN3I, 1- VMS-1100, 3- IPC-1100, and 1- Media Center Network Tuner. Now say I add another VMS-1100 or more clients.
    The CSR was clueless, and kept wanting access to my private network and PC. I don't think so. Do what you wish on your network, mine is mine!
    Solved!
    Go to Solution.

    Make sure in is in and out is out.
    Quantum TV ROCKs! Now that I removed the sand.
    Check your in and out splitter connections and make sure they are tight and in is in and out is out.
    I will be the first to admit when I double check my work and find I was wrong. Hey what do you want when your reconnecting  coax cables after running Media Center extenders on Ethernet for 16 months in anticipation.

Maybe you are looking for

  • I'm attepmting to upgrade my Mother's iphone4 to the ios7.4

    and I can't get past the 'connect to iTunes' screen with the picture of the cable and music notes. I've reset the phone and done the 'restore' settings and still can't get past the 'connect to iTunes' screen. Can anyone help please??????

  • Accessing JNDI fscontext provider .bindings file via Web Server

    The filesystem context provider produces a .bindings file. I've been referencing this over a web server with a URL of the form "file://<host><path>/.bindings". This works find with IIS. With Netscape Enterprise Web Server it won't show files with a n

  • Copy User Specific ALV Display Variants

    Does anyone know if it is possible to copy one user's ALV display variant (that has been saved as a user-specific variant) for a particular program (in this case VA05) to another user?

  • ITEM DETAILS: CONFIGURATION icon

    In the sale order if we want to see the variant configuration details for a particular line item then after selecting the line item we press the ITEM DETAILS: CONFIGURATION icon. Once we press this icon then the system will take us to a display chara

  • Can't Install Adobe Web Premium CS6 Trial

    "We've encountered the followimng issues Installer faild to initialize. Please download Adobe Support Advisor to detect the problem." I downloaded The Support Advisor but it tells me the following "Inspection could not identify any issues. Please con