OUI and OPatch both use the Java classes provided in the OraInstaller.jar file
The location of this JAR file depends on which version of OUI you are using, but is normally under OUI_location/jlib (for example, $ORACLE_HOME/oui/jlib)
The oracle.sysman.oii.oiix.OiixPlatform.class file in OraInstaller.jar includes the following code:
private static void checkSysProps()
{
if(s_forcedPlat == null)
s_forcedPlat = System.getProperty("oracle.installer.platform", "");
if(s_osname == null)
s_osname = System.getProperty("os.name", "");
if(s_osarch == null)
s_osarch = System.getProperty("os.arch", "");
if(s_osver == null)
s_osver = System.getProperty("os.version", "");
if(s_osdatamodel == null)
s_osdatamodel = System.getProperty("sun.arch.data.model", "");
}
@
@ System.getProperty("os.name","") gets the same output as "uname -s"
@
@ System.getProperty("os.arch","") gets the output from Unix system
@ call sysconf(_SC_CPU_VERSION) and then looks up the architecture in
@ /usr/include/sys/unistd.h (on HPUX - check the other platforms!)
@
@ Another way of looking at it is that it runs "getconf CPU_VERSION",
@ converts the decimal result to hex and then looks up the architecture
@ in /usr/include/sys/unistd.h
@
@ System.getProperty("os.version","") gets the same output as "uname -r"
@
From this we can see that OUI calls the Java function System.getProperty()
The results are passed back to OUI (or OPatch).
An easy way to check this, without using OUI or OPatch, is to follow these steps:
1) Create a Java program called platform.java like this:
public class platform {
public static void main (String[] args) {
System.out.print("Operating System: ");
System.out.println(System.getProperty("os.name"));
System.out.print("Operating System version: ");
System.out.println(System.getProperty("os.version"));
System.out.print("System Architecture: ");
System.out.println(System.getProperty("os.arch"));
}
}
2) Compile the program like this:
javac platform.java
3) Run the program like this:
java platform
Here is some example output:
SOLARIS 2.6 (32-bit)
====================
Operating System: SunOS
Operating System version: 5.6
System Architecture: sparc
SOLARIS 8 (32-bit or 64-bit)
============================
Operating System: SunOS
Operating System version: 5.8
System Architecture: sparc
HPUX 11.0 (64-bit)
==================
Operating System: HP-UX
Operating System version: B.11.00
System Architecture: PA-RISC
HPUX 11.11 (64-bit)
===================
Operating System: HP-UX
Operating System version: B.11.11
System Architecture: PA-RISC
HPUX 11.22 (IA64)
=================
Operating System: HP-UX
Operating System version: B.11.22
System Architecture: IA64
AIX 4.3.3 (64-bit)
==================
Operating System: AIX
Operating System version: 4.3
System Architecture: POWER_PC
AIX 5L 5.2 (64-bit)
===================
Operating System: AIX
Operating System version: 5.2
System Architecture: POWER_PC
TRU64 5.1B (64-bit)
===================
Operating System: OSF1
Operating System version: V5.1
System Architecture: alpha
REDHAT 2.1 (x86 32-bit)
=======================
Operating System: Linux
Operating System version: 2.4.9-e.25enterprise
System Architecture: x86
REDHAT 3.0 (x86 32-bit)
=======================
Operating System: Linux
Operating System version: 2.4.21-4.EL
System Architecture: i386
REDHAT 3.0 (x64-64 64-bit)
==========================
Operating System: Linux
Operating System version: 2.4.21-4.EL
System Architecture: i386
@ Is the architecture right here ?
This is not a complete list - it is just supposed to give you an idea of the output to expect.
Source: Unpublished Metalink Note 292628.1
Blog dedicated to Oracle Applications (E-Business Suite) Technology; covers Apps Architecture, Administration and third party bolt-ons to Apps
Subscribe to:
Post Comments (Atom)
2 comments:
Hi , nice information.
I wander if there an API of opatch to retrive the output of opatch -lsinventory
Hi amihay,
If you look inside opatch shell script, it actually calls java classes:
Line 189 of opatch shell script reads:
$JAVA -cp $CP/OraInstaller.jar:$CP/xmlparserv2.jar:$CP/share.jar:$CP/srvm.jar:$BASE/jlib/opatch.jar:$BASE/jlib/opatchutil.jar:$BASE/jlib/opatchprereq.jar: -DOPatch.ORACLE_HOME=$OH -DOPatch.DEBUG=$DEBUGVAL oracle/opatch/OPatch $@
If you are interested in digging deeper, you may have to go through the class files inside the jar files
- Vikram
Post a Comment