summaryrefslogtreecommitdiffstats
path: root/readme.jmpi
diff options
context:
space:
mode:
authormark.hamzy <mark.hamzy>2007-09-28 18:32:56 +0000
committermark.hamzy <mark.hamzy>2007-09-28 18:32:56 +0000
commitd2b709557c1d2dd98e8c554d98ae7dc555c13821 (patch)
treefab1b4fc6bedadde6405c87170aa0b8967577386 /readme.jmpi
parentd57e8154ac12a502500905ba3099382cbb11447e (diff)
downloadtog-pegasus-d2b709557c1d2dd98e8c554d98ae7dc555c13821.zip
tog-pegasus-d2b709557c1d2dd98e8c554d98ae7dc555c13821.tar.gz
tog-pegasus-d2b709557c1d2dd98e8c554d98ae7dc555c13821.tar.xz
BUG#: 6845
TITLE: The readme.jmpi file needs to be updated to reflect status of various JVMs with JMPI DESCRIPTION: Backing out the change. Approval was not given.
Diffstat (limited to 'readme.jmpi')
-rw-r--r--readme.jmpi243
1 files changed, 104 insertions, 139 deletions
diff --git a/readme.jmpi b/readme.jmpi
index e3cc5b1..f0540a2 100644
--- a/readme.jmpi
+++ b/readme.jmpi
@@ -42,11 +42,11 @@ More information on JMPI's status can be found at
Environment settings
--------------------
-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. You might need to adjust this to your system layout.
+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 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_ROOT=${PEGASUS_HOME}
export PEGASUS_PLATFORM=LINUX_IX86_GNU
@@ -60,113 +60,83 @@ execution environment. You might need to adjust this to your system layout.
export PATH=${JAVA_SDK}/bin/:${PEGASUS_HOME}/bin:${PATH}
export CLASSPATH=${CLASSPATH}:${PEGASUS_HOME}/lib/JMPIImpl.jar
-Lets walk through an example for the mandatory environment variables.
-
-(1) The first tells Pegasus to build the Java provider manager:
- export PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER=true
-
-(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=sun Sun's jvm (ex: j2sdk1.4.2_07)
- export PEGASUS_JVM=ibm IBM's jvm (ex: IBMJava2-142)
- export PEGASUS_JVM=ibm64 IBM's jvm for 64 bit machine.
- 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:
- export PEGASUS_JVM=sun
- NOTE: As the primary maintainer of the JMPI code, IBM developers have
- independently tested (and routinely test) JMPI with the following JREs.
- The results of these tests are not yet reported on the OpenPegasus Nightly
- Build and Test Status page.
- - LINUX_IX86_GNU (Fedora Core 5), Sun JVM 1.4.2_08
- - 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_SDKINC=${JAVA_SDK}/include
-
-(5) The fifth variable defines the Java architecture of the JMV:
- export PEGASUS_JAVA_ARCH=i386
-
-(6) The sixth variable defines which version of the jvm library to link to
- (the client or the server):
- export PEGASUS_JAVA_TYPE=client
-
- 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}
- should show you libjvm.so for Sun's JRE.
-
-(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}
-
-(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}
-
-(9) The nineth tells the JRE to include JMPI's Java classes:
- 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 as follows (the variable name and what JRE option
-that it corresponds to):
-
- PEGASUS_JMPI_MAX_HEAP -Xmx
- PEGASUS_JMPI_INITIAL_HEAP -Xms
- 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:
-
- 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 is called PEGASUS_JMPI_VERBOSE.
-An example usage is as follows:
-
- export PEGASUS_JMPI_VERBOSE="jni,class"
-
-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, "cd" to PEGASUS_HOME, and issue ". ./setJPeg". Then do a normal
-make.
+Lets walk through the manditory environment variables. The first tells Pegasus to build the
+Java provider manager.
+ export PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER=true
+
+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=sun Sun's jvm (ex: j2sdk1.4.2_07)
+ export PEGASUS_JVM=ibm IBM's jvm (ex: IBMJava2-142)
+ export PEGASUS_JVM=ibm64 IBM's jvm for 64 bit machine.
+ 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,
+ export PEGASUS_JVM=sun
+NOTE: The gcj and sun options were the only tested JVMs.
+NOTE: gcj is only supported using gcc version 4.1.1 or later.
+
+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 we are using Sun's JRE, point to Sun's paths.
+ export JAVA_SDK=/usr/java/j2sdk1.4.2_08
+ export JAVA_SDKINC=${JAVA_SDK}/include
+
+The fifth variable defines the Java architecture of the JMV
+ export PEGASUS_JAVA_ARCH=i386
+
+The sixth variable defines which version of the jvm library to link to (the
+client or the server).
+ export PEGASUS_JAVA_TYPE=client
+
+As a test to make sure your environment variables are correct
+ ls ${JAVA_SDK}/jre/lib/${PEGASUS_JAVA_ARCH}/${PEGASUS_JAVA_TYPE}
+should show you libjvm.so for Sun's JRE.
+
+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}
+
+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}
+
+The nineth tells the JRE to include JMPI's Java classes.
+ 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
+as follows (the variable name and what JRE option that it corresponds to):
+
+PEGASUS_JMPI_MAX_HEAP -Xmx
+PEGASUS_JMPI_INITIAL_HEAP -Xms
+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.
+
+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
+is called PEGASUS_JMPI_VERBOSE. An example usage is as follows:
+
+export PEGASUS_JMPI_VERBOSE="jni,class"
+
+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.
+"cd" to PEGASUS_HOME, and issue ". ./setJPeg". Then do a normal make.
Known restrictions
------------------
-This installment has the following restrictions:
-
- Unloading of idle providers is not supported and Java will increase the
- memory footprint.
+This installment has the following restrictios:
+ Unloading of idle providers is not supported and Java will increase the memory footprint.
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 test coverage
-----------------------
+Level of 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
@@ -178,14 +148,12 @@ Java documentation needs to be written for the classes and methods within JMPI.
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. (For the tests, we
- had to modify "diff" to "diff -w", why that is needed I do not
- understand.)
+ These tests have been modelled after wetest/static.
+ For the tests, I had to modify "diff" to "diff -w", why that is needed I do not understand.
Providers/
@@ -200,8 +168,7 @@ Running the tests
-----------------
Tests are run with the following process.
-
-If the repository has not already been built then issue the following:
+If the repository has not been built before then issue the following:
cd to ${PEGASUS_HOME}/src/Pegasus/ProviderManager2/JMPI/
Issue "make repository"
@@ -244,44 +211,42 @@ Samples
Provider Registration
---------------------
-JMPI providers are registered as usual. The Location property in
-PG_ProviderModule has a special format. The format is:
- <jar-file-name>:<provider-class-name>
+ JMPI providers are registered as usual. The Location property in PG_ProviderModule has a special format.
+ The format is: <jar-file-name>:<provider-class-name>
-JMPI providers now fall into two groups.
-
-(1) Legacy providers use:
+ JMPI providers now fall into two groups.
+ 1) Legacy providers use:
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 = "2.0.0";
InterfaceVersion = "2.2.0";
- Note that there is no difference in behavior in the three versions.
-
- instance of PG_ProviderModule
- {
- Name = "JMPIInstanceProviderModule";
- Location = "JMPIInstanceProvider.jar:Instances/JMPIInstanceProvider";
- Vendor = "OpenPegasus";
- Version = "2.0.0";
- InterfaceType = "JMPI";
- InterfaceVersion = "1.0.0";
- };
-
-(2) New style providers use:
+ Note that there is no difference in behavior in the three versions.
+
+ instance of PG_ProviderModule
+ {
+ Name = "JMPIInstanceProviderModule";
+ Location = "JMPIInstanceProvider.jar:Instances/JMPIInstanceProvider";
+ Vendor = "OpenPegasus";
+ Version = "2.0.0";
+ InterfaceType = "JMPI";
+ InterfaceVersion = "1.0.0";
+ };
+
+ 2) New style providers use:
InterfaceType = "JMPIExperimental"
- and:
+ and:
InterfaceVersion = "0.0.1";
- instance of PG_ProviderModule
- {
- Name = "JMPIExpInstanceProviderModule";
- Location = "JMPIExpInstanceProvider.jar:Instances/JMPIExpInstanceProvider";
- Vendor = "OpenPegasus";
- Version = "2.0.0";
- InterfaceType = "JMPIExperimental";
- InterfaceVersion = "0.0.1";
- };
+ instance of PG_ProviderModule
+ {
+ Name = "JMPIExpInstanceProviderModule";
+ Location = "JMPIExpInstanceProvider.jar:Instances/JMPIExpInstanceProvider";
+ Vendor = "OpenPegasus";
+ Version = "2.0.0";
+ InterfaceType = "JMPIExperimental";
+ InterfaceVersion = "0.0.1";
+ };
Bug reports