ptx/JSE V1.1.2 Release Notes


Introduction

These release notes support ptx® Server Environment for the JavaTM Platform (ptx/JSE) V1.1.2 on systems running DYNIX/ptx® V4.4.2 or later maintenance releases. ptx/JSE is a port of the Java Development Kit (JDKTM) 1.1.6 from Sun Microsystems® for IBM® NUMA-QTM and Symmetry® systems. Read this document before you install or run this release of ptx/JSE.


Features and Changes in This Release


Changes in ptx/JSE V1.1.2

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


Changes in ptx/JSE V1.1.1

The changes in ptx/JSE V1.1.1 since ptx/JSE V1.1.0 are that several problems were fixed. Refer to "Problems Fixed in ptx/JSE V1.1.1" for more information.


Features in ptx/JSE V1.1.0

The features in ptx/JSE V1.1.0 are as follows:


System Requirements


Software Requirements

ptx/JSE V1.1.2 runs on DYNIX/ptx V4.4.2 and later maintenance releases. ptx/JSE requires ptx/WINDOWS on hosts running DYNIX/ptx V4.4.4 and earlier and requires ptx/XWM on hosts running DYNIX/ptx V4.4.5 and later. Refer to the appropriate version of the DYNIX/ptx Release Notes for the required versions of ptx/WINDOWS and ptx/XWM.


Disk Space Requirements

Installing ptx/JSE requires approximately 100 MB. By default, ptx/JSE is installed in the root filesystem, but it can be installed in an alternate filesystem. You should allocate 25 MB of swap space for each Java program that you run.


Install ptx/JSE

ptx/JSE is installed with the standard ptx/INSTALL installation process. ptx/JSE V1.1.2 is provided on the DYNIX/ptx V4.4.5 Operating System and Layered Products Software CD-ROM and is also available from the SequentDirect web site. If you are downloading ptx/JSE from the SequentDirect web site, refer to "Download ptx/JSE From the Web and Install It With ptx/INSTALL."

By default, ptx/JSE is installed in the root filesystem under /opt/jse1.1. Alternatively, you can install ptx/JSE in a different filesystem. If you do so, /opt/jse1.1 is created as a symbolic link to the actual installation directory. After installation, update the PATH environment variable so that it includes the /opt/jse1.1/bin directory.

The DYNIX/ptx V4.4.8 and Layered Products Software Installation Release Notes tell how to use ptx/INSTALL to install all software on a host running DYNIX/ptx V4.4.5. If you are installing ptx/JSE on a host running an earlier version of DYNIX/ptx, refer instead to the appropriate installation release notes.. References to ptx/JSE V1.1.0 and ptx/JSE V1.1.1 in the installation release notes also apply to ptx/JSE V1.1.2.


Download ptx/JSE From the Web and Install It With ptx/INSTALL

Complete the following steps to download ptx/JSE from the web and install it on a DYNIX/ptx host:

  1. Download ptx/JSE from the SequentDirect web site at http://www.sequent.com/direct/software.asp

  2. Move the downloaded file jse112.tar to the /tmp directory on the DYNIX/ptx host where you want to install ptx/JSE. The exact method you use depends on the network configuration of your site. Most likely, you can use the ftp command or Microsoft® Windows® Explorer to move the file.

  3. Login as root:

    # su root

  4. Extract ptx/JSE from the downloaded file:

    # tar -xvf jse112.tar
  5. Use ptx/INSTALL and the ROOT installation procedures to install ptx/JSE.

    1. From ptx/ADMIN, select System Administration -> Software Management -> Install Software Package.

    2. For the installation source type, enter directory.

    3. For the location of the installation source, enter /tmp/jse112.

  6. Once the installation is complete, you can either remove or archive the jse112.tar file and the /tmp/jse112 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 can be accessed from the HTML documentation provided with ptx/JSE. Refer to "Product Documentation" later in these release notes for more information.

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


JDK Demos

ptx/JSE includes the following demos from the JDK. Demos are located in the demo subdirectory in the ptx/JSE directory, typically /opt/jse1.1.

Demo Subdirectory

Description

Animator

General-purpose animator

ArcTest

Test arc drawing and filling

BarChart

Simple bar-chart applet

Blink

Blinking, multicolored text

CardTest

Test card layout manager

Clock

Analog clock

DitherTest

Test image dithering

DrawTest

Draw points and lines

EventModel

AWT eventmodel demos

Fractal

Fractal figures

Gauge

Bar chart graph layout

GraphLayout

Graph layout by iterated relaxation

GraphicsTest

Test graphics operations

ImageMap

Live-feedback image map

JumpingBox

Catch the jumping box

MoleculeViewer

Three-dimensional chemical model viewer

NervousText

Nervous text

RoundButtons

Test mouse clicks

SimpleGraph

Draw a simple graph

SortDemo

Animated sorting algorithms

Spinner

Test graphics colors in a pie chart

SpreadSheet

Simple spreadsheet

SymbolTest

Test character sets

TicTacToe

Tic-tac-toe game

WireFrame

Three-dimensional wire-frame model viewer



Product Documentation

ptx/JSE V1.1.2 includes the JDK 1.1.5 online HTML documentation. Information is provided about the core JDK API specification, JDK tools, and JDK features. For updates to the Sun documentation beyond JDK 1.1.5, refer to the following URL, which is maintained by Sun:

http://java.sun.com/products/jdk/1.1/docchanges.html

The latest JDK 1.1 documentation provided by Sun is available at the following URL:

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

The files for the ptx/JSE HTML documents are located in the directory /opt/jse1.1/docs. You can display these HTML documents with a browser, for example, Netscape Navigator® or Mosaic. Use your browser to open the top-level file /opt/jse1.1/docs/index.html. If the browser you are using does not support Java-based applications, you will be unable to see the Java examples that are embedded in some of the HTML documents.

Note that ptx/WINDOWS (DYNIX/ptx V4.4.4 and earlier) and ptx/XWM (DYNIX/ptx V4.4.5 and later) include Mosaic in the contributed software (unsupported), but Mosaic does not support Java-based applications. For more information about contributed ptx/WINDOWS and ptx/XWM software, refer to the ptx/WINDOWS Release Notes or the ptx/XWM Release Notes as appropriate.

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. Also, some of these HTML documents contain hotlinks to the Sun Microsystems Java web site-these links may become invalid if Sun Microsystems changes their web site. Lastly, the HTML documentation refers to a CHANGES file. This file is not part of ptx/JSE.

Additional information about Java and the JDK, including information about previous releases of the JDK, is available from the Java Home Page at the following URL:

http://java.sun.com/index.html


Problem Report Summary

This section lists the following problem report summaries:

As a supported IBM NUMA-Q 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.

H owever, because ptx/JSE is a direct port of the Sun-provided JDK, IBM NUMA-Q 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.


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:


Open Problems

The following problem has been reported against ptx/JSE. 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


Syntax Error in the jre Script (246349)

The jre script, which is located at /opt/jse1.1/bin/jre and /opt/jse1.1/jre/bin/jre, contains a syntax error in the last line of the file. The incorrect line is:

exec $JAVA_HOME/bin/$ARCH/$THREADS_TYPE/$PROG $@

Workaround. Add quotes around the parameter as follows:

exec $JAVA_HOME/bin/$ARCH/$THREADS_TYPE/$PROG "$@"

If you use the jre script, be sure to update both the /opt/jse1.1/bin/jre and /opt/jse1.1/jre/bin/jre files.


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 trying 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-Q or Symmetry 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

Q. Why does a JVM process use more than 20 MB, even for small applications?

ptx/JSE preallocates the maximum size of the memory allocation pool (the garbage collection heap) when a Java application is started. By default, the maximum size is 16 MB of memory. This results in JVM processes that use typically more than 20 MB, even for very small applications. You can reduce the overhead required for the memory allocation pool by using the -mx option to the Java Interpreter (java) command. For example, to set the maximum to 1 MB, use the syntax java -mx1m when invoking Java programs.


Native Method Programming

Q: Why does the ptx/C++ compiler return syntax errors when the jni.h file is included or JNI functions are called?

Many Java Native Interface (JNI) functions are defined with long long call arguments and return types. However, ptx/C++ currently does not support the long long data type. Code that includes the jni.h file and code calling JNI functions must be compiled using a compiler that supports the long long data type. Until a version of ptx/C++ supporting long long data types becomes available, ptx/C++ code can interface with JNI functions using ptx/C code as follows:

Q: Why are system calls from Java native methods problematic when more than one thread simultaneously calls the same function?

DYNIX/ptx V4.4.x does not contain thread-safe system libraries. For this reason, system calls from Java native methods can be problematic when more than one thread simultaneously calls the same thread-unsafe function. Until a version of DYNIX/ptx that contains thread-safe system libraries is available, you can improve the situation in one of two ways: Either avoid concurrent execution of native methods from multiple threads, or provide a mutual exclusion mechanism to prevent simultaneous calls.

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.


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, functionality problems, for example, data 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, using either 256 colors or 24-bit color settings instead should clear up the problem.

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

The JDK code from Sun Microsystems does not support the use of some X terminals. For this reason, ptx/JSE does not support X terminals.