ptx/JSE V1.18.0 Release Notes


Introduction

ptx/JSE V1.18.0 has passed 100% of the Java Compatibility Test Kit (JCK) as provided by Sun Microsystems.

These release notes support ptx® Server Environment for the JavaTM Platform (ptx/JSE) V1.18.0 on systems running DYNIX/ptx® V4.5.x and DYNIX/ptx V4.6.x. ptx/JSE is a port of the Java Development Kit (JDKTM) 1.1.8_005 from Sun Microsystems® for IBM® NUMA systems.

These release notes and the jse(1) man page are the only documentation provided for ptx/JSE. Sun Microsystems provides extensive HTML documentation at their Web site about the Java Development Kit and the Java Platform. You should always refer first to these ptx/JSE release notes and then secondarily to the Sun HTML documentation. For more information about the jse(1) man page and the Sun HTML documentation, refer to "Product Documentation" later in these release notes.

Read these release notes before you install or run this release of ptx/JSE.


Features and Changes in This Release


Changes in ptx/JSE V1.18.0

The changes in ptx/JSE V1.18.0 since ptx/JSE V1.1.2 are as follows:


ATTENTION

This release and all previous ptx/JSE V1.1.x releases do not include a JDBC-ODBC Bridge.



System Requirements


Software Requirements

ptx/JSE V1.18.0 runs on DYNIX/ptx V4.5.x and V4.6.x. ptx/JSE requires the following software. Refer to the appropriate version of the DYNIX/ptx Release Notes for the versions of software that apply to your host.

ptx/XWM provides the graphical support for the Java Abstract Windows Toolkit (AWT) classes.


Disk Space Requirements

Installing ptx/JSE requires approximately 75 MB. By default, ptx/JSE is installed in the root filesystem, but it can be installed in an alternate filesystem.

The amount of swap space you should allocate for each Java program that you run depends on the complexity of each application. Swap space consumption could still expand to 80 MB for a complex Java application, but should be much less for simple Java applications.


Install ptx/JSE

ptx/JSE is installed with the standard ptx/INSTALL process. For DYNIX/ptx V4.6.1 instructions, refer to the DYNIX/ptx V4.6.1 and Layered Products Installation Release Notes. For DYNIX/ptx V4.5.x instructions, refer to the appropriate installation release notes.

Note that ptx/JSE V1.18.0 is currently distributed only on the "DYNIX/ptx V4.6.1 Operating System and Layered Products, Volume 1" CD-ROM. It is not available on any of the DYNIX/ptx V4.5.x CD-ROMs.

By default, ptx/JSE V1.18.0 is installed in the root filesystem under /opt/jse1.18. Alternatively, you can install ptx/JSE in a different filesystem. If you do so, /opt/jse1.18 is created as a symbolic link to the actual installation directory.

After installation, for each user that is developing or running Java applications, update the PATH environment variable so that it includes the /opt/jse1.18/bin directory.


CLASSPATH Environment Variable

ptx/JSE includes the CLASSPATH environment variable, which tells the Java Virtual Machine (JVM) and other Java applications where to find the class libraries. To use ptx/JSE you need not set this environment variable. However, if you are building Java applications whose classes reside in a directory structure other than that of ptx/JSE, you must designate the directories that contain the appropriate classes in the CLASSPATH environment variable. If more than one directory is designated, use colons to separate the entries.

The setting of the CLASSPATH environment variable specifies the directories that are to be searched before the standard ptx/JSE class directories are searched.


Java Commands and the ENV Environment Variable

Java commands are typically initiated by executing Korn shell scripts installed in $JAVA_HOME/bin. The values of environment variables such as CLASSPATH, JAVA_HOME, and LD_LIBRARY_PATH influence the behavior of the Java commands.

If the ENV environment variable is set to expand to the pathname of a script such as $HOME/.profile, undesirable side effects can occur because $HOME/.profile could alter the contents of environment variables used by the Java command scripts.

Prior to executing Java commands, remove the environment variable definitions from any scripts referenced by ENV, or set ENV to the null string as follows:

export ENV=""


JDK Tools

The following base tools are provided in ptx/JSE. Complete documentation on these tools and their options is available in the online JDK Tools documentation, which is located at the following URL:

http://java.sun.com/products/jdk/1.1/docs/tooldocs/solaris/index.html

The Solaris platform references in this Sun documentation apply to DYNIX/ptx platforms.

Additional tools provided by ptx/JSE include tools for Remote Method Invocation (RMI), internationalization, Java Archive (JAR) files, and digital signing as follows:


Demonstration Applets and Applications

ptx/JSE includes demonstration applets and applications that are provided with the JDK in the /opt/jse1.18/demo directory. For more information about these demonstration applets and applications, refer to the following URL:

http://java.sun.com/products/jdk/1.1/docs/relnotes/demos.html


Product Documentation

These release notes and the jse(1) man page are the only documentation provided specifically for ptx/JSE.

The jse(1) man page provides an overview of ptx/JSE. To view the jse man page, enter the command man jse at the DYNIX/ptx command line prompt.


ATTENTION

If your host has both ptx/JSE V1.18.0 and ptx/JSE V3.0.x installed, then only the jse(1) man page for the second or the last ptx/JSE product installed will be available. Both versions of the man page are not available at the same time. As the last install will overwrite the earlier jse(1) man page, we recommend that you save the previous man page to another location for future reference.


Additionally, Sun Microsystems provides extensive HTML documentation at their Web site about the JDK and the Java Platform. You should always refer first to these ptx/JSE release notes and then secondarily to the Sun HTML documentation.

The JDK HTML documentation includes references to Solaris and Microsoft Windows platforms. The Solaris platform references apply to DYNIX/ptx platforms; the Windows references do not. Furthermore, references in the Sun documentation about downloading and installing JDK do not apply to ptx/JSE.

The most applicable Sun Microsystems Java Web sites are as follows:


Problem Report Summary

This section lists the following problem report summaries:


Fixed Problems in ptx/JSE V1.18.0

The following problems were fixed in ptx/JSE V1.18.0:


Fixed Problems in ptx/JSE V1.1.2

The following problems were fixed in ptx/JSE V1.1.2:


Fixed Problems in ptx/JSE V1.1.1

The following problems have been fixed in ptx/JSE V1.1.1:


Reporting Problems Against ptx/JSE

As a supported IBM customer, you should always call with questions and to report problems. If you report a problem regarding running a bytecode file and the problem can be reproduced on another platform (such as Microsoft Windows), we will forward it to Sun and track resolution of the problem with Sun. If we determine that the problem is unique to ptx/JSE, then we will determine the resolution of the problem.

However, because ptx/JSE is a direct port of the Sun-provided JDK, IBM cannot add to or modify the behavior of the JDK, including the API set. Any enhancement request of this nature will be forwarded to Sun.


Open Problems

There are currently no ptx/JSE problem reports.

For information on the problems reported to Sun Microsystems against the JDK, you can register free online as a member of the Java Developer Connection and refer to the following URL:

http://developer.javasoft.com/developer/bugParade/index.html


Common Questions and Answers

This sections lists common questions and answers about ptx/JSE in the following areas:


General Programming

Q: Why is the Java Language Debugger (jdb) not working properly? Why does it tell me it requires a password when I'm running it locally?

The Java Language Debugger (jdb) is launched from a script, which runs the rc file for your default shell. If that rc file starts other processes or is set to echo all script commands, the jdb will think you are starting it to debug one of the processes running remotely. Check your default rc file and make sure it is not starting such processes.

Q: Why do I keep getting failures when I try to access shared objects or classes that I should have visibility to?

If your shared object files or class files are accessed over an automounted filesystem, the open call may be getting a SIGALRM failure because of the time it takes the automounter to open the files. Try accessing the files from a local or non-automounted filesystem.

Q: When I set the environment variable LC_CTYPE to any value (including English), why does it sometimes trigger a segfault in some Motif calls?

This is a problem (report 238425) in ptx/WINDOWS (DYNIX/ptx V4.4.4 and earlier) and ptx/XWM (DYNIX/ptx V4.4.5 and later), which are used by ptx/JSE. The workaround is to unset the LC_CTYPE environment variable.

Q. What happens if I try to use the audio application programming interface (API)?

A message is generated when the audio implementation cannot find a sound card on the NUMA system. Otherwise, the application or applet should run normally, except that there will be no sound. The message generated by JDK on any platform without a sound card is the following:

audio device busy (attempt 1 out of 5)
audio player exit

Native Method Programming

Q: Why am I getting connect errors when I try to use sockets in a native method?

If you write native methods that make calls on sockets or call methods in a Java API that uses sockets, those native methods must be compiled to use BSD sockets and not ABI sockets. This is because the Java Virtual Machine (JVM) is compiled with BSD sockets.

Q: Are there any other problems that I might encounter when writing native methods?

It is possible to get different results from mathematical expressions in a native method than in the Java Virtual Machine (JVM) when dealing with divide-by-zero, remainder-by-zero, square root of negative numbers, rollover from INT_MAX and INT_MIN, not-a-number, infinity, or negative zero. This is because the JVM has explicitly-defined behavior under these "edge conditions" which may differ from some C compiler implementations.

Q. Why does the JVM fail with a segmentation violation during execution of a Java native method?

The Java Virtual Machine (JVM) executable is linked using the ld(1) command with the -z nopage0 option. This option tells ld not to bind anything to address zero, which will allow runtime detection of null pointers. However, null pointer references from Java native methods will cause the JVM to terminate due to a segmentation violation. Developers should take care to avoid null pointer references in Java native method code. If Java native method code is tested from executables other than the JVM, the executables should be linked with -z nopage0 to ensure early detection of null pointer references.


Graphical User Interface Display Issues

Q: Why are my Java-based GUIs displayed improperly?

The Java Abstract Windows Toolkit (AWT) on UNIX platforms is built on top of Motif® and X Windows. For this reason, you may need to experiment with the settings in the X Windows resource files (.Xdefaults file and .xsession file) to get the desired GUI display. For example, in some cases, the setting of the borderWidth resource has been seen to affect the display of Java GUIs. Appearance problems that you see in Java GUIs, for example, a GUI element not appearing in the desired location, are generally X Windows issues. On the other hand, a functionality problem, such as data that cannot be entered into a GUI element, are usually Java issues, and not X Windows related.

If you are using Exceed®, make sure you are running one of the most current versions, which is at least Exceed V5.1.3 or later. Earlier versions of Exceed that were using multiple-window mode have been seen to improperly display Java GUIs.

Q: Why is the color red not displayed and the green and blue colors reversed when GUI objects are built with the Abstract Window Toolkit (AWT)?

Check the color display settings on your user interface device. If you are using 16-bit color, use either 256 colors or 24-bit color settings instead to clear up the problem.

Q: Why do my Java-based applications hang when run on an X server?

The JDK reference code from Sun Microsystems does not support the use of some X servers. For this reason, ptx/JSE does not support X servers that are not supported by the JDK reference code.