Solved

java -version command not working on AIX 6.1 (JRE version installed is 1.7)

Posted on 2014-11-18
8
1,000 Views
Last Modified: 2016-07-17
Hello,
I am getting the following error while trying to executing the java -version command :
libjvm.so preloadLibrary(/usr/openv/java/sdk/jre/lib/ppc64/compressedrefs/libj9vm27.so): Symbol resolution failed for /usr/openv/java/sdk/jre/lib/ppc64/compressedrefs/libj9prt27.so because:
        Symbol getsystemcfg (number 162) is not exported from dependent
          module /usr/lib/libc.a[shr_64.o].
Could not load module /usr/openv/java/sdk/jre/lib/ppc64/compressedrefs/libj9vm27.so.
System error: Exec format error
Examine .loader section symbols with the 'dump -Tv' command.
libjvm.so failed to load: j9vm27

The oslevel command give this :
<user>-/usr/java71_64/jre/bin> oslevel -s
6100-03-01-0921

All libraries seem to be present.
Can you help to resolve the problem ?

Thanks
0
Comment
Question by:papfal
  • 3
  • 2
8 Comments
 
LVL 4

Expert Comment

by:popesy
ID: 40449523
Hi

Possibly you have more than one version of java installed, so check the installed version;

lslpp -L "Java*"

You could also check your environment settings for $PATH or $JAVA_HOME

We have the
/usr/<javaversion>/jre/bin

Open in new window

and
/usr/<javaversion>/bin

Open in new window

in our path.  We also have multiple versions installed.

Cheers, JP.
0
 
LVL 68

Assisted Solution

by:woolmilkporc
woolmilkporc earned 500 total points
ID: 40449555
>>  Symbol getsystemcfg (number 162) is not exported from dependent module /usr/lib/libc.a[shr_64.o]. <<

getsystemcfg came with TL 5 of AIX 6.1 and with AIX 7.1. The installed Java version 7 is just too new for AIX 6.1. Also, it seems that it's not an "official" version for AIX as can be obtained from here:
https://www.ibm.com/developerworks/java/jdk/aix/service.html

Switch back to an older Java version by adjusting the PATH in /etc/environment or upgrade the OS to AIX 6.1 TL 5 or to AIX 7.1.
0
 

Author Comment

by:papfal
ID: 40449573
I have two java versions installed :

hintihra-/usr/java71_64/jre/bin> lslpp -L "Java*"
  Fileset                      Level  State  Type  Description (Uninstaller)
  ----------------------------------------------------------------------------
  Java5.sdk                5.0.0.225    C     F    Java SDK 32-bit
  Java5_64.sdk             5.0.0.225    C     F    Java SDK 64-bit
  Java6_64.sdk             6.0.0.406    C     F    Java SDK 64-bit

But my goal is to install the jre1.7 needed by a single important application.
So I'll customize the profile of the user which for the application to point to the to java 1.7.

The installation of 1.7 was aborted because below filesets are available on server with lower version as TL level is low :
    X11.base.lib 6.1.7.0                      # Base Level Fileset
    X11.base.rte 6.1.7.0                      # Base Level Fileset
    X11.motif.mwm 6.1.7.0                     # Base Level Fileset
    bos.mp64 6.1.7.0                          # Base Level Fileset
    bos.net.tcp.client 6.1.7.0                # Base Level Fileset
    bos.rte 6.1.7.0                           # Base Level Fileset
    bos.rte.libc 6.1.7.0                      # Base Level Fileset
    bos.rte.libpthreads 6.1.7.0               # Base Level Fileset

To install java 1.7, I need to upgrade the level from 3 to 5 TL and I can't right now because others many applications are running in the server.

So after this issue I copied the directory /usr/java71_64 from another AIX server with good level and restored it in my server in order to fix the issue, I'am getting the error.

Here are my java environment variables :
hintihra-/usr/java71_64/jre/bin> echo $JAVACMD
/usr/java71_64/jre/bin/java
hintihra-/usr/java71_64/jre/bin> echo $JAVA_HOME
/usr/java71_64/jre

So can you help to circumvent the problem ?

Thanks
0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 68

Accepted Solution

by:
woolmilkporc earned 500 total points
ID: 40449587
There is no "circumvention".

As you can see, you're missing (among other packages) "bos.mp64 6.1.7.0" which is nothing else than TL 7 of AIX 6.1.

There is no chance to get Java 7.1 running on AIX 6.1 with a lower Technology Level than "7"! Java 7.0 should run on AIX 6.1 TL 5.

Explanation: Java 7.1 relies (among many other things) on a function called "getsystemcfg". This function came with TL 5 of AIX 6.1 and has nothing to do with the Java code itself, is just the call to libc which fails due to the function not being implemented there yet.
libc cannot be copied from higher level systems due to thousands of dependencies which would get broken by doing so.
0
 
LVL 4

Expert Comment

by:popesy
ID: 40449593
Hi

Just to press home the point that WMP is right.

Merely copying a directory over from a more recent OS level server to the one you want to upgrade can't account for the aforementioned dependencies.

Cheers, JP.
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 41714758
The answer https:#a40449587 contains a valid explanation of the problem the asker is/was facing.
Dependencies like the one in question here between the OS level and the supported Java versions can always be found on the IBM Webpage whose link was posted in https:#a40449555 (yes, it's still valid!).

See also popesy's confirmation that just copying programs over from higher-level servers will hardly ever remedy such issues.

Suggestion: Split between https:#a40449555 and https:#a40449587.
0

Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Hyper-threading config in Solaris 6 172
text in table need to be center of the box 4 81
What are recommended OS for exim mail server? 10 116
Access_log 17 151
When you do backups in the Solaris Operating System, the file system must be inactive. Otherwise, the output may be inconsistent. A file system is inactive when it's unmounted or it's write-locked by the operating system. Although the fssnap utility…
Why Shell Scripting? Shell scripting is a powerful method of accessing UNIX systems and it is very flexible. Shell scripts are required when we want to execute a sequence of commands in Unix flavored operating systems. “Shell” is the command line i…
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…

830 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question