IBM®
Skip to main content
    Country/region [select]      Terms of use
 
 
      
     Home      Products      Services & solutions      Support & downloads      My account     
[an error occurred while processing this directive]
 
developerWorks  >  Java technology  >  IBM developer kits  > AIX developerWorks
IBM AIX developer kit for Java 2 Technology README

Copyright (c) 1996, 1998, 1999 IBM Corporation.

Contents

Introduction

    This release of the IBM AIX Developer Kit, JavaTM 2 Technology Edition, Version 1.2.2 is based on the Sun Microsystems FCS 1.2.2 SolarisTMcode base and the IBM AIX Developer Kit, JavaTM Technology Edition, Version 1.1.8. JavaTM software enables the "write once run anywhere" philosophy to be a reality, which is made easier by the IBM AIX Developer Kit, JavaTM2 Technology Edition, Version 1.2.2 special features.

    This product is also based in part on the work of the FreeType Project. For more information about FreeType see http://www.freetype.org

    The IBM AIX Developer Kit, JavaTM2 Technology Edition, Version 1.2.2 Development Team welcomes feedback on this release.

Note

The software contained in this release may only be used on AIX Version 4.3.3 or later. It is not supported, and will not work, on earlier versions of the AIX operating system. Please see AIX fixes for further details of requirements on the AIX operating system for this release.

This README file is part of a release and is applicable only to that particular release. Please ensure that you have the README file appropriate to the release you are using. After installation the response to the command

    java -fullversion
      should be
      java full version "J2RE 1.2.2 IBM build ca122-20030115"

    Features

      The IBM AIX Developer Kit, JavaTM2 Technology Edition, Version 1.2.2 has the following features:
      • Fully compatible with Sun's Java 2 version 1.2.2 language, enabling "Write Once Run Anywhere".
      • Performance enhancements to make running Java programs even faster.
      • Utilises the IBM Tokyo Research Labs optimising Just In Time ( JIT) compiler version 3.5.
      • Utilises pthreads on the AIX operating system.
      • "Handle-less" object model.
      • Fast, lightweight monitors.
      • Thread-local heap.
      • Java Plugin.
      • Java Communications API 2.0.
      • Support for the new European Union currency, the Euro.
      • Better scaling support for large numbers of threads and large numbers of file handles.
      • Support for display in the sk_SK locale.

    Installation

      The IBM AIX Developer Kit, JavaTM2 Technology Edition, Version 1.2.2 is made available by IBM via the World Wide Web. The complete release comprises several installp image files (packages). Each installp image file or package contains several related filesets. The packages may be installed using the installp command or more easily using the smit or smitty system management tools.
      The full set of packages (installp image files) for this release is as follows:
        Java_dev2.rte
        Java_dev2.adt
        Java_dev2.ext
        Java_dev2.samples
        Java_dev2.msg
      The fileset names in the above packages are:
        Java_dev2.rte.bin
        Java_dev2.rte.lib
        Java_dev2.adt.debug
        Java_dev2.adt.includes
        Java_dev2.adt.src
        Java_dev2.ext.commapi
        Java_dev2.ext.jaas
        Java_dev2.ext.plugin
        Java_dev2.samples.demos
        Java_dev2.msg.$LANG *
      *Where $LANG is any of the following locales:
         
        DE_CH De_CH de_CH DE_DE De_DE
        ES_ES Es_ES es_ES FR_BE Fr_BE
        fr_BE FR_CA Fr_CA fr_CA Fr_CH
        fr_CH FR_CH FR_FR Fr_FR fr_FR
        IT_IT It_IT it_IT JA_JP Ja_JP
        ja_JP KO_KR ko_KR PT_BR Pt_BR
        pt_BR SV_SE Sv_SE sv_SE ZH_CN
        Zh_CN zh_CN ZH_TW Zh_TW zh_TW
      The software will be installed in the directory:
        /usr/java_dev2/
      Set up your PATH environment variable to refer to the new installation:
        export PATH=/usr/java_dev2/jre/sh:/usr/java_dev2/sh:$PATH
      Please note that these elements of PATH have changed from the previous IBM AIX Developer Kit, Java TM Technology Edition, Version 1.1.x releases. If the bin directories are used instead of sh directories, then "cannot find application home" errors will occur.

    Verification

      To help ensure that the verification process behaves consistently; first perform the following:
        unset LIBPATH
        unset CLASSPATH
        unset LD_LIBRARY_PATH
        unset JAVA_COMPILER
        unset JAVA_HOME
      If you issue the command:
        java -fullversion
      it should respond with the following output:
        java full version "J2RE 1.2.2 IBM build ca122-20030115"
      Once verification is complete, logon again and review any values you may have assigned to these variables for possible conflicts with the new installation. Unless .hotjava already existed, executing the appletviewer will create a directory called .hotjava in your home directory. Issuing the command:
        ls -a ~
      should confirm this.

    Just In Time (JIT) compiler

      The IBM Just In Time (JIT) compiler is included in this release and is now enabled by default. The JIT compiler is a performance mechanism that speeds up execution of Java programs by compiling class files into native machine code.

      To disable the JIT compiler, set the JAVA_COMPILER environment variable to "NONE". This can be done in one of the following ways:

      For the Korn shell:

        export JAVA_COMPILER=NONE
      For the Bourne shell:
        JAVA_COMPILER=NONE
        export JAVA_COMPILER
      For the C shell:
        setenv JAVA_COMPILER NONE
      The JAVA_COMPILER setting can be overridden from the command line using the -Djava.compiler option, which enables you to override the default or the environment variable settings. For example, to switch the JIT compiler off:
        java -Djava.compiler=NONE <other params>
      or to switch the JIT compiler on:
        java -Djava.compiler=jitc <other params>
      The current JIT compiler version is v3.5.

      Note: If JAVA_COMPILER="" or -Djava.compiler="" then the JIT compiler will be switched off. If JAVA_COMPILER is set but set to nothing, for example:

        unset JAVA_COMPILER
        export JAVA_COMPILER
      then the default JIT compiler is switched on. The default JIT compiler will always be the latest version.

    AIX Native threads

      The IBM AIX Developer Kit, JavaTM2 Technology Edition, Version 1.2.2 uses AIX POSIX threads (pthreads) package for its threading. This means that Java threads can be scheduled on multiple processors on multiprocessor systems. Thread priorities are not supported. All threads run at the same priority.

      The 'green threads' implementation is no longer supported.

    Scaling support

      For maximum threads (with JIT) try setting the command line parameter -ss32k as the minimum stack size (-ss default value is 256K and can be as small as 16K. A smaller setting allows for a larger number of threads). For example:
        java -ss32k <other params>
      For maximum file descriptors, use the command line statement "ulimit", for example:
        ulimit -n 3000
      or "chuser",for example:
        chuser nofiles=3000 some_user_name
      to increase the limit ("ulimit -a" shows the current limit).

    Large Programming Model support

      The JVM of The IBM AIX Developer Kit, JavaTM 2 Technology Edition, Version 1.2.2 supports the large program model. For more details on the large program model, see: The 1.2.2 JVM's launcher executables (java , java_g, jre and jre_g) are built to use 5 segments of data heap (i.e. maxdata has been set to 0x50000000).

      If you launch a JVM from within your application, via JNI invocation API, it may be best to use a similar memory model.

      There are 3 ways to enable your application to support the large program model:

      • You can patch the binary executable with the following shell command which allows the program "app" to access up to 8 segments (where each segment is 256MB):
          /usr/bin/echo '\0200\0\0\0'|dd of="app" bs=4 count=1 seek=19 conv=notrunc
        Using values of '\0120\0\0\0' or '\0100\0\0\0" would allow the use of 5 or 4 segments of data heap, respectively.
      • You can link the program with the -bmaxdata:0x80000000 flag.
      • For AIX 4.3.3.10 or later, you can override the maxdata setting for an executable with the LDR_CNTRL environment variable:
          export LDR_CNTRL=MAXDATA=0x80000000

      If your application uses a lot of functions like shmat() and mmap(), or if you attach shared memory to fixed addresses in your application, you may need to release some of the 5 segments in Java which have been originally allocated for the data heap.

      To reduce the number of segments allocated for data heap in Java from 5 segments to a smaller number of segments, you can either patch the java (and java_g and jre and jre_g) executables using echo and dd as shown above, or (at AIX 4.3.3.10 and above) use the LDR_CNTRL environment variable.

    JNI Compatibility

      Please note that the specification of JNI has changed slightly from 1.1 to 1.2. In particular, the "penv" argument of JNI_CreateJavaVM and AttachCurrentThread has changed from (JNIEnv **) to (void **).
      Because of incompatibility between the IBM AIX Developer Kit, Java TM2 Technology Edition, Version 1.2.2 and some system defined types, compilation of JNI code requires that the compiler use the flag _AIX43. This flag is defined by default in /etc/ibmcxx.cfg. But, if you are using a version of xlc prior to v3.6.4 then you will need to add _AIX43 to /etc/xlC.cfg or use -D_AIX43 as a compilation command line option. You should also ensure that you are building whilst in the correct IBM AIX Developer Kit, Java TM2 Technology Edition, Version 1.2.2 environment.

      The IBM AIX Developers Kit, Java TM2 Technology Edition, Version 1.2.2 does not support runtime linking (using the -brtl loader option). Any applications built for use with the IBM AIX Developers Kit, Java TM2 Technology Edition, Version 1.2.2 should not rely on runtime linking functionality.

      When executing a JNI program (e.g., a non java application executable that creates and initialises a JVM and then runs .class files on that JVM), you should be sure that the CLASSPATH is set-up correctly to enable the JVM to find your class files. If you modify the Java TM2 boot class path, then you should be sure to include the IBM AIX Developer Kit, JavaTM2 Technology Edition, Version 1.2.2 files necessary to run your applications.

      This product has made use of AIX 4.3.3 extensions to enable faster and more efficient execution without impacting non-Java applications.

      The launchers, and other programs in this release, will use these extensions automatically, but their use by another program requires that it is linked with an additional AIX binder option ("-bM:UR" ). If you develop a JNI program that creates and attaches to the JVM in this and future releases, then this binder option is required.

      A side-effect of this requirement is that such JNI executable programs, including third-party software packages and those built for previous Java software releases on AIX, that were built without this binder option are NOT compatible with the JVM in this release.

      Compatibility of an executable program can be verified using

        dump -ov
      The stdout output will show the modtype to be "UR" .

      A script file (convertJNI) is shipped in the directory /usr/java_dev2/sdk/sh. This script will help you to convert the modtype to UR in the optional header of your JNI executable programs without having to recompile the code.

      The IBM AIX Developer Kit, JavaTM2 Technology Edition, Version 1.2.2 uses an advanced IBM technology called Mixed Mode Interpreter (MMI) which significantly reduces the start up time of the JVM. The MMI and Just In Time (JIT) compiler make use of internal calling conventions and SIGTRAP signals that may make debugging of JNI programs using dbx more difficult.

      The IBM AIX Developer Kit, JavaTM2 Technology Edition, Version 1.2.2 handles various AIX signals. Where signal handlers are installed by JNI invocation API applications prior to launching the JVM, the JVM will attempt to chain to the existing handlers when receiving unexpected signals.

      Java threads created by the IBM AIX Developer Kit, Java TM2 Technology Edition, Version 1.2.2 uses the POSIX (R) pthreads model supported on AIX 4.3.3. Currently this is on a 1 to 1 mapping with the kernel threads. When developing a JNI program, it may be advisable to use this mapping if creating pthreads in your own program. This can be controlled using the following environment setting:

        AIXTHREAD_MNRATIO=1:1
      Note: the old-style native interface is no longer supported.

    JDBC-ODBC Bridge

      The IBM AIX Developer Kit, JavaTM2 Technology Edition, Version 1.2.2 includes a JDBC-ODBC bridge. The bridge assumes that your ODBC driver can support concurrency and therefore you are expected to provide locking in your application if necessary.

      To use the JDBC-ODBC Bridge, you need to set up your own ODBC driver to work with the target database. You should only set up the JDBC-ODBC bridge after you have successfully tested your ODBC driver. Check the following website to obtain information about ODBC drivers for your DB2 Universal database or for non IBM databases. The ODBC driver will typically be in libodbc.a in /usr/lib. This library will be imported during the time when the JDBC-ODBC Bridge library libJdbcOdbc.a is loaded at run time.

      The Bridge is expecting member libodbc.o in libodbc.a. Check the member name in your libodbc.a using the following command:

        dump -H libodbc.a
      If your libodbc.a has a different member name for libodbc.a, for example, odbc.so, then perform the following operations after saving your original libodbc.a in a backup directory.

      To extract and rename the member, then do the following:

        ar -p libodbc.a odbc.so > libodbc.o
      To add the libodbc.o member to libodbc.a, then do the following:
        ar -v -r libodbc.a libodbc.o
      Finally, to delete the odbc.so member from libodbc.a.
        ar -v -d libodbc.a odbc.so
      There are some example programs in the demo directory.

    Enhanced BigDecimal class

      This release of the IBM AIX Developer Kit, JavaTM 2 Technology Edition, Version 1.2.2 provides an enhanced BigDecimal class (com.ibm.math.BigDecimal ), which is provided as an alternative to the java.math.BigDecimal class. The new class (and its supporting MathContext class) is fully implemented and exploits the java.lang.Comparable interface, which is used for sorting in the Java 2 language.

      If you plan to or already use the BigDecimal class and wish to use the enhanced BigDecimal class then use the import statement:

        import com.ibm.math.*;
      instead of the statement:
        import java.math.*;
      No other change to your existing code need be done.

      The new class is automatically available in /usr/java_dev2/jre/lib/rt.jar.

    RMI over IIOP

      Also packaged with this release is an extension to support RMI over IIOP. This allows RMI applications to communicate using the IIOP protocol and interoperate with CORBA applications written in any language.

      For further details of this support, please see /usr/java_dev2/docs/rmi-iiop/readme.html.

    JAAS

      Also packaged with this release is the Java Authentication and Authorization Service ( JAAS ) standard extension which provides Principal-based authorization on authenticated identities.

      For further details of this extension, please see /usr/java_dev2/docs/JAAS/readme.jaas.ibm, after installing the Java_dev2.ext.jaas fileset.

    Java Plugin

      The Java Plugin for AIX should offer the same level of features as the latest Java Plugin for the Solaris operating system. This plugin has been specifically designed for this release, and will not work with earlier Java 1.1.x releases for AIX. In this release, the Java Plugin for AIX JDK 1.2.2 has been updated to the level of the Java Plugin that shipped in AIX JDK 1.3 for improved reliability.
      The AIX install for the Java Plugin now creates symbolic link (javaplugin.a) in /usr/netscape/communicator/plugins, under the assumption that is where Netscape for AIX is installed. The real javaplugin.a file is in /usr/java_dev2/jre/bin. Because of the latest update, the Java Plugin no longer requires a change to the LIBPATH.
      You can alter the properties of the Java Plugin via the control panel, which can be run as either an applet under the plugin or as a standalone Java application. To run the applet, load the page /usr/java_dev2/jre/lib/JavaPluginControlPanel.html in your web browser. To launch the Java application, run the shell script /usr/java_dev2/jre/sh/JavaPluginControlPanel. Note: this shell script has been moved from /usr/java_dev2/jre/lib to /usr/java_dev2/jre/sh in this refresh.
      In addition, the following six files have been intentionally removed from the package (last three replaced with zero length files):
        /usr/java_dev2/jre/bin/java_vm_native
        /usr/java_dev2/jre/bin/libfakesol.a
        /usr/java_dev2/jre/bin/libjavaplugin_moz5.a
        /usr/java_dev2/jre/bin/java_vm_native_g
        /usr/java_dev2/jre/bin/libfakesol_g.a
        /usr/java_dev2/jre/bin/libjavaplugin_moz5_g.a
      The Java Plugin for AIX was designed to work with Netscape 4.5 or above and will not load with earlier versions of the Netscape browser that shipped with the AIX operating system. In addition, if you are using a version of the Netscape browser other than an IBM "i" version (such as Netscape 4.76i), you will need to patch that version with AIX specific fixes available at http://aix.software.ibm.com/aix/efixes/netscape/

    Javacores

      In the unfortunate event of a core dump in your application when using JDK 1.2.2, you will get a javacore text file in addition to the core file. The javacore file has a filename of the format of: javacore<process id>.<time>.txt. The <time> is the return value from the time() subroutine at the time of core dump so each javacore file will not be overwritten as for core files.
      The location of the javacore file will be determined as follows:
        1) If the environment variable IBM_JAVACOREDIR refers to a writable directory, then the javacore file is written to that directory
        2) Otherwise, if the current working directory is writable, the javacore file is written there.
        3) Otherwise, if the environment variable TMPDIR refers to a writable directory, then the javacore file is written to that directory
        4) Otherwise, the javacore file is written to the "/tmp" directory
      The location of the javacore file is written to standard error as a full pathname and is also appended, with a date/time stamp to the file "/tmp/javacore_locations". Basic file locking is used to avoid buried updates of this file.
      If the javacore cannot be opened for some reason, the information will be written to standard error.
      The javacore file provides information of the java program at the time of the core dump. To study JNI native code, you will still need to use the core file.

    Signals

      The Java 1.2.2 Virtual Machine (JVM) uses a small number of signals internally.
      In addition, signal handlers are set for a number of other signals, mainly to allow generation of diagnostic information when major failures occur.
      The signals used internally are:-
        SIGTRAP (signal 5) is used by the JIT as part of a specialised performance technique
        SIGUSR2 (signal 31) is used in JIT compiled code
        SIGJVM1 (signal 40) is used for thread synchronisation, e.g. at GC time
      Signals which are usually trapped and will generate javacore and core, but for which JVM handling may be suppressed by setting the environment variable DISABLE_JAVADUMP=true or setting the "reduce signal usage" command line option (-Xrs) are:-
        SIGABRT (signal 6)
        SIGEMT (signal 7)
        SIGBUS (signal 10)
        SIGSYS (signal 12)
        SIGXCPU (signal 24)
        SIGXFSZ (signal 25)
      Signals which are usually trapped and will generate javacore and core, but for which JVM handling may be suppressed by setting the environment variable DISABLE_JAVADUMP=true are:-
        SIGILL (signal 4)
        SIGFPE (signal 8)
        SIGSEGV (signal 11)
      SIGQUIT (signal 3) is, at present, usually handled and will generate a javacore (but not a core) and then allow the JVM to continue. This can, again, be suppressed by DISABLE_JAVADUMP=true or -Xrs.
      SIGPIPE (signal 13) is ignored.
      At this release of the JVM, our signal handlers will "chain" to pre-existing handlers after performing their action. If the pre-existing signal handler returns, our signal handlers will generate core files if this would normally be their behaviour. The SIGJVM1, SIGUSR2 and SIGTRAP handlers are slightly different - SIGTRAP is never chained, SIGJVM1 and SIGUSR2 are chained only when it is clear that the JVM should not be handling the signal. If the JVM believes that it generated the SIGJVM1 or SIGUSR2 signal, then it will not chain to another handler.
      At present pre-existing handlers will not be reinstated when the JVM exits.
      Other people's code (JNI) may safely supercede most of our signal handlers (which are set up in JVM initialisation, e.g. CreateJavaVM), albeit with some possible loss of diagnostics. Exceptions are the handlers for SIGJVM1, SIGUSR2 and SIGTRAP. These signals must be passed to the JVM. If your code really must handle SIGJVM1, SIGUSR2 or SIGTRAP, you should ensure that your handlers chain to ours - but it would be better not to try to handle these signals.
      The use of SIGTRAP by the JIT may cause significant problems in using debuggers such as dbx with the JVM.

    Java Communications API

      This release includes the Java Communications API 2.0 standard extension which allows Java applications to access RS232 serial ports and IEEE 1284 parallel ports.

      The Java_dev2.ext.commapi fileset provides serial and parallel port definitions and communications drivers.

      For API details see http://www.javasoft.com/products/javacomm/

    AIX fixes

      The minimum supported AIX version is 4.3.3. You can check the current level of bos.rte.libc by using the command:
        lslpp -ah bos.rte.libc
      The Java_dev2.rte package (listed above) requires the following AIX base level filesets for all locales. If they are not already installed, they can be found on the AIX 4.3.3 GA installation media.
        X11.adt.lib 4.3.3.0
        X11.adt.motif 4.3.3.0
        bos.adt.include 4.3.3.0
        bos.adt.prof 4.3.3.0
      In addition, IBM AIX Developer Kit, JavaTM 2 Technology Edition, Version 1.2.2 requires the following APARs be applied to your AIX system for all locales (with the above base level filesets already installed):
      PTF# APAR# Fileset VRMF
      U467183 IY03993 bos.adt.include 4.3.3.1
      U467290 IY06365 bos.net.tcp.client 4.3.3.3
      U467478 IY04069 bos.sysmgt.serv_aid 4.3.3.2
      U467572 IY05690 X11.base.lib 4.3.3.2
      U467473 IY05697 X11.adt.motif 4.3.3.1
      U467558 IY05741 X11.base.rte 4.3.3.2
      U467459 IY05989 X11.Dt.rte 4.3.3.3
      U467557 IY05989 X11.motif.mwm 4.3.3.1
      U467458 IY05990 X11.motif.lib 4.3.3.2
      U467616 IY05990 X11.compat.lib.X11R5 4.3.3.2
      U467283 IY06171 bos.rte.libpthreads 4.3.3.3
      U467444 IY06171 bos.adt.prof 4.3.3.3
      U467222 IY06121 X11.Dt.lib 4.3.3.2
      And ONE of the following two APARs, depending on whether your system is a Uniprocessor (bos.up) or Multiprocessor (bos.mp):
      U467275 IY06625 bos.up 4.3.3.3
      U467531 IY06625 bos.mp 4.3.3.3

      The above APARs for all locales are not on the AIX 4.3.3 GA installation media, but can be obtained from IBM if they are not already on your AIX system. The easiest way to upgrade is using the FixDist tool, available from (see http://service.software.ibm.com/cgi-bin/support/rs6000.support/downloads ).

      The Java_dev2.rte package (listed above) requires the following AIX base level filesets for specific locales or for DBCS locales. If they are not already installed, they can be found on the AIX 4.3.3 GA installation media.

        bos.loc.com.utf 4.3.3.0
        bos.iconv.Vi_VN 4.3.0.0
        bos.loc.iso.zh_TW 4.3.3.0
      In addition, IBM AIX Developer Kit, JavaTM 2 Technology Edition, Version 1.2.2 requires the following APARs be applied to your AIX system for specific locales or DBCS locales (with the above base level filesets already installed):
      PTF# APAR# Fileset VRMF
      U469092 IY06121 bos.loc.iso.th_TH 4.3.3.1
      U469091 IY06121 bos.loc.iso.Vi_VN 4.3.3.1
      U467545 IY05472 bos.loc.iso.zh_TW 4.3.3.1

      The above APARs, for specific or DBCS locales, are not on the AIX 4.3.3 GA installation media, but can be obtained from IBM if they are not already on your AIX system. The easiest way to upgrade is using the FixDist tool, available from (see http://service.software.ibm.com/cgi-bin/support/rs6000.support/downloads ).

    Printing problems

      If you have difficulty with print operations, try increasing the size of the default file system used for print spooling to be larger than the printed postscript file size.

    appletviewer

      There is a known problem with running the IBM AIX 1.2.2 Java TM appletviewer for the first time without specifying any input parameters. Appletviewer will show its command syntax and not return to the command prompt. To avoid this problem, inspect the .hotjava/properties file under your home directory for the line
        appletviewer.version=1.2
      If you do not have the .hotjava sub directory, then create the .hotjava sub directory under your home directory. If you do not have the properties file, then create one with the specified appletviewer.version line. If you have a properties file from a previous Java version, then edit the properties file and change the appletviewer.version line to match the line above.

      After you have made the changes to the .hotjava/properties file, then you should be able to run the appletviewer.

    Euro support

      Support for the new European Union currency, the Euro, is included in this release of the IBM AIX Developer Kit, JavaTM 2 Technology Edition, Version 1.2.2. Platform-level support is required to make use of this, as follows.

      On AIX 4.3.3 (and upwards) the Euro is supported via the new UTF8 locales. This is the primary mechanism for Euro support on the AIX operating system. Applications can then make use of the Euro symbol, which looks like a C with an = superimposed on it and can be created using Unicode character '\u20AC'. Euro variants of Java software locales, which provide the appropriate currency formatting, can also be used by Java applications. The environment variable LC_MONETARY is currently not used by this Java implementation, the default is always the national currency.

      For more information on IBM's position on the Euro currency, see http://www.ibm.com/euro.

    Font sizes on Japanese, Chinese, and Korean locales

      If you have problems with the size of fonts for Japanese, Chinese and Korean locales, then try modifying your environment as follows to increase their size:
        JAVA_FONT_OFFSET=4
        export JAVA_FONT_OFFSET
      As before, you can set the variable to any offset, under any locale. The offset is added to the point size requested by the Java code, and it can be positive or negative. The default is now 0 for all locales.

      Note: use of this variable is discouraged, and it may be removed at a later date.

    HPROF Performance Profiler and JVMPI

      The Java Virtual Machine Profiling Interface (JVMPI) has been extended to include profiling in the IBM JIT. These additional definitions are defined in jvmpi.h.

      In the IBM AIX Developer Kit, JavaTM 2 Technology Edition, Version 1.2.2, CPU times are not able to be recorded through the HPROF profiler tool. This restriction also applies to any tools that make use of the JVMPI. As a result, CPU times will be returned as 0 from the JVMPI and displayed as NaN in the HPROF output.

      IBM intends to fully support the JVMPI and these temporary restrictions are planned to be lifted in a future release of the IBM AIX Developer Kit, JavaTM2 Technology Edition or earlier.

    JDB debugger

      There are no longer any constraints on using the JDB debugger in the IBM AIX Developer Kit, JavaTM2 Technology Edition, Version 1.2.2. Earlier versions required the JDB debuggerto be invoked by the jdb_g command only; the jdb command was not available. This version of the IBM AIX Developer Kit, JavaTM2 Technology Edition, Version 1.2.2 supports both jdb and jdb_g.

      IBM now fully supports the Java Virtual Machine Debugging Interface (JVMDI).

    Color problems

      In many Java applications, if the foreground color is not specified and the background is set to white, then the display would be invisible.

      There are two ways to correct this problem:
       

      1. The source code should be modified to include specifications for foreground colors; or
      2. If the source code is not available, then the user may set environment variable JAVA_FIXCOLORS to a value of 1 to emulate the color behaviour of Java 1.1.x implementations, that is
        • export JAVA_FIXCOLORS=1
      Note: Use of this variable is discouraged, and it may be removed at a later date.

    Text problems

      Certain performance enhancements have been added to improve text draw operations in the case of simple text. If you experience problems with text or with fonts, try disabling this performance enhancement by setting the environment variable
        export JAVA2D_USEAWTFONTS=0

    Signature problems

      In Java applications involving java.security.Signature#sign() , signing performance may be an issue.

      This has been found to be related to garbage collection of the java.secure.SecureRandom class. If the class is repeatedly GC'ed and then reloaded, startup times for initialisation of the random number generator can make a significant impact on performance.

      There are three ways to correct the problem:

      1. Specify the -noclassgc option that is java -noclassgc classname
        (This may cause a slow memory leak in the heap if classes are recycled, e.g. in Web servers)
      2. Increase the heap size via the -Xms and -Xmx command line options
        (This may or may not be successful)
      3. Retain a java.security.SecureRandom object in the user application, thereby inhibiting GC of the class
        (This, though not elegant in programming terms, is probably the most effective "fix")

Supported locales

    The TRANSLATIONS column indicates the locales that have native language messages for javac and appletviewer.

    Support for the new UTF8 locales has been added, and so has support for IBM-1252 locales, either of which is required to make use of the Euro currency functionality.

    There is a known problem with "Yen" and backslash characters having the same value for locale Ja_JP. This problem will be resolved when the codepage support for Cp943c ( Ja_JP.IBM-943) and Cp942c ( Ja_JP.IBM-942) in AIX is fixed.

    LOCALE NAME ENCODING TRANSLATIONS
    Albanian SQ_AL UTF8  
      SQ_AL UTF8  
    Arabic AR_AA UTF8  
      AR_AA UTF8  
    Bulgarian bg_BG ISO8859-5  
      BG_BG UTF8  
    Byelorussian BE_BY UTF8  
    Catalan ca_ES ISO8859-1  
      ca_ES IBM-1252  
      CA_ES UTF8  
      Ca_ES IBM-850  
    Chinese (Simplified) zh_CN GB2312 yes
      Zh_CN GBK yes
      ZH_CN UTF8 yes
    Chinese (Traditional) Zh_TW Cp950 yes
      zh_TW Cp964 yes
      ZH_TW UTF8 yes
    Croatian hr_HR ISO8859-2  
      HR_HR UTF8  
    Czech cs_CZ ISO8859-2  
      CS_CZ UTF8  
    Danish da_DK ISO8859-1  
      Da_DK IBM-850  
      DA_DK UTF8  
    Dutch (Belgium) nl_BE ISO8859-1  
      nl_BE IBM-1252  
      Nl_BE IBM-850  
      NL_BE UTF8  
    Dutch nl_NL ISO8859-1  
      nl_NL IBM-1252  
      NL_NL UTF8  
      Nl_NL IBM-850  
    English (Great Britain) en_GB ISO8859-1  yes
      EN_GB UTF8 yes
      En_GB IBM-850 yes
    English (United States) en_US ISO8859-1 yes
      EN_US UTF8 yes
      En_US IBM-850 yes
    Estonian ET_EE UTF8  
    Finnish fi_FI ISO8859-1  
      fi_FI IBM-1252  
      FI_FI UTF8  
      Fi_FI IBM-850  
    French (Belgium) fr_BE ISO8859-1 yes
      fr_BE IBM-1252 yes
      FR_BE UTF8 yes
      Fr_BE IBM-850 yes
    French (Canada) fr_CA ISO8859-1 yes
      FR_CA UTF8 yes
      Fr_CA IBM-850 yes
    French (France) fr_FR ISO8859-1 yes
      fr_FR IBM-1252 yes
      FR_FR UTF8 yes
      Fr_FR IBM-850 yes
    French (Switzerland) fr_CH ISO8859-1 yes
      FR_CH UTF8 yes
      Fr_CH IBM-850 yes
    German de_DE ISO8859-1 yes
      de_DE IBM-1252 yes
      DE_DE UTF8 yes
      De_DE IBM-850 yes
    German (Switzerland) de_CH ISO8859-1 yes
      DE_CH UTF8 yes
      De_CH IBM-850 yes
    Greek el_GR ISO8859-7  
      EL_GR UTF8  
    Hebrew HE_IL UTF8  
    Hungarian hu_HU ISO8859-2  
      HU_HU UTF8  
    Icelandic is_IS ISO8859-1  
      IS_IS UTF8  
      Is_IS IBM-850  
    Italian it_IT ISO8859-1 yes
      it_IT IBM-1252  
      IT_IT UTF8 yes
      It_IT IBM-850 yes
    Japanese ja_JP IBM-eucJP yes
      Ja_JP IBM-932 yes
      Ja_JP IBM-943 yes
      JA_JP UTF8 yes
    Korean ko_KR KSC5601 yes
      KO_KR UTF8  
    Latvian LV_LV UTF8  
    Lithuanian LT_LT UTF8  
    Macedonian mk_MK ISO8859-5  
      MK_MK UTF8  
    Norwegian no_NO ISO8859-1  
      NO_NO UTF8  
      No_NO IBM-850  
    Polish pl_PL ISO8859-2  
      PL_PL UTF8  
    Portuguese (Brazil) pt_BR ISO8859-1 yes
      PT_BR UTF8 yes
      Pt_BR IBM-850 yes
    Portuguese pt_PT ISO8859-1  
      pt_PT IBM-1252  
      PT_PT UTF8  
      Pt_PT IBM-850  
    Romanian RO_RO UTF8  
    Russian ru_RU ISO8859-5  
      RU_RU UTF8  
    Serbian Cyrillic SR_SP UTF8  
    Serbian Latin SH_SP UTF8  
    Slovak SK_SK UTF8  
      sk_SK ISO8859-2  
    Slovene SL_SI UTF8  
    Spanish es_ES ISO8859-1 yes
      es_ES IBM-1252 yes
      Es_ES IBM-850 yes
      ES_ES UTF8 yes
    Swedish sv_SE ISO8859-1 yes
      Sv_SE IBM-850 yes
      SV_SE UTF8 yes
    Thai th_TH TIS-620
      TH_TH UTF8  
    Turkish TR_TR UTF8  
    Ukrainian UK_UA UTF8  
    Vietnamese VI_VN UTF8  

Correspondence

Other links

  Contents
AIX overview
AIX FAQs
Download and service information
Security
Diagnosis documentation

 
    About IBM Privacy Contact