(file) Return to readme.jmpi CVS log (file) (dir) Up to [Pegasus] / pegasus

Diff for /pegasus/readme.jmpi between version 1.15 and 1.16

version 1.15, 2007/09/26 21:46:07 version 1.16, 2007/09/28 18:32:56
Line 42 
Line 42 
 Environment settings Environment settings
 -------------------- --------------------
  
 In order to build the JMPI support a few environment variables have to used.  In order to build this support a few environment variables have to used.
 The following script has been proven useful for setting up the build and  The following script has been proven useful for setting up the build and execution environment.
 execution environment. You might need to adjust this to your system layout.  You might need to adjust this to your system layout.
  
    An example setJPeg script file:     an example setJPeg script file:
    export PEGASUS_HOME=`pwd`    export PEGASUS_HOME=`pwd`
    export PEGASUS_ROOT=${PEGASUS_HOME}    export PEGASUS_ROOT=${PEGASUS_HOME}
    export PEGASUS_PLATFORM=LINUX_IX86_GNU    export PEGASUS_PLATFORM=LINUX_IX86_GNU
Line 60 
Line 60 
    export PATH=${JAVA_SDK}/bin/:${PEGASUS_HOME}/bin:${PATH}    export PATH=${JAVA_SDK}/bin/:${PEGASUS_HOME}/bin:${PATH}
    export CLASSPATH=${CLASSPATH}:${PEGASUS_HOME}/lib/JMPIImpl.jar    export CLASSPATH=${CLASSPATH}:${PEGASUS_HOME}/lib/JMPIImpl.jar
  
 Lets walk through an example for the mandatory environment variables.  Lets walk through the manditory environment variables.  The first tells Pegasus to build the
   Java provider manager.
 (1) The first tells Pegasus to build the Java provider manager:  
       export PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER=true       export PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER=true
  
 (2) The second says which JRE to use.  The choices are as follows:  The second says which JRE to use.  The choices are as follows:
       export PEGASUS_JVM=gcj    Gnu's jvm (ex: gcj (GCC) 4.1.1 20061011 (Red Hat 4.1.1-30))       export PEGASUS_JVM=gcj    Gnu's jvm (ex: gcj (GCC) 4.1.1 20061011 (Red Hat 4.1.1-30))
       export PEGASUS_JVM=sun    Sun's jvm (ex: j2sdk1.4.2_07)       export PEGASUS_JVM=sun    Sun's jvm (ex: j2sdk1.4.2_07)
       export PEGASUS_JVM=ibm    IBM's jvm (ex: IBMJava2-142)       export PEGASUS_JVM=ibm    IBM's jvm (ex: IBMJava2-142)
       export PEGASUS_JVM=ibm64  IBM's jvm for 64 bit machine.       export PEGASUS_JVM=ibm64  IBM's jvm for 64 bit machine.
       export PEGASUS_JVM=bea    Suse's IBM jvm (ex: BEAJava2-1.4.2)       export PEGASUS_JVM=bea    Suse's IBM jvm (ex: BEAJava2-1.4.2)
     So, pick one and export that variable to the environment.  For example:  So, pick one and export that variable to the environment.  For example,
       export PEGASUS_JVM=sun       export PEGASUS_JVM=sun
     NOTE: As the primary maintainer of the JMPI code, IBM developers have  NOTE: The gcj and sun options were the only tested JVMs.
     independently tested (and routinely test) JMPI with the following JREs.  NOTE: gcj is only supported using gcc version 4.1.1 or later.
     The results of these tests are not yet reported on the OpenPegasus Nightly  
     Build and Test Status page.  The third and fourth say where the JRE libraries and header files are located.  This may or may not
       - LINUX_IX86_GNU (Fedora Core 5), Sun JVM 1.4.2_08  be necessary depending upon the compiler's default search paths.
       - LINUX_IX86_GNU (Fedora Core 5), Gcc JVM 4.1.1 20060525  Since we are using Sun's JRE, point to Sun's paths.
       - LINUX_IX86_GNU (RHEL 5.1), Gcc JVM 4.1.2 20070626  
       - LINUX_X86_64_GNU (SLES 9 SP3), Sun JVM 1.4.2_15  
       - LINUX_X86_64_GNU (RHEL 5.0), IBM Classic VM (build 1.4.2, J2RE 1.4.2 IBM build cxz64142-20070317 (SR8) (JIT disabled))  
       - LINUX_ZSERIES64_GNU (RHEL 5.0), IBM J9SE VM (build 2.2, J2RE 1.4.2 IBM J9 2.2 Linux amd64-64  
       - ZOS_ZSERIES_IBM (z/OS 1.7), J2RE 1.4.2 IBM z/OS Persistent Reusable VM build cm142-20060824 (SR6)  
       - ZOS_ZSERIES_IBM (z/OS 1.8), J2RE 1.4.2 IBM z/OS Persistent Reusable VM build cm142-20060824 (SR6)  
       - ZOS_ZSERIES_IBM (z/OS 1.9), J2RE 1.4.2 IBM z/OS Persistent Reusable VM build cm142-20060824 (SR6)  
       - WIN32_IX86_MSVC (Microsoft Windows XP Professional), Sun JVM 1.6.0_02  
   
 (3, 4) The third and fourth say where the JRE libraries and header files are  
     located. This may or may not be necessary depending upon the compiler's  
     default search paths. Since in this example we are using Sun's JRE, we  
     point to Sun's paths:  
       export JAVA_SDK=/usr/java/j2sdk1.4.2_08       export JAVA_SDK=/usr/java/j2sdk1.4.2_08
       export JAVA_SDKINC=${JAVA_SDK}/include       export JAVA_SDKINC=${JAVA_SDK}/include
  
 (5) The fifth variable defines the Java architecture of the JMV:  The fifth variable defines the Java architecture of the JMV
       export PEGASUS_JAVA_ARCH=i386       export PEGASUS_JAVA_ARCH=i386
  
 (6) The sixth variable defines which version of the jvm library to link to  The sixth variable defines which version of the jvm library to link to (the
     (the client or the server):  client or the server).
       export PEGASUS_JAVA_TYPE=client       export PEGASUS_JAVA_TYPE=client
  
     As a test to make sure your environment variables are correct in this  As a test to make sure your environment variables are correct
     example:  
       ls ${JAVA_SDK}/jre/lib/${PEGASUS_JAVA_ARCH}/${PEGASUS_JAVA_TYPE}       ls ${JAVA_SDK}/jre/lib/${PEGASUS_JAVA_ARCH}/${PEGASUS_JAVA_TYPE}
     should show you libjvm.so for Sun's JRE.     should show you libjvm.so for Sun's JRE.
  
 (7) The seventh may be necessary to tell the linker where to load the JRE  The seventh may be necessary to tell the linker where to load the JRE libraries.
     libraries:  
       export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${JAVA_SDK}/jre/lib/${PEGASUS_JAVA_ARCH}/server:${JAVA_SDK}/jre/lib/${PEGASUS_JAVA_ARCH}/native_threads:${JAVA_SDK}/jre/lib/${PEGASUS_JAVA_ARCH}       export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${JAVA_SDK}/jre/lib/${PEGASUS_JAVA_ARCH}/server:${JAVA_SDK}/jre/lib/${PEGASUS_JAVA_ARCH}/native_threads:${JAVA_SDK}/jre/lib/${PEGASUS_JAVA_ARCH}
  
 (8) The eighth one may be necessary to get the JVM's executable files into the  The eighth one may be necessary to get the JVM's executable files into the PATH.
     PATH:  
       export PATH=${JAVA_SDK}/bin/:${PEGASUS_HOME}/bin:${PATH}       export PATH=${JAVA_SDK}/bin/:${PEGASUS_HOME}/bin:${PATH}
  
 (9) The nineth tells the JRE to include JMPI's Java classes:  The nineth tells the JRE to include JMPI's Java classes.
       export CLASSPATH=${CLASSPATH}:${PEGASUS_HOME}/lib/JMPIImpl.jar       export CLASSPATH=${CLASSPATH}:${PEGASUS_HOME}/lib/JMPIImpl.jar
  
 There are a couple of optional environment variables to determine how the JRE  There are a couple of optional environment variables to determine how the JRE is initialized.  These are
 is initialized.  These are as follows (the variable name and what JRE option  as follows (the variable name and what JRE option that it corresponds to):
 that it corresponds to):  
  
   PEGASUS_JMPI_MAX_HEAP               -Xmx   PEGASUS_JMPI_MAX_HEAP               -Xmx
   PEGASUS_JMPI_INITIAL_HEAP           -Xms   PEGASUS_JMPI_INITIAL_HEAP           -Xms
   PEGASUS_JMPI_JAVA_THREAD_STACK_SIZE -Xss   PEGASUS_JMPI_JAVA_THREAD_STACK_SIZE -Xss
  
 So, for example, you would perform the following if you want to change the  So, for example, you would perform the following if you want to change the maximum heap size to 128 megabytes.
 maximum heap size to 128 megabytes:  
  
   export PEGASUS_JMPI_MAX_HEAP=128m   export PEGASUS_JMPI_MAX_HEAP=128m
  
 There is a new optional environment variable that tells the JVM to output more  There is a new optional environment variable that tells the JVM to output more debugging information.  The variable name
 debugging information.  The variable name is called PEGASUS_JMPI_VERBOSE.  is called PEGASUS_JMPI_VERBOSE.  An example usage is as follows:
 An example usage is as follows:  
  
   export PEGASUS_JMPI_VERBOSE="jni,class"   export PEGASUS_JMPI_VERBOSE="jni,class"
  
 This will tell the JVM to output debug information on the JNI layer and class  This will tell the JVM to output debug information on the JNI layer and class loading.
 loading.  
  
 When using this script, place a copy of this script above your PEGASUS_HOME  When using this script, place a copy of this script above your PEGASUS_HOME directory.
 directory, "cd" to PEGASUS_HOME, and issue ". ./setJPeg". Then do a normal  "cd" to PEGASUS_HOME, and issue ". ./setJPeg". Then do a normal make.
 make.  
  
  
 Known restrictions Known restrictions
 ------------------ ------------------
  
 This installment has the following restrictions:  This installment has the following restrictios:
   
    Unloading of idle providers is not supported and Java will increase the  
      memory footprint.  
  
      Unloading of idle providers is not supported and Java will increase the memory footprint.
    Java 1.5 is not currently supported.    Java 1.5 is not currently supported.
  
    Gcj on 31 bit machines is only supported using gcc version 4.1.1 or later.  
    Gcj on 64 bit machines is not supported.  Bugs 5913, 5921, and 5963 have  
      been written to address that issue. Instead, you should use the Sun ported  
      JVM from the Blackdown project located at www.blackdown.org.  
  
   Level of coverage
   -----------------
  
 Level of test coverage  All interfaces to a provider have a sample provider written for them and are part of the
 ----------------------  testcases.  All main CIM java classes have testcases written for them as well.
   
 All interfaces to a provider have a sample provider written for them and are  
 part of the testcases.  All main CIM java classes have testcases written for  
 them as well.  
  
  
 Outstanding issues Outstanding issues
Line 178 
Line 148 
 Testing Testing
 ------- -------
  
 This installment has a set of tests located under  This installment has a set of tests located under src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/tests/
   src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/tests/  
  
     Static/     Static/
  
       These tests have been modelled after wetest/static. (For the tests, we        These tests have been modelled after wetest/static.
       had to modify "diff" to "diff -w", why that is needed I do not        For the tests, I had to modify "diff" to "diff -w", why that is needed I do not understand.
       understand.)  
  
    Providers/    Providers/
  
Line 200 
Line 168 
 ----------------- -----------------
  
 Tests are run with the following process. Tests are run with the following process.
   If the repository has not been built before then issue the following:
 If the repository has not already been built then issue the following:  
  
    cd to ${PEGASUS_HOME}/src/Pegasus/ProviderManager2/JMPI/    cd to ${PEGASUS_HOME}/src/Pegasus/ProviderManager2/JMPI/
    Issue "make repository"    Issue "make repository"
Line 244 
Line 211 
 Provider Registration Provider Registration
 --------------------- ---------------------
  
 JMPI providers are registered as usual. The Location property in     JMPI providers are registered as usual. The Location property in PG_ProviderModule has a special format.
 PG_ProviderModule has a special format. The format is:          The format is: <jar-file-name>:<provider-class-name>
   <jar-file-name>:<provider-class-name>  
  
 JMPI providers now fall into two groups. JMPI providers now fall into two groups.
      1) Legacy providers use:
 (1) Legacy providers use:  
       InterfaceType = "JMPI"       InterfaceType = "JMPI"
     and use one of the 3 following based on existing JMPI samples:     and use one of the 3 following based on existing JMPI samples:
       InterfaceVersion = "1.0.0";       InterfaceVersion = "1.0.0";
Line 268 
Line 233 
        InterfaceVersion = "1.0.0";        InterfaceVersion = "1.0.0";
     };     };
  
 (2) New style providers use:     2) New style providers use:
       InterfaceType = "JMPIExperimental"       InterfaceType = "JMPIExperimental"
     and:     and:
       InterfaceVersion = "0.0.1";       InterfaceVersion = "0.0.1";


Legend:
Removed from v.1.15  
changed lines
  Added in v.1.16

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2