Copyright (c) 1996,1998,1999 IBM Corporation.
Build date: 09 May 2002
Release name: 1.1.8
Full version: JDK 1.1.8 IBM build a118-20020509
This is the latest release of the AIX Developer Kit, Java Technology Edition,
Version 1.1.8. It is based on the Sun FCS 1.1.8 Solaris code base and the IBM
AIX 1.1.6 JDK release. In addition we have added the following:
- A version of the JDBC-ODBC bridge backported from 1.2
- An optionally installable Security Migration Aid for Java backported from 1.2
- A new RMI-IIOP package
- A new Big Decimal class package
- An enhanced JIT compiler
- Numerous fixes engineered jointly between IBM and Sun
Features
- Fully Java (tm) compatible -- Write Once, Run Anywhere
- Performance enhancements:
- IBM Tokyo Research Labs optimizing JIT compiler version 3.1
- "Handle-less" machine model
- Fast, lightweight monitors
- Thread-local heap
- Support for the new European Union currency, the Euro. See
Section 10 below for more details.
- Scaling support for large numbers of threads and large numbers of
file handles is better with this release. To get maximum scaling, do
the following:
- For maximum threads (with JIT), we suggest setting
-ss32k as the minimum
stacksize (-ss setting is 256 KB by default and can be as small as
16 KB; a smaller setting allows for a larger number of threads)
- For maximum file handles use command
ulimit or chuser to
increase the limit (ulimit -a shows current limit).
Note: -mx settings in excess of 512 MB now work correctly
- Support for display in the
sk_SK locale.
Note The software contained in this package may only be used on AIX Version
4.2.1 or later. It is NOT supported on earlier versions.
This README file is part of a distribution and is applicable only to that
particular distribution. Please ensure that you have the README file
appropriate to the package you are using. After installation, the response
to java -fullversion should be JDK 1.1.8 IBM build a118-20020509.
Installation
Installp image After AIX installation the minimum Java installation (Java.rte) may have been
completed, but you can also download a release.
The installp image comes in the form of six files:
Java.adt
Java.rte
Java.samples
Java.rmi-iiop
Java.security
Java.swing
|
To install the Application Development Kit or the samples, use the installp
command or the system management GUI of your choice. The fileset names are:
Java.adt.docs
Java.adt.includes
Java.adt.src
Java.rte.Dt
Java.rte.bin
Java.rte.classes
Java.rte.lib
Java.samples.AIXDemos
Java.samples.demos
Java.samples.examples
Java.rmi-iiop.bin
Java.rmi-iiop.docs
Java.rmi-iiop.lib
Java.rmi-iiop.samples
Java.security.docs
Java.security.lib
Java.swing.doc
Java.swing.examples
Java.swing.lib
Java.swing.src
|
The software will be installed in the directory
/usr/jdk_base/.
Set up your PATH environment variable to refer to the new installation:
export PATH=/usr/jdk_base/bin:$PATH
|
Installation prerequisites for appletviewer to play audio on AIX For appletviewer to play audio on AIX, please ensure that the following packages are installed:
UMS.H_32x 2.2.0.1 COMMITTED AIX Ultimedia Services H.32x
UMS.demo 2.2.0.0 COMMITTED AIX Ultimedia Services Demo
UMS.html.en_US.prog_gd 4.3.0.0 COMMITTED Ultimedia Programming - U. S.
UMS.html.en_US.user_gd 4.3.0.0 COMMITTED Ultimedia User Guides - U. S.
UMS.loc.en_US.objects 2.2.0.0 COMMITTED Ultimedia Services Locales -
UMS.msg.en_US.objects 2.2.0.0 COMMITTED AIX Ultimedia Services
UMS.objects 2.2.0.1 COMMITTED AIX Ultimedia Services
UMS.samples 2.2.0.0 COMMITTED AIX Ultimedia Services Samples
UMS.speech 2.2.0.0 COMMITTED AIX Ultimedia Services Speech
UMS.video_ext 2.2.0.1 COMMITTED AIX Ultimedia Services Video
UMS.H_32x 2.2.0.0 COMMITTED AIX Ultimedia Services H.32x
UMS.demo 2.2.0.0 COMMITTED AIX Ultimedia Services Demo
UMS.loc.en_US.objects 2.2.0.0 COMMITTED Ultimedia Services Locales -
UMS.objects 2.2.0.0 COMMITTED AIX Ultimedia Services
UMS.speech 2.2.0.0 COMMITTED AIX Ultimedia Services Speech
|
These filesets are available in bonus pack CD of AIX 4.3.1 and higher.
Note: The versions of the filesets listed above may be higher depending on the version of the AIX OS that you're using.
Verification To ensure that the verification process behaves consistently, do 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:
java full version "JDK 1.1.8 IBM build a118-20020509"
|
If this is not correct, check that the PATH is set up correctly. (See above).
Once verification is complete, relogin and review any values you may have
assigned to these variables for possible conflicts with the new installation.
Unless it already exists, executing appletviewer will create a directory
called .hotjava in your home directory. Issuing ls -a ~ should confirm this.
Just-in-Time (JIT) compiler The JIT compiler, which speeds up execution of Java, is included in this
release, and is now enabled by default.
To disable the Just In Time (JIT) compiler, set the JAVA_COMPILER environment
variable to off. This can be done in one of the following ways:
For the Korn shell:
For the Bourne shell:
JAVA_COMPILER=off
export JAVA_COMPILER
|
For the C shell:
Alternatively, the JAVA_COMPILER environment variable can be overridden from
the command line using the -Djava.compiler option. For example,
java -Djava.compiler=off <classname> switches off the JIT, and
java -Djava.compiler=<anything except off> <classname> switches on the JIT.
It is also possible to specify a specific JIT -- the default is jitc. To do this
set JAVA_COMPILER=<specific jit> or use the command -line option, that is:
java.compiler=<specific jit>. As the JIT compiler is updated, we will include
earlier versions of the JIT with the JDK release. The current jit version is
v3.0.
Note that if you use JAVA_COMPILER="" or java.compiler="", then the JIT will be switched
off. If JAVA_COMPILER is set but set to nothing or -Djava.compiler is used with
no =, then the default HIT is swtiched on. The default JIT will always be the
latest version. Also note that NONE can be used as an alternative to off.
AIX The JDK uses AIX's POSIX threads (pthread) package for its threading. This
means that Java threads can be scheduled on multiple processors on
multi-processor systems.
Thread priorities are not supported. All threads run at the same priority.
The green threads implementation released with JDK1.0.2 is no longer
supported.
Java requires all of its threads to use system contention scope. The executable
tools that are distributed with the JDK -- java, java_g, etc., have been compiled
and linked to ensure that system contention scope threads are used. However,
it is possible for JNI invocation of API applications, which have their own
executables, to inadvertantly create and attach process contention scope threads
to the JVM. This can cause hangs and crashes due to signaling and GC problems
with process contention scope threads and the JVM. Applications built on
AIX4.3+ will use process contention scope threads by default, so explicit
action needs to be taken to ensure that these applications use system contention
scope threads at runtime. There are two ways to achieve this:
- Set the environment variable
AIXTHREAD_SCOPE=S. This will cause all
threads to be created with system contention scope by default. -
Specify system scope explicitly in the
pthread attributes structure
when creating a pthread to attach to the JVM. See the AIX
system documentation on pthreads for more details.
JNI example In the examples/jni_example directory, you will find a simple example of the
use of the new JNI interface for native methods introduced in 1.1.
The file jni_example/README contains information about the example, plus
general notes on shared libraries.
/p>
The IBM AIX Developer Kit, Java Technology Edition, Version 1.1.8 does not
support runtime linking (using the -brtl loader option). Any applications built
for use with the IBM AIX Developer Kit, Technology Edition, Version 1.1.8 should
not rely on runtime linking functionality.
A note about JNI on AIX 4.3: because of some incompatibility between the JDK 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.
Also, please refer to the notes in Section 6 regarding
thread-scope and JNI invocation API applications.
Large program model support The JVM of The IBM AIX Developer Kit, Java Technology Edition,
Version 1.1.8 can support large program model. For more details
on large program model, see:
http://www.rs6000.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/genprogc/larg_prg_support.htm.
The 1.1.8 JVM's launcher executables (java, java_g, jre and jre_g)
are built to use the default small memory model. This limits the
memory available to malloc() etc., which in turn limits the
number of threads running simultaneously. While the small memory
model should prove adequate for most Java applications, there
are likely to be some heavyweight applications which require
the large memory model to support large native structures, or
large numbers of threads.
There are three ways to enable Java and 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 256 MB):
/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 enable 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 will not want to allocate all 8 segments for the
data heap. Use a smaller setting to suit your application.
AIX files There are AIX bugs that occurs in certain versions which may affect Java.
In version 4.2.0.0, there is a problem with the thread-safe function
gethostbyaddr_r. It returns an empty string. This has been worked around in
JDK1.1.2 and later versions, but the workaround is not entirely thread-safe,
so it may fail in thread-intensive applications.
To rectify the problem, you need to upgrade the following filesets to these
levels:
bos.rte.libc 4.2.0.7
bos.rte.libnetsvc 4.2.0.1
bos.rte.libs 4.2.0.5
bos.rte.security 4.2.0.7
bos.up 4.2.0.12
|
You can check the current level of bos.rte.libc with this command:
The easiest way to upgrade is using the FixDist tool, available from:
http://service.software.ibm.com/cgi-bin/support/rs6000.support/downloads.
FixDist allows the user to select and download fixes based on fileset level
(as above), as well as APAR number.
In version 4.3.* there can be some problems with version 4.0.0.* of the
xlC libraries.
These manifest themselves as failures at JVM shutdown, with stack traces
(see javacores, dbx the core file or in errpt -add output) of the form:
signal.pthread_kill
signal._p_raise
raise.raise
abort.abort
_Getcat__Q2_3std8messagesXTw_FPPCQ3_3std6locale5facet
terminate__3stdFv
terminate__Fv
except.__DoThrow
__dt__12__short_lockFv
__sterm_x_2fu_5fC_2b_2b_2fmcnamara_2fusltusc299_2fstream_2fstream_2ec__Fi
terminate_orig_libs__Fv
cuexit.exit
sysExit
|
To fix this, apply the 5.0.0.4 libraries as indicated by APAR IY14529.
The base level filesets for the 5.0 C++ Runtime are at
http://www-4.ibm.com/software/ad/vacpp/service/csd.html#redistribute.
To find the latest C++ runtime PTFs, search for APAR IY14529 on
http://techsupport.services.ibm.com/support/rs6000
under "SW Fix Database by APAR".
Supported locales, and how to run programs in different locales Note that the encoding for some locales has changed at PTF4.
A full list of the changes appears below.
Also note that an alternative fonts.properties.zh file has been made available
for the zh_CN locale for AIX 4.3.3 and above at PTF5. The new file enables
new fonts, but requires special instalation. Details appear below.
To run in a locale other than the default, you must first have the locale
fully installed. You can use the SMIT tool (System Environments/Manage Language
Environment) to install a new locale. You can check the installed locales with
the locale -a command.
Then, you must set the LC_ALL and LANG environment variables. For example, to
run in Japanese, use the following (in Korn Shell):
export LC_ALL=JA_JP
export LANG=JA_JP
java MyProgram
|
Please note that the locales listed in the "AIX Locale" column below are the only
ones supported by Java. So, if you need to use the EUC encoding of Japanese,
you must set LC_ALL and LANG to ja_JP, not to ja_JP.IBM-eucJP. Similarly,
any long locale names not listed in the table below are not supported by Java.
Also note that the long names currently supported (such as Ja_JP.IBM-932) are
present purely for temporary backwards compatability and may be phased out in
the future. We also recommend you use the new UTF-8 locales where possible, for
example JA_JP rather than ja_JP.
The "Translations" column indicates the locales that have native language
messages for Gava. If there are no translations, all messages will be in
English.
LANGUAGE AIX LOCALE ENCODING TRANSLATIONS
====== ========== ======== ============
Albanian SQ_AL UTF-8
Arabic AR_AA UTF-8
Bulgarian bg_BG ISO8859-5
BG_BG UTF-8
Byelorussian BE_BY UTF-8
Catalan ca_ES ISO8859-1
ca_ES.IBM-1252 IBM-1252
CA_ES UTF-8
Ca_ES IBM-850
Chinese (Simplified) zh_CN GB2312 yes
Zh_CN GBK yes
ZH_CN UTF-8 yes
Chinese (Traditional) Zh_TW Big5 yes
zh_TW CNS11643 yes
ZH_TW UTF-8 yes
Croatian hr_HR ISO8859-2
HR_HR UTF-8
Czech cs_CZ ISO8859-2
CS_CZ UTF-8
Danish da_DK ISO8859-1
Da_DK IBM-850
DA_DK UTF-8
Dutch (Belgium) nl_BE ISO8859-1
nl_BE.IBM-1252 IBM-1252
Nl_BE IBM-850
NL_BE UTF-8
Dutch nl_NL ISO8859-1
nl_NL.IBM-1252 IBM-1252
Nl_NL IBM-850
NL_NL UTF-8
English (Great Britain) en_GB ISO8859-1 yes
En_GB IBM-850 yes
EN_GB UTF-8 yes
English (United States) en_US ISO8859-1 yes
En_US IBM-850 yes
EN_US UTF-8 yes
Estonian ET_EE UTF-8
Finnish fi_FI ISO8859-1
fi_FI.IBM-1252 IBM-1252
Fi_FI IBM-850
FI_FI UTF-8
French (Belgium) fr_BE ISO8859-1 yes
fr_BE.IBM-1252 IBM-1252 yes
Fr_BE IBM-850 yes
FR_BE UTF-8 yes
French (Canada) fr_CA ISO8859-1 yes
Fr_CA IBM-850 yes
FR_CA UTF-8 yes
French fr_FR ISO8859-1 yes
fr_FR.IBM-1252 IBM-1252 yes
Fr_FR IBM-850 yes
FR_FR UTF-8 yes
French (Switzerland) fr_CH ISO8859-1 yes
Fr_CH IBM-850 yes
FR_CH UTF-8 yes
German de_DE ISO8859-1 yes
de_DE.IBM-1252 IBM-1252 yes
De_DE IBM-850 yes
DE_DE UTF-8 yes
German (Switzerland) de_CH ISO8859-1 yes
De_CH IBM-850 yes
DE_CH UTF-8 yes
Greek el_GR ISO8859-7
EL_GR UTF-8
Hebrew HE_IL UTF-8
Hungarian hu_HU ISO8859-2
HU_HU UTF-8
Icelandic is_IS ISO8859-1
Is_IS IBM-850
IS_IS UTF-8
Italian it_IT ISO8859-1 yes
it_IT.IBM-1252 IBM-1252
It_IT IBM-850 yes
IT_IT UTF-8 yes
Japanese ja_JP IBM-33722C yes
Ja_JP (AIX < 4.3.2) IBM-942C yes
Ja_JP (AIX >= 4.3.2) IBM-943C yes
Ja_JP.IBM-932 IBM-942C yes
Ja_JP.IBM-943 IBM-943C yes
JA_JP UTF-8 yes
Korean ko_KR KSC5601 yes
KO_KR UTF-8
Latvian LV_LV UTF-8
Lithuanian LT_LT UTF-8
Macedonian mk_MK ISO8859-5
MK_MK UTF-8
Norwegian no_NO ISO8859-1
No_NO IBM-850
NO_NO UTF-8
Polish pl_PL ISO8859-2
PL_PL UTF-8
Portuguese (Brazil) pt_BR ISO8859-1 yes
Pt_BR IBM-850 yes
PT_BR UTF-8 yes
Portuguese pt_PT ISO8859-1
pt_PT.IBM-1252 IBM-1252
Pt_PT IBM-850
PT_PT UTF-8
Romanian RO_RO UTF-8
Russian ru_RU ISO8859-5
RU_RU UTF-8
Serbian Cyrillic SR_SP UTF-8
Serbian Latin SH_SP UTF-8
Slovak SK_SK UTF-8
sk_SK ISO8859-2
Slovene SL_SI UTF-8
Spanish es_ES ISO8859-1 yes
es_ES.IBM-1252 IBM-1252 yes
Es_ES IBM-850 yes
ES_ES UTF-8 yes
Swedish sv_SE ISO8859-1 yes
Sv_SE IBM-850 yes
SV_SE UTF-8 yes
Thai TH_TH UTF-8
Turkish TR_TR UTF-8
Ukrainian UK_UA UTF-8
Vietnamese VI_VN UTF-8
|
The following changes were made at PTF4:
AIX LOCALE PREVIOUS ENCODING CURRENT ENCODING
========== ================= ================
ja_JP eucJIS IBM-33722C
Ja_JP JIS IBM-942C/IBM-943C
Ja_JP.IBM-932 IBM-942 IBM-942C
Ja_JP.IBM-943 IBM-943 IBM-943C
|
The changes allow Java to translate the IBM entended kanjis, and
also fix javac compilation problems due to backslash/yen translations.
Note that for locale Ja_JP, the encoding used depends on the AIX
operating system level. For this locale on AIX 4.3.1 and earlier,
IBM-942C is used, but on AIX 4.3.2 and later, IBM-943C is used. This
matches the change made to the native encoding for the Ja_JP locale
at AIX 4.3.2.
There's also new zh_CN font support at PTF5. Java by default uses the 17-point fonts
-ibm_aix-song-medium-r-normal--*-%d-*-*-m-*-*-*
in the zh_CN locale. This font is large (17-point) which can cause problems
with AWT layout.
On AIX 4.3.3 the 13-point fonts
-monotype-sansmonowt-medium-r-normal--*-%d-*-*-m-*-*-*
are available. To check whether your system has the new fonts, go to
directory /usr/lib/X11/fonts/, and issue the command:
> grep monotype-sansmonowt- fonts.dir
|
You should see output containing the lines:
gb18tt.pcf.Z -monotype-sansmonowt-medium-r-normal--18-130-100-100-m-90-gb2312.1980-0
rom9tt.pcf.Z -monotype-sansmonowt-medium-r-normal--18-130-100-100-m-90-iso8859-1
|
If these lines do not appear, then the new fonts are not available
on your system.
To enable use of the new fonts in Java, go to the
<JAVA_HOME>/lib directory and issue the following commands:
> mv font.properties.zh font.properties.zh.orig
> cp font.properties.zh.4.3.3 font.properties.zh
|
In order to restore the original settings, restore the original file
as follows:
> cp font.properties.zh.orig font.properties.zh
|
Note that when displaying on an X server on a remote machine, the
remote machine should also support the new fonts.
Euro support Support for the new European Union currency, the Euro, is included in
the JDK. Platform-level support is required to make use of this, as
follows:
On AIX 4.3.2 (and upwards) the Euro is supported via the new UTF-8
locales. This is the primary mechanism for Euro support on AIX.
On AIX 4.2.1 the Euro is supported via the "Single Byte Euro Migration
Option" which is available as APAR IX83167. This adds the Euro to
IBM-1252 encodings of the following locales: ca_ES, de_DE, fr_FR,
es_ES, fi_FI, fr_BE, nl_NL, nl_BE, pt_PT, and it_IT. After installing
the patch and restarting your X server, you need to set the LANG and
LC_ALL environment variables to the full locale, for example
de_DE.IBM-1252, and then start a dtterm, so that it uses the correct
fonts.
There is no Euro support on any older versions of AIX.
With either of the above options, applications can then make use of
the Euro symbol (using the Unicode character \u20AC) and Euro variants
of Java Locales, which provide the appropriate currency formatting.
The environment variable LC_MONETARY is currently not used by Java --
the default is always the national currency. To get a Euro currency
locale, each application needs to create a "EURO" variant of a Java
Locale.
For more information on IBM's position on the Euro currency, see:
http://www.ibm.com/euro.
JDBC-ODBC bridge An edition of JDBC-ODBC Bridge is backported from JDK 1.2 to JDK 1.1.x.
Security Model for the Bridge remains unchanged as for JDK 1.1.x.
JNI Interface is used in this AIX version. This verion assumes that
your ODBC driver can support concurrency and you are expected to provide
locking in your application if necessary.
In the examples/jdbcodbc_example directory, you will find a sample Java
program using the JDBC-ODBC Bridge to connect to a target database.
A C sample program is also provided for you to test your direct ODBC
connection.
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.
The file jdbcodbc_example/README contains information about the sample
programs and also information on how to set up the environment to use
the JDBC-ODBC Bridge.
Enhanced BigDecimal class This release introduces an enhanced BigDecimal class (com.ibm.math.BigDecimal)
for Java, which is provided as an alternative for java.math.BigDecimal. The
new class (and its supporting class MathContext) is fully implemented and
exploits the interface java.lang.Comparable which is used for sorting in Java 2.
This interface is included in the classes provided with this enhancement,
renamed as com.ibm.math.java.lang.Comparable.
If you already use that BigDecimal class, you can probably simply change the
import statement import java.math.*;
to
import com.ibm.math.*;
to access the new class without changing any other code.
The new class is available in /usr/jdk_base/lib/math.jar and the .java_wrapper
script is updated to include this JAR file at the end of the CLASSPATH
environment variable. If you launch your Java programs differently, then
you need to add this JAR file into your own CLASSPATH.
API documentation is included in the /usr/jdk_base/bigdecimal/docs
directory. A small example program decdemo.java and README.dec are available
in the /usr/jdk_base/examples/bigdecimal directory.
RMI-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.
The runtime support for RMI-IIOP is packaged within Java.rte. The .java_wrapper
script is updated to include the RMI-IIOP runtime at the end of the CLASSPATH.
The developer support is in the optional Java.rmi-iiop package. When you
install the RMI-IIOP developer support, you replace rmic with a new version
which supports the generation of IIOP stubs and ties, and is backward-
compatible for JRMP.
See the RMI-IIOP readme (/usr/jdk_base/rmi-iiop/readme.html) for detailed
information.
Security migration aid Also packaged with this release is an optionally installable Security
Migration Aid for Java.
The Security Migration Aid allows users of IBM's Java Development
Kit (JDK) version 1.1.8 to exploit enhancements in the Java security
model defined in Java 1.2 without having to use a 1.2 version of the Java JDK.
The Security Migration Aid is intended to help users who wish to migrate
from the, relatively simple, Java 1.1 security model to the finer grained
Java 1.2 model. The Security Migration Aid features support the
use of security policies, permissions, tools and Java runtime security
managers as defined in the Java 1.2 security model. Applet development
using features of the 1.2 security model is supported and
the Security Migration Aid includes an applet viewer that implements
the expected security policies and checks as defined by the user.
The Security Migration Aid consists of new, security related Java classes,
packaged by IBM (in com.ibm.security12 and optionally installable)
but that appear functionally like their Java 1.2 equivalents.
These IBM classes run in the JDK 1.2 environment together with
some additional supporting classes and native code.
Applications, applets, and data files can make use of Java 1.2
security features without the need for users to develop equivalent,
fine grained, security mechanisms and resulting in systems that are
more easily ported to a Java 1.2 environment.
The Migration Aid is optionally installable from the material in
/usr/jdk_base/security and once installed will place a JAR file
containing the Security Migration Aid Classes (SecMA.jar) in the
directory alongside the JDK classes.zip file and a native shared
library (libSecMA.a) alongside the core JDK's shared libraries in
/usr/jdk_base/lib/aix/native_threads.
Once installed, the Security Migration Aid's features can be used
by placing its JAR file (/usr/jdk_base/lib/SecMA.jar) ahead of the
standard JDK classes in the classpath. The install process
additionally places some example security configuration files alongside
the original JDK security.java file in /usr/jdk_base/lib/security/
that can be used as templates for configuration of a Migration Aid
security policy.
Additional documentation can be found in the /usr/jdk_base/security/docs
directory once the Security Migration Aid documentation is installed.
A more detailed version of this README information for the Security
Migration Aid is installed to /usr/jdk_base/security/README.SecMA
when the Security Migration Aid is installed.
javacore.txt In the unfortunate event of a core dump in your application when using
JDK 1.1.8, you will get a javacore text file in addition to the core file.
At service refresh 10 and above, 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:
- If the environment variable
IBM_JAVACOREDIR refers to a writable
directory, then the javacore file is written to that directory -
Otherwise, if the current working directory is writable, the javacore
file is written there.
-
Otherwise, if the environment variable
TMPDIR refers to a writable
directory, then the javacore file is written to that directory -
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.1.8 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:
SIGJVM1 (signal 40) is used for thread synchronisation, e.g. at GC time.
SIGUSR2 (signal 31) is used in JIT compiled code.
SIGTRAP (signal 5) is used by the JIT as part of a specialised performance technique.
Signals which are always trapped, and which will (if possible) generate a javacore file
and (if appropriate) an AIX core dump file, are:
SIGTRAP (signal 5) if JIT is not in use
SIGXCPU (signal 24)
SIGXFSZ (signal 25)
SIGALRM (signal 14)
SIGABRT (signal 6)
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)
SIGBUS (signal 10)
SIGSEGV (signal 11)
SIGSYS (signal 12)
SIGQUIT (signal 3) is, at present, always handled and will generate a javacore> (but not
a core) and then allow the JVM to continue.
SIGPIPE (signal 13) is ignored.
At this release of the JVM, our signal handlers will not "chain" to pre-existing handlers,
but pre-existing handlers for the following signals will be reinstated when the JVM exits:
SIGJVM1 (signal 40)
SIGUSR2 (signal 31)
SIGILL (signal 4)
SIGFPE (signal 8)
SIGBUS (signal 10)
SIGSEGV (signal 11)
SIGSYS (signal 12)
SIGABRT (signal 6)
SIGQUIT (signal 3)
SIGPIPE (signal 13)
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.
Notices Licensees of this program who wish to have information about it for the
purpose of enabling: (i) the exchange of information between independently
created programs and other programs (including this one) and (ii) the mutual
use of the information which has been exchanged, should contact:
JTCMAIL@uk.ibm.com.
Such information may be available, subject to appropriate terms and conditions,
including in some cases, payment of a fee.
Revision history
25 Feb 97 - Release of IBM1.1-FCS-beta1
11 Mar 97 - Release of IBM1.1-FCS-beta2, which fixes the following:
* a security problem pointed out by JavaSoft
* non-compliance in Math.atan and Math.ceil to do with positive vs.
negative zero.
* problem with exception on 'daload' instruction
* problems with the generation of OutOfMemoryError,
IncompatibleClassChangeError, and IllegalMonitorStateException.
* java crashed when used with the '-prof' option.
11 Apr 97 - Release of IBM1.1, which fixes the following:
* It now complies with the Java Compliance Kit.
* Thread.interrupt() did not properly interrupt a thread waiting
on a monitor.
* JNI_CreateJavaVM() (part of the JNI interface) failed with an
error status if LD_LIBRARY_PATH was not set to anything.
* A blocking I/O call, suck as ServerSocket.accept() could not be
interrupted by Thread.stop()
* Japanese fonts added.
* Closing a socket output stream sometimes did not flush output to
the socket correctly.
* java.net.InetAddress.getByName(..) (and hence other functions
like getLocalHost() which call it) would sometimes crash.
22 Apr 97 - Release of IBM1.1.1-FCS-beta1, with the following changes:
* Classes in compressed jar files could not be referenced, because
of a bug in the loading of the zip library.
* Runtime.exec() previously did not throw an exception properly if
the command was not found.
* A workaround to the problem with gethostbyname_r in AIX 4.1.4.0
and earlier has been added.
See the "AIX fixes" section above.
* The description of the process given by the ps command is
more complete.
08 May 97 - Release of JDK1.1.1 IBM build a111-19970508, with the following
changes:
* The result of division of 0x80000000 by -1 is now compliant
with the JCK.
* Socket.setSoLinger(..) threw an exception when set to false.
* Support for several locales added.
* The Princeton University applet signing security flaw has been
fixed.
* Native method libraries written in C++ are now initialized
correctly. The constructor was sometimes not called for global
variables such as 'cout'.
25 Jul 97 - Release of JDK1.1.2 IBM build a112-19970725, with the following
changes:
* A problem with the loading of C++ libraries has now been fixed.
* Improved JNI example.
* Problem fixed whereby cascading menus were throwing
NullPointerExceptions.
* The UW security flaw has been fixed. The class loader was not
checking to make sure that each method's number of arguments is
less than or equal to its number of locals. There is no known
way to exploit this as a security hole.
* Fixed a bug whereby the use of modal dialog boxes sometimes
caused Java to hang or core dump.
* A workaround to the problem with gethostbyaddr_r in AIX 4.2.0.0
has been added.
See the "AIX fixes" section above.
* The "the June 23 Verifier Bug" has been fixed in this release.
19 Mar 98 - Release of JDK 1.1.4 IBM build a114-19980319, with the following
changes:
* Minimum supported level moved up to 4.1.5
* Fixed a problem with weak references (in a112-19970725 only),
which affected RMI and the caching of bitmap images.
* The loading of C++ modules has been re-worked, and destructors
for static objects are now called on JVM exit.
* Java would sometimes hang when logged in as root.
* List and TextArea AWT objects were not cleaned up properly,
occasionally giving 'postEvent method not found' exceptions.
* A problem with commas appearing between the digits of numbers
when the JIT was enabled has been fixed.
* Fixed intermittent problems that occurred when a modal dialog box
was disposed.
* Segmentation violation was occurring with cascading popup menus.
* Some keypad keys were giving the wrong characters in TextFields
and TextAreas.
* Class.forName() now considered to be a first active use of a
class and will result in the class static initialisers being
called.
* Fixed the incorrect behaviour with TextField when setEchoChar()
has been called.
* Fixed a problem in the new GC suspend code where a thread
suspends itself.
* Fixed Memory leak in RMI
* Fixed occasional AWT hangs
* Fixed a problem in drawBytes which was using the wrong font
* Fixed a problem with OutOfMemoryExceptions which was not
thrown correctly
* implemented New garbage collection suspend
* Fixed SIGSEGV in JIT with Spectrum Emulator
* Fixed VM hangs when clipboard is used
* Fixed a NullPointerException which occurred when JIT was enabled.
* Fixed an occasional SIGSEGV in garbage collector
* Could not close a socket when another thread was blocking in a
read on that socket - fixed.
* Fixed a modal dialog hang condition.
* Made it impossible to select an illegible font size.
* MulticastSocket.getInterface() threw a SocketException - fixed.
* Wrapper scripts revamped.
* Thread.stop() was causing core dumps and hangs with JIT enabled.
* C++ library loading did not work in French locale.
* "Bacon Bits" monitors added.
* "Jovation" trace output added.
* JIT compiler enabled by default.
* Improved full thread dump.
24 Sep 98 - Release of JDK 1.1.6 IBM build a116-19980924, with the following
changes:
* javacore.txt file (containing information about the state of
java monitors and stacks) can be produced be pressing CTRL-\
(this is only useful when the JIT is disabled).
* JMark2.0 AWT Display performance degradation fixed.
* Overall performance improvement due to faster synchronization.
* Better error messages from System.loadlibrary().
* Thread specific data fix for better performance and reliabilty
in heavilly threaded applications.
* Fixed I/O problems with ar_AA locale (Arabic).
* Fixed TextField truncation problems with Korean locale.
* Fixed broken Russion IME key sequence <Alt><Right Shift>.
* Fixed font scaling problems.
* JNI interface cleaned up for _AIX43 and IBM specific macros.
* Improved scaleability.
* jre -d now provides full version information.
* The JIT performance has been significantly improved but at the
expense of some increase in startup time. This issue is being
addressed.
Post 24 Sep 98 - Bug fixes after GA (see file fixes.lst issued with PTF's).
02 Jun 99 - First Developer Release of JDK 1.1.8
01 Jul 99 - Update to this Readme file:
* Addition of new notice section.
27 Jul 99 - Second Developer Release of JDK 1.1.8
10 Sep 99 - Release of JDK 1.1.8 IBM build a118ga-19990806
|
Correspondence Please see the following Web page for information on reporting bugs
and other correspondence:
http://www.ibm.com/java/jdk/support/index.html.
New Features
Note that the following links will only work if the corresponding option
is installed.
- 1.2 Security Migration Aid
- IBM's Big Decimal class
- RMI-IIOP
- JDBC-ODBC Bridge
Links
|