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

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

version 1.16, 2007/09/28 18:32:56 version 1.17, 2007/10/03 20:47:05
Line 42 
Line 42 
 Environment settings Environment settings
 -------------------- --------------------
  
 In order to build this support a few environment variables have to used.  In order to build the JMPI support a few environment variables have to used.
 The following script has been proven useful for setting up the build and execution environment.  The following script has been proven useful for setting up the build and
 You might need to adjust this to your system layout.  execution environment. 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 the manditory environment variables.  The first tells Pegasus to build the  Lets walk through an example for the mandatory environment variables.
 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
  
 The second says which JRE to use.  The choices are as follows:  (2) 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: The gcj and sun options were the only tested JVMs.      NOTE: As the primary maintainer of the JMPI code, IBM developers have
 NOTE: gcj is only supported using gcc version 4.1.1 or later.      independently tested (and routinely test) JMPI with the following JREs.
       The results of these tests are not yet reported on the OpenPegasus Nightly
 The third and fourth say where the JRE libraries and header files are located.  This may or may not      Build and Test Status page.
 be necessary depending upon the compiler's default search paths.        - LINUX_IX86_GNU (Fedora Core 5), Sun JVM 1.4.2_08
 Since we are using Sun's JRE, point to Sun's paths.        - LINUX_IX86_GNU (Fedora Core 5), Gcc JVM 4.1.1 20060525
         - 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
  
 The fifth variable defines the Java architecture of the JMV  (5) The fifth variable defines the Java architecture of the JMV:
    export PEGASUS_JAVA_ARCH=i386    export PEGASUS_JAVA_ARCH=i386
  
 The sixth variable defines which version of the jvm library to link to (the  (6) The sixth variable defines which version of the jvm library to link to
 client or the server).      (the 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      As a test to make sure your environment variables are correct in this
       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.
  
 The seventh may be necessary to tell the linker where to load the JRE libraries.  (7) The seventh may be necessary to tell the linker where to load the JRE
       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}
  
 The eighth one may be necessary to get the JVM's executable files into the PATH.  (8) The eighth one may be necessary to get the JVM's executable files into the
       PATH:
    export PATH=${JAVA_SDK}/bin/:${PEGASUS_HOME}/bin:${PATH}    export PATH=${JAVA_SDK}/bin/:${PEGASUS_HOME}/bin:${PATH}
  
 The nineth tells the JRE to include JMPI's Java classes.  (9) 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 is initialized.  These are  There are a couple of optional environment variables to determine how the JRE
 as follows (the variable name and what JRE option that it corresponds to):  is initialized.  These are as follows (the variable name and what JRE option
   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 maximum heap size to 128 megabytes.  So, for example, you would perform the following if you want to change the
   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 debugging information.  The variable name  There is a new optional environment variable that tells the JVM to output more
 is called PEGASUS_JMPI_VERBOSE.  An example usage is as follows:  debugging information.  The variable name is called PEGASUS_JMPI_VERBOSE.
   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 loading.  This will tell the JVM to output debug information on the JNI layer and class
   loading.
  
 When using this script, place a copy of this script above your PEGASUS_HOME directory.  When using this script, place a copy of this script above your PEGASUS_HOME
 "cd" to PEGASUS_HOME, and issue ". ./setJPeg". Then do a normal make.  directory, "cd" to PEGASUS_HOME, and issue ". ./setJPeg". Then do a normal
   make.
  
  
 Known restrictions Known restrictions
 ------------------ ------------------
  
 This installment has the following restrictios:  This installment has the following restrictions:
   
      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  
 -----------------  
  
 All interfaces to a provider have a sample provider written for them and are part of the  Level of test coverage
 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 148 
Line 178 
 Testing Testing
 ------- -------
  
 This installment has a set of tests located under src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/tests/  This installment has a set of tests located under
     src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/tests/
  
    Static/    Static/
  
       These tests have been modelled after wetest/static.        These tests have been modelled after wetest/static. (For the tests, we
       For the tests, I had to modify "diff" to "diff -w", why that is needed I do not understand.        had to modify "diff" to "diff -w", why that is needed I do not
         understand.)
  
    Providers/    Providers/
  
Line 168 
Line 200 
 ----------------- -----------------
  
 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 211 
Line 244 
 Provider Registration Provider Registration
 --------------------- ---------------------
  
    JMPI providers are registered as usual. The Location property in PG_ProviderModule has a special format.  JMPI providers are registered as usual. The Location property in
         The format is: <jar-file-name>:<provider-class-name>  PG_ProviderModule has a special format. The format is:
     <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 233 
Line 268 
       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.16  
changed lines
  Added in v.1.17

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2