Contents

Introduction
Thank you for downloading the J2SE™ Development Kit (JDK)
5.0-6 for the OpenVMS Alpha Operating System for the Java™
Platform (hereafter called simply the JDK). For 5.0, Sun Microsystems
has reverted to the terminology JDK and JRE. These release notes
contain installation instructions, new features, known issues,
and other information specific to this release of the OpenVMS Alpha
port of Sun Microsystems' Java™ 2 Platform Standard Edition
(J2SE). In addition to these release notes, the release-independent
User Guide contains information on getting started
using the JDK, using the Plug-in, and troubleshooting. The JDK 5.0-6
kit is supported on OpenVMS Alpha Version 8.2 or higher. Because
this version was built against the OpenVMS Alpha V7.3-2 libraries, it will
continue to install and execute on V7.3-2. However, support on that version is
available only for customers that have a Prior Version Support (PVS)
contract for OpenVMS Alpha V7.3-2.
The JDK 5.0-6 kit implements the J2SE 5.0 (a.k.a 1.5.0), and is
based on Sun's J2SE 1.5.0_20 Solaris Reference Release. It passes
all the tests in Sun's Java Compatibility Kit test suite (JCK V1.5a).
This kit contains two virtual machines:
- The Fast Virtual Machine is Just-In-Time (JIT)
compiler technology designed to provide optimal Java runtime performance
on OpenVMS Alpha systems. The Fast VM offers significant performance
advantages over the Classic JIT. Because the Fast VM is included
in this kit, it is not provided as a separate kit. To learn more
about the Fast VM, refer to Using
the Fast VM in the User Guide.
Please note that starting with the 5.0-4 release, the Fast VM is the default virtual machine for OpenVMS Alpha. In previous versions, the classic VM was the default. For more information refer to
JDK 5.0-4 New Features.
- The classic virtual machine (classic VM, the virtual
machine shipped with prior releases) is based on Sun's reference
implementation. The classic VM contains Just-In-Time (JIT) compiler
technology, but does not have the performance of the Fast Virtual
Machine (Fast VM). However, it provides additional debugging support
not currently available in the Fast VM.
You select which virtual machine (hereafter called VM) to use when
you set up your Java environment. To set up your environment, use
one of the following two commands, as described in Setting
Up the Java Environment in the User Guide:
$ @SYS$COMMON:[JAVA$150.COM]JAVA$150_SETUP ! Use the Fast VM
$ @SYS$COMMON:[JAVA$150.COM]JAVA$150_SETUP FAST ! Use the Fast VM
$ @SYS$COMMON:[JAVA$150.COM]JAVA$150_SETUP CLASSIC ! Use the classic VM
Note: For simplicity, these release notes assume
you installed the JDK using the default location and therefore reference
SYS$COMMON:[JAVA$150] throughout the text. However,
if you specified a destination and installed the kit in that alternate
location, substitute that location for the default while reading
the examples in this document.
There is always a copy of JAVA$150_SETUP.COM located
in the SYS$MANAGER directory. If you are not sure where
the JDK was installed, you can always safely use:
@SYS$MANAGER:JAVA$150_SETUP.COM
IMPORTANT: Please make sure you understand the
Copyright (copyright.html,
installed file) and License (license.html,
installed file) information before using this release.

New Features
The following is a list of new features from Sun, in JDK 5.0. HP
recommends that you read Sun's Java 2 Platform Standard
Edition (J2SE) Documentation for a thorough description of all
new features and enhancements available in the J2SE 5.0.
- New language updates: Metadata, Generics, Enumerated types,
Autoboxing of primitive types
- New JVM Monitoring and Management API (not fully supported in
HP's JDK 5.0 for OpenVMS Alpha)
- Improved out-of-box performance
- New (but compatible) default Java look and feel
- Java Web Start
Other noteworthy changes include:
- New core XML support including: XML 1.1 with Namespaces, XML
Schema, SAX 2.0.2, DOM Level 3 Support and XSLT with a fast XLSTC
compiler.
- 32-bit supplementary character support added to the platform
as part of the transition to Unicode 4.0 support.
- Java Web Start Improvements
For a complete list of features introduced in 5.0 since the previous
major release (1.4), refer to the Summary of
New Features and Enhancements on Sun's site.

JDK 5.0-6 New Features
This kit installs JDK 5.0-6, which is a maintenance release with no new features.

JDK 5.0-5 New Features
JDK 5.0-5 was a maintenance release with the following new features from HP:
- System.getenv() is now supported with this release. See Using System.getenv for more information.
- This release supports the Secure Web Browser V1.1-12 or higher based on SeaMonkey.

JDK 5.0-4 New Features
JDK 5.0-4 was a maintenance release with the following new feature from HP:
- Starting with JDK 5.0-4, the Fast VM will be the default virtual machine for OpenVMS Alpha. In previous versions, the classic VM was the default. The default virtual machine can be set to the Classic VM by defining JAVA$DEFAULT_VM to CLASSIC, when no VM is explicitly selected when issuing JAVA$150_SETUP.COM.
The following table shows the VM parameter values you can specify to JAVA$150_SETUP.COM,
and the corresponding VM selected for Alpha and Integrity systems:
| Parameter Value |
OpenVMS Alpha |
OpenVMS Integrity |
| No VM parameter specified |
Fast VM |
Hot Spot |
| FAST |
Fast VM |
Hot Spot |
| HOTSPOT |
Fast VM |
Hot Spot |
| CLASSIC |
Classic VM |
None |
Note: If JAVA$DEFAULT_VM is defined, its value takes precedence over any parameter value passed to JAVA$150_SETUP.COM.

JDK 5.0-3 New Features
JDK 5.0-3 was a maintenance release with the following new features from HP:
- Support for user controllable RMS attributes. You can now override the default RMS file operation attributes with attributes of your own choosing. For more information, see Defining RMS Record Attributes.
- The Fast VM garbage collectors now recover unused class data structure memory
from dynamically generated classes by default.
Previously, the
-Xdynclassgc option was required to enable this behavior.
If you find you need to disable it, use the -Xnodynclassgc switch.
- Java Management Extensions (JMX) and Java Monitoring and Management (JMM) APIs are
now fully supported in the Fast VM, including support for:
jconsole |
J2SE Monitoring and Management Console.
JMX-compliant graphical tool for monitoring a Java virtual machine.
It can monitor both local and remote JVMs. |
jps |
JVM Process Status Tool.
Lists instrumented HotSpot Java virtual machines on a target system. |
jstat |
JVM Statistics Monitoring Tool.
Attaches to an instrumented HotSpot Java virtual machine and collects and
logs performance statistics as specified by the command line options. |
jstatd |
JVM jstat Daemon.
Launches an RMI server application that monitors for the creation and
termination of instrumented HotSpot Java virtual machines and provides
an interface to allow remote monitoring tools to attach to Java virtual
machines running on the local system. |
To use the JMX and JMM APIs, the option "-Dcom.sun.management.jmxremote" should be specified in the command line when the application is invoked.
The -t output option of the jstat tool which provides timestamp-tagged data is not supported in this release.
- Java (TM) Virtual Machine Tools Interface (JVMTI) is now partially supported by the Classic VM,
but not for the Fast VM.
It supports JDB and passes the JVMTI JCK tests, but does not yet support
some optional features like:
- Getting notified on some actions, e.g. when VM compiles a method and when the
VM allocates/frees an object (e.g a dynamically created object)
- Some per-thread operations like stop/interrupt a thread and get cpu time spent on a thread

JDK
5.0-2 New Features
JDK 5.0-2 was a maintenance release with
the following new feature from HP:

JDK 5.0-1 New Features
JDK 5.0-1 was the initial release for the OpenVMS Alpha Operating
System.

Fixed Problems
The following sections provide important information about problems that HP has fixed in JDK 5.0. HP recommends that you also review Sun's Java 2 SDK and Runtime Environment Important Bug Fixes and Changes documentation for information concerning bug fixes that Sun has made for this release.
Problems Fixed in JDK 5.0-6
JDK 5.0-6 is based on Sun's J2SE 1.5.0_20 Solaris Reference Release and Olson timezone data file tzdata2009g, and passes all the tests in Sun's Java Compatibility Kit test suite (JCK V1.5a). For additional information on the DST changes, please refer to the Java Technology Software (OpenVMS and Tru64™ UNIX®) website. This JDK is a maintenance release and includes the following fixed problems from HP:
- A previous performance problem regarding alignment access fault is fixed.
- Previously, the return value of Runtime.getRuntime().maxMem() was incorrect with the ClassicVM and FastVM when the paging file quota was greater than 4194304. This problem is fixed.
- Previously, calling Thread.start with a thread object in a method would not start the thread until the method finished, if it was synchronized with the thread object with FastVM. This problem is fixed.
- Previously, the threads count might have been wrong when the AttachCurrentThreadAsDaemon function was used with the ClassicVM and FastVM. This problem is fixed.
- Previously, the FastVM might have crashed when running a special jar file that called a static method with the invokevirtual instruction. This problem is fixed.
- Previously, incorrect pathname and filename information might have been appended to the name while attempting to rename files. This problem has been fixed.
Problems Fixed in JDK 5.0-5
JDK 5.0-5 is based on Sun's J2SE 1.5.0_17 Solaris Reference Release. It includes the following fixed problems from HP:
- Previously, an application that allocated a large amount of memory in P0 space before starting up the JVM might have experienced an Out-of-memory error. This problem is fixed.
- Previously, the FastVM did not report any exceptions that occurred in the main thread. This problem is fixed.
Problems Fixed in JDK 5.0-4
JDK 5.0-4 is based on Sun's J2SE 1.5.0_15 Solaris Reference Release. It includes the following fixed problems from HP:
- In previous releases, a race condition existed between unloading classes and garbage collection. In some special cases, this race condition caused the Fast VM to exit with an "access violation". This problem is fixed.
- This release includes an enhancement to garbage collection. Previously, under certain uncommon circumstances, the Fast VM garbage collector was unable to allocate a Java object, even though there was sufficient memory. This problem is fixed.
- A problem with Weak Global References has been fixed. Previously, accessing Weak Global References to objects that had already been garbage collected could result in application failures.
- Previously, a deadlock resulted if a Fast VM garbage collection was taking place during the call of Thread.getAllStackTraces(). This problem is fixed.
- Previously, the Fast VM did not recognize multiple -Xbootclasspath/p options. This is now supported.
- A problem with monitoring and management using JMX with the Fast VM has been fixed. Previously, users might have experienced an access violation while starting the VM with JMX agent enabled.
- A problem with monitoring and management using JMX with the Fast VM has been fixed. Previously, the application could hang while starting with the JMX agent enabled.
- Previously, the Plug-in java-console would not display. With this release, the Plug-in java-console displays.
- A problem with using Plug-ins in SWB has been fixed. Previously, users were sometimes unable to open a new site or close the browser after using some specific Plug-ins in SWB.
- A problem with class loading in the classic VM has been fixed. Previously, calling a Plug-in method from a jscript might have failed in SWB.
- A problem with JVMTI has been fixed in the classic VM. Previously, it caused infinite break points when the break point was set to a static method.
- A problem with Java Web Start has been fixed. Previously, the user might have experienced an error when closing the Web Start GUI window.
- A problem with attaching to a thread has been fixed. Previously, the user might have experienced a JNI version error when attaching a thread.
- A problem with JPDA has been fixed. Previously, the user might have experienced problems when debugging a Java application.
- A problem with the JAVA$150_SETUP.COM has been fixed. Previously, the user might have experienced a problem when selecting Fast VM on Itanium, or Hotspot on Alpha. For details on changes to JAVA$150_SETUP.COM for this release, please refer to the JDK 5.0-4 New Features.
Problems Fixed in JDK 5.0-3
JDK 5.0-3 is
based on Sun's J2SE 1.5.0_15 Solaris Reference Release. It includes the following fixed problems from HP:
- The 2006/2007 daylight saving time rule changes supplied by Sun for the United
States, Canada, and Australia (Melbourne and Perth) are fixed in this release.
For additional information on the DST changes, please refer to the Java Technology Software (OpenVMS and Tru64™ UNIX®) website.
- Previously, a simple
java -version
command crashed with an Access Violation (ACCVIO) if the logical name DECC$FILENAME_UNIX_REPORT was defined.
This has been corrected.
- Previously, if you had the DECC$DISABLE_TO_VMS_LOGNAME_TRANSLATION logical name enabled, then
calling the C Run-Time Library function stat() would not resolve logicals correctly when
the first logical uses another logical for the device name.
This has been corrected.

Java
Web Start Technology Usage
Java™ Web Start is an application-deployment technology,
which gives you the power to launch full-featured applications with
a single click from a web browser. It is located in the jre directory.
Some of Java Web Start's features include:
- Runs independently of any browser, so you can shut down your
browser or go to another Web page and continue using your application.
- Applications deployed with Java Web Start do not require a
browser interface to operate.
- Includes security features of the Java 2 platform.
- The hardware and operating system requirements for using Java
Web Start are the same as those recommended for J2SE platform
implementation on which it runs.
Java Web Start is available beginning with HP's JDK 5.0-2 on OpenVMS
Alpha. For information on how to set up and run Java Web Start with
JDK 5.0-6, see 'Using Java Web Start.'
More information, including developer documentation, can be found
in Sun Microsystems' documentation at: http://java.sun.com/products/javawebstart/reference/index.html.

Compatibility
JDK 5.0-6 is compatible with previous SDK versions. Most existing
programs will run on the 1.5.0 platform. However, some important
incompatibilities do exist and are thoroughly discussed in Sun's
Java 2 Platform Compatibility
with Previous Releases document. For specific J2SE 5.0 incompatibilities
refer to the section, Incompatibilities
in the Java 2 Platform Standard Edition 5.0 (since 1.4.2).

Installation
The following sections describe how to install the JDK 5.0 kit
on your OpenVMS Alpha system.
Prerequisites
The prerequisites for running this kit are:
- JDK 5.0 must be installed on an ODS-5 formatted
disk.
- OpenVMS Alpha V8.2 or higher. See Mandatory
Patches.
- HP TCP/IP V5.5 with latest ECO for OpenVMS Alpha V8.2.
Note: We do not support MultiNet directly. All of our testing and certification is done using TCP/IP Services for OpenVMS; however, because we do not call TCP/IP directly and use only the socket functions available from HP C, MultiNet should work with this JDK.
- DECWindows Motif V1.2-6, if you plan on AWT use.
- Secure Web Browser (SWB) 1.7-8
or higher based on Mozilla, or SWB 1.1-12 or higher based on SeaMonkey, if you plan on using Java Plugins with SWB.
-
Kernel support for Thread Manager upcalls must be enabled. Please do not disable Thread Manager upcalls using either the image flags or the MULTITHREAD system parameter.
Mandatory Patches
To successfully install and run the JDK for OpenVMS Alpha, you
must install prerequisite patches for your OpenVMS version (See
the list below. Install the patch versions listed, or later, if
superseded.). These patches can be downloaded from the IT Resource
Center (ITRC) at http://www2.itrc.hp.com/.
Note: First-time users must register.
Patches for OpenVMS Alpha V8.3
- All Rating 1 ECOs (search keyword = 'INSTALL_1' )
- TCPIP_ECO-V0506 (TCP/IP V5.6 or latest ECO)
- CRTL-V0500 (or latest ECO)
- PTHREAD-V0100 (or latest ECO)
Patches for OpenVMS Alpha V8.2
- All Rating 1 ECOs (search keyword = 'INSTALL_1' )
- TCPIP-V0506-9ECO3-1 (TCP/IP V5.6 or latest ECO)
- CRTL-V0400 (or latest ECO)
- PTHREAD-V0300 (or latest ECO)
Note for ECOs:
Because the status of ECOs changes frequently as new versions
supersede previous versions, we recommend that you search the
ECOs cited above, and install the 'most recent' version resulting
in your search. To verify that you have the correct file, refer
to the 'Patch Details'.
For more information, refer to the patch
installation page on the Web site.

Installing the Kit
To install the JDK kit:
- Download and install the prerequisite ECOs.
- Download the file
DEC-AXPVMS-JAVA150-V0105-6-1.PCSI_SFX_AXPEXE
(~251,000 blocks) from
our Software Download
web page and run the file to extract it into 2 files:
$ RUN DEC-AXPVMS-JAVA150-V0105-6-1.PCSI_SFX_AXPEXE
DEC-AXPVMS-JAVA150-V0105-6-1.PCSI$COMPRESSED (~316,000
blocks)
DEC-AXPVMS-JAVA150-V0105-6-1.PCSI$COMPRESSED_ESW (18
blocks)
Important: If you move the above files, make sure that they
remain together in the same directory.
Note: If you are downloading the file to an ODS-5 disk,
the unpacking operation might convert the filenames into lower
case. Convert them to upper case before proceeding; for example:
$ RENAME dec-axpvms-java150-v0105-6-1.pcsi$compressed
-
DEC-AXPVMS-JAVA150-V0105-6-1.PCSI$COMPRESSED
$ RENAME dec-axpvms-java150-v0105-6-1.pcsi$compressed_esw -
DEC-AXPVMS-JAVA150-V0105-6-1.PCSI$COMPRESSED_ESW
Note: You can download the file and expand to .PCSI$COMPRESSED
wherever you like; however, the installation (Product Install)
must be done onto an ODS-5 formatted disk.
- To extract a local copy of these Release Notes before installing
the JDK:
$ PRODUCT EXTRACT FILE JAVA150 - /SOURCE=[directory_where_you_put_the_PCSI$COMPRESSED_file] - /SELECT=RELEASE_NOTES.HTML - /DEST=[]
- Install the JDK kit from the
.PCSI$COMPRESSED
file obtained, using the PCSI (POLYCENTER Software Installation)
utility PRODUCT command:
$ PRODUCT INSTALL JAVA150 - /SOURCE=[directory_where_you_put_the_PCSI$COMPRESSED_file] - /NORECOVERY_MODE
By default, the JDK gets installed in root directory SYS$COMMON:[JAVA$150].
As an alternative to installing the kit in the default location
SYS$COMMON:[JAVA$150], you can specify /DESTINATION=device-name:[directory-name]
on the PRODUCT command line, and the kit
will be installed at that specified location.
Remember: JDK 5.0 must be installed
onto an ODS-5 formatted disk.
Also, the following files are installed by the PCSI utility
with a file attribute of ARCHIVE:
SYS$COMMON:[JAVA$150.COM]JAVA$150_SETUP.COM
If a file having any of these names already exists on the system,
the installation process renames it to a new name with a file
type ending in _OLD, before loading the new copy
from the kit. Only the latest version of the existing file is
preserved (by being renamed to file.type_old) before
PCSI deletes all remaining versions.
For example, an existing SYS$COMMON:[JAVA$150.COM]JAVA$150_SETUP.COM
is renamed to SYS$COMMON:[JAVA$150.COM]JAVA$150_SETUP.COM_OLD
before the new copy is copied from the kit.
If you have previously personalized any of these files, you
might need to merge your personalizations with the new copies.
Notes:
- The PCSI PRODUCT tool for OpenVMS Alpha installs different
versions of the JDK using unique product names. For example:
- SDK v 1.4.2-n is installed as product
JAVA142
- JDK 5.0-n is installed as product
JAVA150
Therefore, if you decide to update to an earlier or later
version of the JDK within the same product, you should
not use the PCSI PRODUCT REMOVE command. Instead,
use the PRODUCT INSTALL of the desired kit.
By following these instructions you avoid potential shared-file
conflicts.
- Installing in the
SYS$COMMON area requires
privileges. The SYS$COMMON:[JAVA$150] directory
is the typical location for the installation of this kit.
- To use JDK 5.0, you must first set up
the Java environment. You can select either the Fast VM or the
classic VM as your virtual machine.
Because you can have multiple JDK versions installed on your OpenVMS
system, and because you can change from one version to the other,
you need to follow specific steps to set up your Java environment
properly. To run the command procedure to do this, refer to Setting Up the Java Environment in the
User Guide.
- Refer to the User Guide for additional
information on how to use this product in an OpenVMS environment.
Local copies of these Release Notes and User Guide are installed
at
SYS$COMMON:[JAVA$150.DOCS]RELEASE_NOTES.HTML and
SYS$COMMON:[JAVA$150.DOCS]USER_GUIDE.HTML, respectively.

Determining Your Installed Version
After downloading, installing, and running the command procedure
to set up the Java environment, use the java -fullversion
command to display the version. For example:
$ java -fullversion java full version "1.5.0-n"
where n identifies the specific JDK 5.0
that is installed.
To switch from one version to another, see Switching Versions in the User Guide.

Contents of the JDK
This section provides a general summary of the files and directories
contained in the JDK once it has been installed on your system.
Note: For simplicity, these release notes assume
you installed the JDK using the default location and therefore reference
SYS$COMMON:[JAVA$150] throughout the text. However,
if you specified a destination and installed the kit in that alternate
location, substitute that location for the default while reading
the examples in this document.
Development Tools
In SYS$COMMON:[JAVA$150.BIN]
This area contains programs that will help you develop, execute,
debug, and document programs written in the Java programming language.
For further information, see Sun's Tools and Utilities
page.
Important: Review the information in the Interpreting Commands and OpenVMS Operating
System Differences table in the User Guide to understand fully
the nuances and differences in JDK 5.0 on OpenVMS Alpha.
Runtime Environment (JRE)
In SYS$COMMON:[JAVA$150.JRE]
An implementation of the Runtime Environment (JRE) for use by the
JDK. The runtime environment includes a virtual machine for Java
2, class libraries, and other files that support the execution of
programs written in the Java programming language. (Note:
The JRE included in the JDK is separate from the JRE kit).
Additional Libraries
In SYS$COMMON:[JAVA$150.LIB]
Additional class libraries and support files required by the development
tools.
Demo Applets and Applications
In SYS$COMMON:[JAVA$150.DEMO]
Examples, with source code, of programming for the Java platform.
These include examples that use Swing and other Java Foundation
Classes.
Additional Demos
In SYS$COMMON:[JAVA$150.VMS_DEMO]
Examples that demonstrate what is needed to write native C programs
to interact with Java code.
C Header Files
In SYS$COMMON:[JAVA$150.INCLUDE]
Header files that support native-code programming using the Java Native Interface
and the Java Virtual Machine
Debug Interface, as described on the Sun site.
Source Code
In SYS$COMMON:[JAVA$150]SRC.ZIP
Java programming language source files for all classes that make
up the Java 2 core API (that is, source files for the java.*,
javax.* and org.omg.* packages, but not
for com.sun.* packages). This source code is provided
for informational purposes only, to help developers learn and use
the Java programming language. These files do not include platform-specific
implementation code and cannot be used to rebuild the class libraries.
To extract these files, use this command:
$ jar xvf src.zip
Do not modify core API source files. To extend the behavior of
the core API, write subclasses of the core API classes.

Using System.getenv
Similar to predefining environment variables for a process on UNIX systems, you can define a list of environment variables to be available to an OpenVMS Java application. With JDK 5.0-5 and higher, you can use System.getenv to build a list of environment variables.
For security reasons, we have not implemented a blind default list of environment variables. Also, we suggest keeping the variable lists to only those used by your Java application. For example, exporting the logical that points to the location of SYSUAF in a web application might be seen as a security issue because normal Web application users are not required to actually log in to the system.
By default, System.getenv builds a list of environment variables from the following four logicals:
JAVA$GETENV_PROCESS_LIST
JAVA$GETENV_JOB_LIST
JAVA$GETENV_GROUP_LIST
JAVA$GETENV_SYSTEM_LIST
The following logicals are also included in the list:
HOME
USER
TERM
PATH
Rules for each item found in the list:
- Search the default logical name tables (lnm$file_dev):
- If found, build a colon separated list.
- If any value appears to be in OpenVMS file format, convert the name to UNIX format following the Java$filename_controls rules.
- If the logical is not found, Java checks for a symbol definition:
Symbols are translated “as is”. OpenVMS file format is not converted.
- If either a logical or symbol is not found, the item is not included in the list.
Note: String System.getenv(String) is case-sensitive. Because Java for OpenVMS attempts to follow UNIX behavior, this lookup is designed to be case-sensitive. This means you must define the item in the list exactly how you would on a UNIX system. Keeping the case-sensitive property also supports the usage of the various DECC Run-Time Library (RTL) logicals that enable or disable case.
To match a true UNIX environment, define the following DECC RTL logicals as TRUE:
DECC$EFS_CASE_PRESERVE TRUE
DECC$EFS_CHARSET TRUE
And define the following DECC RTL logical as FALSE, or leave it undefined:
DECC$EFS_CASE_SPECIAL FALSE (or not defined)
If DECC$EFS_CASE_PRESERVE and
DECC$EFS_CHARSET are not defined, or are defined as FALSE, all items in the list will be lowercased.
If DECC$EFS_CASE_SPECIAL is defined as TRUE, all items that contain all uppercase letters will appear lowercased in the list.
For example:
$ define JAVA$GETENV_SYSTEM_LIST SYS$LOGIN, SYS$SCRATCH, SYS$DISK
$ define JAVA$GETENV_PROCESS_LIST foobar, testing, ZTEST ! ZTEST must be all caps
$ foobar == "symbol value"
$ define testing "logical value"
$ def ZTEST "ZTESTFOUND"
System.getenv should return a string list like the following:
foobar=>symbol value
XFILESEARCHPATH=>/usr/dt/app-defaults/%L/Dt
sys$scratch=>/SYS$SYSROOT/sysmgr
ZTEST=>ZTESTFOUND
NLSPATH=>/usr/dt/lib/nls/msg/%L/%N.cat
USER=>SYSTEM testing=>logical value
sys$disk=>/SYS$SYSROOT/sysmgr
sys$login=>/SYS$SYSROOT/sysmgr
HOME=>SYS$SYSROOT:[SYSMGR]
TERM=>unknown
PATH=>SYS$SYSROOT:[SYSMGR]

Resolving Domain Names in Java
Domain-name resolving can be done by the sockets API or the JDK itself. To make domain-name resolving work in the JDK on OpenVMS systems, you must configure your system as follows:
- Configure the BIND resolver using the ASCII configuration file TCPIP$ETC:RESOLV.CONF. For more information, refer to the document HP TCP/IP Services for OpenVMS Management.
- Add the directory map into the
java$filename_controls logical:
$ show log java$filename_controls
"JAVA$FILENAME_CONTROLS" = "131592" (LNM$JOB_899A9900)
If the directory mapping bit is not set as in the above example, set it as follows:
$ b=131592+536870912 ! add in the directory mapping bit
$ show sym b
B = 537002504 Hex = 20020208 Octal = 04000401010
$ def java$filename_controls 537002504
- Direct java to get the DNS configuration from
/sys$system/resolv.conf instead of /etc/resolv.conf:
$ DEF JAVA$DIRECTORY_MAPPING_COUNT 1
$ DEF JAVA$DIRECTORY_MAPPING_01 "/etc/resolv.conf=/sys$system/resolv.conf"

Using Java Web Start
Java Web Start provides the ability to run Java applications with
a single click from your Web browser. If the application is not
on your system, Java Web Start will download all needed files to
run the application. It caches these files on your system so that
the application can be rerun without having to once again download
the application.
In most cases, Java Web Start for OpenVMS works as described in
Sun’s
Java Web Start documentation. However, some OpenVMS specific
setup tasks must be done before running Java Web Start applications
from the HP Secure Web Browser for OpenVMS Alpha (based on Mozilla)
These setup tasks are:
- Install JDK 5.0-2 or higher.
- Download and install the HP
Secure Web Browser for OpenVMS Alpha (based on Mozilla).
- Define a helper application for jnlp files in Mozilla by doing
the following:
Run Mozilla interactively.
When Mozilla comes up, click on “Preferences…”
in Mozilla’s “Edit” menu.
Click on “Helper Applications.”
Click on “New Type.”
Enter the following information:
| Mime Type: |
application/x-java-jnlp-file |
| Description: |
Java Web Start |
| Extension: |
jnlp |
| Open it with: |
/sys$manager/java$150_javaws.com |
Then, press “OK.”
To run Java Web Start as a standalone application, install JDK
5.0-6. Then enter the commands:
$ @SYS$COMMON:[JAVA$150.COM]JAVA$150_SETUP.COM
$ define DECC$EFS_CASE_PRESERVE ENABLE
$ javaws
Setting DECC$EFS_CASE_PRESERVE will enhance Java Web Start’s
ability to find cached applications on your system.

Defining RMS Record Attributes
JDK 5.0-3 and higher provides the capability to exercise closer control over Record Management Services (RMS) file attributes used by the CRTL library to manipulate files on behalf of the J2SDK. You can now override the default RMS file operation attributes with attributes of your own choosing.
This is done by defining the OpenVMS logical name JAVA$FILENAME_MATCH_LIST. The value of JAVA$FILENAME_MATCH_LIST consists of file name patterns and RMS attributes. The RMS attributes are passed to the CRTL library by the J2SDK when it asks the CRTL library to manipulate files whose names match the file name patterns.
The value consists of one or more comma separated specifiers, where each specifier is of the form:
"file_match_pattern=<RMS parameter>/<additional RMS parameter>/<..."
Restrictions:
- Patterns/RMS parameters can not contain the ':' character.
- JRE file sharing will NOT be enabled for files matching the file_match_pattern.
- Other Java logical name settings (e.g. JAVA$CREATE_STMLF) may be ignored.
Examples:
$ define JAVA$FILENAME_MATCH_LIST "*.obj=ctx=stm"
This causes the attribute "ctx=stm" to be used when the CRTL library opens a file whose name matches the pattern “*.obj”.
Possible Usage:
On OpenVMS Alpha, *.obj files have variable length record format with a two byte header. By default, the J2SDK relies on the CRTL library to treat all files as if they have Stream_LF record format. This causes problems when using the jar tool to create a .jar file composed of .obj files. As the CRTL library reads the .obj files it converts their records to Stream_LF record format by removing the 2 byte variable length header and adding a <LF> character to the end of each record. When the .obj files are extracted from the .jar file their two byte record header will have been lost and tools such as the OpenVMS linker will not be able to properly read these .obj files.
You can avoid this problem by setting JAVA$FILENAME_MATCH_LIST as specified above. This will cause the jar tool to copy the .obj files into the .jar file without losing their two byte record headers. When the .obj files are restored they can then be converted back to a format that is acceptable to the OpenVMS linker by using the OpenVMS “$ set file/attr=(RFM:VAR)” command.
$ define JAVA$FILENAME_MATCH_LIST "*.*=shr=get,put,upi/rop=rea"
This is the equivalent of:
$ define java$file_open_mode 3
However, without JRE file sharing.
$ define JAVA$FILENAME_MATCH_LIST "*.exe=ctx=stm", -
"*.pcsi_sfx_axpexe=shr=get,put,upi/rop=rea", -
"/apache$root/logs/error*=shr=get,put,upi/rop=rea/fop=dfw,sup/mbc=127"
This example demonstrates combining multiple settings using a single instance of JAVA$FILENAME_MATCH_LIST.
This setting causes:
- *.exe files to be treated as Stream_LF record format.
- *.pcsi_sfx_axpexe files to be opened as shared.
- /apache$root/logs/error* files to be opened as shared, with deferred write, and allocated a larger than normal Multiblock Count (mbc)
For a complete list of the RMS attributes that can be set via this mechanism, see:
http://h71000.www7.hp.com/DOC/83final/5763/5763pro_027.html#fab_rab_keywords_1.

Known Issues
This section provides descriptions of the known issues and limitations
that exist in JDK 5.0 for OpenVMS Alpha; these issues include the
following:
- The “s” mode of the RandomAccessFile class does not function as expected: it is ignored by the JDK. It requires a fix in the C runtime library that will be available in a future version of OpenVMS.
- Java Networking IPv6 support is not included in this JDK release.
- In order to support Japanese fonts you need to be using the
Motif Toolkit instead of the default XToolkit. To use the MToolkit
there are three logicals you need to re-define:
$ define JAVA$MAWT_SHR -
SYS$COMMON:[JAVA$150.JRE.LIB.Alpha.MOTIF12]JAVA$MAWT_SHR.EXE;
$ define JAVA$MAWT_G_SHR -
SYS$COMMON:[JAVA$150.JRE.LIB.Alpha.MOTIF12]JAVA$MAWT_G_SHR.EXE;
$ define AWT_TOOLKIT "MToolkit"
Note: the last one was not previously defined
in SETUP.COM.
To switch back to using the XToolkit, just redefine the first
two logicals back to their original values, and either de-assign
the AWT_TOOLKIT logical or define it to be "XToolkit".
- Java (TM) Virtual Machine Tools Interface (JVMTI) is now partially supported by the Classic VM,
but not for the Fast VM. It supports JDB and passes the JVMTI JCK tests, but does not yet support
some optional features like:
- Getting notified on some actions, e.g. when VM compiles a method and when the
VM allocates/frees an object (e.g a dynamically created object)
- Some per-thread operations like stop/interrupt a thread and get cpu time spent on a thread
- The
java.endorsed.dirs property is not supported in the classic VM.
- The Troubleshooting tools, jinfo, jmap, jsadebugd, and jstack, that were introduced in JDK 5.0 are NOT supported in this release.
Important: Review the information in the Interpreting
Commands and OpenVMS Operating System Differences table in the
User Guide and the remaining sections to fully understand the nuances
and differences in this JDK.

Documentation
The JDK 5.0 documentation tree begins at the following location
on the system where the JDK is installed:
SYS$COMMON:[JAVA$150.DOCS]INDEX.HTML
The installed documentation is in HTML format and includes this
release notes file and the user guide file, as well as the aforementioned
index.html file.
Note: For simplicity, these release notes assume
you installed the JDK using the default location and therefore reference
SYS$COMMON:[JAVA$150] throughout the text. However,
if you specified a destination and installed the kit in that alternate
location, substitute that location for the default while reading
the examples in this document.
For core API documentation, refer to the following sources:
Also, you can browse the Software Documentation
page on our web site. Optimizing
Java Technology Software Performance on OpenVMS provides tips
on improving Java performance on OpenVMS systems.
For more information on this release, refer to the Release Notes for the
J2SE 5.0 software from Sun Microsystems, and to our User Guide for this JDK.
If you are new to the Java programming language, you can browse
or download Sun's Java Tutorial.

Problem Reporting
To report problems, refer to our Software Support
web page.
|