Release Notes Java(TM) SE Development Kit (JDK) 6.0-5 for the OpenVMS Integrity servers Operating System for the Java(TM) Platform Contents * Introduction * JDK 6.0 New Features + JDK 6.0-5 New Features + JDK 6.0-4 New Features + JDK 6.0-3 New Features + JDK 6.0-2 New Features + JDK 6.0-1 New Features * Fixed Problems + Problems Fixed in JDK 6.0-5 + Problems Fixed in JDK 6.0-4 + Problems Fixed in JDK 6.0-3 + Problems Fixed in JDK 6.0-2 * Compatibility * Installation + Prerequisites o Mandatory Patches + Installing the Kit + Determining Your Installed Version + Contents of the JDK * Using SIGSEND to dump the Java call stack * Known Issues * Documentation * Problem Reporting Introduction Thank you for downloading the Java(TM) SE Development Kit (JDK) 6.0-5 for the OpenVMS Integrity servers Operating System for the Java(TM) Platform (hereafter called the JDK). For 6.0, the terms JDK and JRE have been reinstated. These release notes contain installation instructions, new features, known issues, and other information specific to this release of the OpenVMS Integrity servers port of Oracle's Java(TM) Platform, Standard Edition 6. In addition, the release-independent User Guide contains information on getting started using the JDK, using the Plug-in, and troubleshooting. This kit can be used to develop and run Java(TM) applets and programs on OpenVMS Integrity server systems, Version 8.3 and higher. The JDK 6.0-5 is based on Sun's J2SE 6.0_37 Solaris Reference Release and Olson timezone data file tzdata2012c, and passes all the tests in Sun's Java Compatibility Kit test suite (JCK V6b). For additional information on the DST changes, please see the Java Technology Software (OpenVMS and Tru64(TM) UNIX(R)) website. Note that the JDK kit contains the HotSpot Virtual Machine that is designed for maximum program execution speed for applications running in a server environment. To set up up your Java environment, use the following command: $ @SYS$COMMON:[JAVA$60.COM]JAVA$60_SETUP ! Use the HotSpot VM Note: The option UsePerfData is set to false by default. If you need to use JMX and JMM APIs, please specify -XX:+UsePerfData on the command line when invoking the Java application. Note: For simplicity, these release notes assume you installed the JDK using the default location and therefore reference SYS$COMMON:[JAVA$60] 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$60_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$60_SETUP.COM Before JDK 6.0, the Java heap size was limited to 2GB. This limit has been lifted in JDK 6.0. The application can now use a large heap, up to a maximum of 32GB. For more information, refer to the sections "The layout of the process space in JDK 6.0," "Using GetPrimitiveArrayCritical," and "Using ReleasePrimitiveArrayCritical" in the user guide. IMPORTANT: Please make sure you understand the Copyright (copyright.html, installed file) and License (license.html, installed file) information before using this release. Back to top JDK 6.0 New Features The following is a list of new features from Oracle, in JDK 6.0. HP recommends that you read Oracle's Java SE 6 Documentation for a thorough description of all new features and enhancements available in the Java SE 6.0. * Collections Framework Enhancement * Enhancements in java.lang.instrument * Enhancements in java.io * Enhancements in java.nio * Improvements to Program Execution Speed Other noteworthy changes include: * JMX API Enhancements * Enhancements in java.rmi * Scripting for the Java Platform For a complete list of features introduced in 6.0 since the previous major release (1.5), refer to Oracle's Java SE 6 Features and Enhancements. JDK 6.0-5 New Features JDK 6.0-5 release provides bug fixes for issues which were reported. For more information on the bug fixes which are addressed as part of this release, see Problems Fixed in 6.0-5. JDK 6.0-4 New Features JDK 6.0-4 is a maintenance release with the following new feature: * Java script is supported. JDK 6.0-3 New Features JDK 6.0-3 moves the location of compiled methods from virtual space P0 to P1. JDK 6.0-2 New Features This kit installs JDK 6.0-2, which is a maintenance release with the following new features from HP: * A new high performance server compiler developed by HP is now supported. * JVMTI is now fully supported. * Java IO operations are now supported on files larger than 2G byte. * A new program, SIGSEND, allows users to send the signal "3" to a running Java program to dump the JAVA call stack. For more information, see Using SIGSEND to dump the Java call stack. JDK 6.0-1 New Features JDK 6.0-1 was the initial release for the OpenVMS Integrity servers Operating System. Back to top Fixed Problems The following sections provide important information about problems that HP has fixed in JDK 6.0. HP recommends that you also review Oracle's Java SE 6 Update release notes for information about bug fixes that Oracle has made for each of the 1.6.0 releases. Problems Fixed in JDK 6.0-5 * Java 6.0 fails to compile with "cannot find symbol" error, when referencing Java programs with mixed-case Class names and/or mixed-case public routine names, available on ODS-2 disks. This problem has been fixed by restoring the default File.list() behavior seen in previous OpenVMS Java releases. See known issues section for more details on "Using JAVA$READDIR_CASE_DISABLE". * Tomcat application fails to start with Java 6.0-4, raising a fatal error ShouldNotReachHere(), when used with -Xverbosegc option. This problem has been fixed. * Java 6.0-4 raises an exception when connecting to JDBC database using getConnection method. This problem has been fixed. * The certificate file CACERTs deployed incorrectly in 6.0-4 release. This problem has been fixed. * Java API setReceiveBufferSize()fails with socket exception for JDK 6.0-3 and later versions when called from a process which does not have any one of the SYSPRV, BYPASS, or OPER OpenVMS process privileges granted. These permissions are required by HP OpenVMS TCP/IP services. For more information, see Known Issues. Problems Fixed in JDK 6.0-4 JDK 6.0-4 is based on Sun's J2SE 6.0_37 Solaris Reference Release and Olson timezone data file tzdata2012c, and passes all the tests in Sun's Java Compatibility Kit test suite (JCK V6b). For additional information on the DST changes, please see the Java Technology Software (OpenVMS and Tru64(TM) UNIX(R)) website. This JDK is a maintenance release and includes the following fixed problem from HP: * If any systems having physical memory (that is, greater than 16 GB) and large page file quota, Java fails to start and the following error message is displayed: Incompatible minimum and maximum heap sizes specified. This problem has been fixed. * Java crashes with floating divide by zero arithmetic faults. This problem has been fixed. * Fail to execute the sigsend utility which is used to dump Java stack information when JVM is running. This problem has been fixed. * Multi-thread file operation failed to read or write the same file at the same time with FileChannel. This problem has been fixed. * With the latest CRTL release of OpenVMS 8.4, the "s" and "d" mode of the RandomAccessFile class is not ignored by the JDK. * CVEs are fixed in this release. Problems Fixed in JDK 6.0-3 JDK 6.0-3 is based on Sun's J2SE 6.0_27 Solaris Reference Release and Olson timezone data file tzdata2011g, and passes all the tests in Sun's Java Compatibility Kit test suite (JCK V6b). For additional information on the DST changes, please see the Java Technology Software (OpenVMS and Tru64(TM) UNIX(R)) website. This JDK is a maintenance release and includes the following fixed problem from HP: * When you attempt to print from the Java program using the Java print service API (javax.print), the following error message is displayed: ERRORPrintManager.print(81)- xxxxx device cannot be found This problem has been fixed. * The plug-in does not work when it interacts with the java script. This problem has been fixed. * This error message is displayed when you use Headless Abstract Windowing Toolkit (AWT) interface: -LOADER-E-BADSVINDX, symbol vector index is too large This problem has been fixed. * You are unable to access a remote secure web site using Java application because there is shortage of CR root in the JDK. This problem has been fixed. * The application crashes when print services is used. This problem has been fixed. * You might experience the problem of ASTFLT when JVM runs the code of call stub. This problem has been fixed. * The security issues of CVEs affect JDK. This problem has been fixed. * When you attempt to define JAVA$RENAME_ALL_VERSIONS as true, there might be a possiblility for an access violation that can occur in JVM. This problem has been fixed. Problems Fixed in JDK 6.0-2 JDK 6.0-2 is based on Oracle's Java SE 6.0_19 Solaris Reference Release and Olson timezone data file tzdata2010b, and passes all the tests in Oracle'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 Tru64T UNIX(R)) website. This JDK is a maintenance release and includes the following fixed problem from HP: * A previous problem whereby using JMX parameters might have crashed a user application is fixed. * A previous problem where the version string of the JDK 6.0-1 might have been 6.0 rather than 1.6.0 is fixed. * Previously, the time might not have been correct for some special time zone. This problem is fixed. * Previously, users might have experienced a problem where CORBA SelectorThread stops handling requests. This problem has been fixed with a JDK change and a patch to the poll run-time library function. Back to top Compatibility JDK 6.0-5 is compatible with previous SDK versions. Most existing programs run on the 6.0 platform. However, some important incompatibilities do exist and are thoroughly discussed in Oracle's Java SE 6 Compatibility with Previous Releases document. Back to top Installation The following sections describe how to install the JDK 6.0 kit on your OpenVMS Integrity servers system. Prerequisites The prerequisites for running this kit are: * JDK 6.0 must be installed on an ODS-5 formatted disk. * OpenVMS Integrity servers V8.3 or higher. See Mandatory Patches. * TCP/IP Services for OpenVMS Integrity servers V5.5 or higher with latest ECO 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 UCX directly and use only the socket functions available from HP C, MultiNet should work with this JDK. * DECWindows Motif V1.5, 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 Integrity servers, you must install prerequisite patches for your OpenVMS version (See the list below. Install the patch versions listed, or later, if superseded.). Patches for OpenVMS Integrity server V8.3 + All Rating 1 ECOs (search keyword = 'INSTALL_1' ) + VMS83I_ICXXL-V0500 (or latest ECO) + VMS83I_ACRTL-V0800 (or latest ECO) + VMS83I_PTHREAD-V0200 (or latest ECO) + TCPIP-V0507-13ECO1-1 (or latest ECO) Patches for OpenVMS Integrity server V8.3-1H1 + All Rating 1 ECOs (search keyword = 'INSTALL_1' ) + VMS831H1I_ ICXXL-V0200 (or latest ECO) + VMS831H1I_ACRTL-V0400 (or latest ECO) + VMS831H1I_ PTHREAD-V0200 (or latest ECO) + TCPIP-V0507-13ECO1-1 (or latest ECO) Patches for OpenVMS Integrity server V8.4 + All Rating 1 ECOs (search keyword = 'INSTALL_1' ) + TCPIP-V0507-13ECO1-1 (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. Back to top Installing the Kit To install the JDK kit: 1. Download and install the prerequisite ECOs. 2. Download the file HP-I64VMS-JAVA60-V0106-5-1.PCSI_SFX_I64EXE (~562,000 blocks) from our Software Download web page and run the file to extract it into 2 files: $ RUN HP-I64VMS-JAVA60-V0106-5-1.PCSI_SFX_I64EXE HP-I64VMS-JAVA60-V0106-5-1.PCSI$COMPRESSED (~752,000 blocks) HP-I64VMS-JAVA60-V0106-5-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 hp-i64vms-java60-v0106-5-1.pcsi$compressed - HP-I64VMS-JAVA60-V0106-5-1.PCSI$COMPRESSED 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. 3. To extract a local copy of these Release Notes before installing the JDK: $ PRODUCT EXTRACT FILE JAVA60 - /SOURCE=[directory_where_you_put_the_PCSI$COMPRESSED_file] - /SELECT=RELEASE_NOTES.HTML - /DEST=[] 4. Install the JDK kit from the .PCSI$COMPRESSED file obtained, using the PCSI (POLYCENTER Software Installation) utility PRODUCT command: $ PRODUCT INSTALL JAVA60 - /SOURCE=[directory_where_you_put_the_PCSI$COMPRESSED_file] - /NORECOVERY_MODE By default, the JDK gets installed in root directory SYS$COMMON:[JAVA$60]. As an alternative to installing the kit in the default location SYS$COMMON: [JAVA$60], 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 6.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$60.COM]JAVA$60_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$60.COM]JAVA$60_SETUP.COM is renamed to SYS$COMMON:[JAVA$60.COM]JAVA$60_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 Integrity servers installs different versions of the JDK using unique product names. For example: o SDK v 1.4.2-n is installed as product JAVA142 o JDK 5.0-n is installed as product JAVA150 o JDK 6.0-n is installed as product JAVA60 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$60] directory is the typical location for the installation of this kit. 5. To use JDK 6.0, you must first set up the Java environment. 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. 6. 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$60.DOCS]RELEASE_NOTES.HTML and SYS$COMMON:[JAVA$60.DOCS]USER_GUIDE.HTML, respectively. Back to top 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 "6.0-n" where n identifies the specific JDK 6.0 that is installed. To switch from one version to another, see Switching Versions in the User Guide. Back to top 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$60] 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$60.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 Oracle's JDK 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 6.0 on OpenVMS Integrity servers. Runtime Environment (JRE) In SYS$COMMON:[JAVA$60.JRE] An implementation of the Runtime Environment (JRE) for use by the JDK. The runtime environment includes a virtual machine for Java, 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$60.LIB] Additional class libraries and support files required by the development tools. Demo Applets and Applications In SYS$COMMON:[JAVA$60.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$60.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$60.INCLUDE] Header files that support native-code programming using the Java Native Interface and the JVM Tools Interface, as described on the Oracle site. Source Code In SYS$COMMON:[JAVA$60]SRC.ZIP Java programming language source files for all classes that make up the Java 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. Back to top Using SIGSEND to dump the JAVA call stack As of this JDK 6.0-5 release, the logicals JAVA$ENABLE_SIGQUIT_MAILBOX and JAVA$ENABLE_SIGQUIT_CTRLC are retired, and a new program, SIGSEND, allows users to send any signal to a running process. To dump the Java call stack, send the signal "3" to a running Java program by issuing the following command: $SIGSEND 3 Back to top Known Issues This section provides descriptions of the known issues and limitations that exist in JDK 6.0 for OpenVMS Integrity servers; these issues include the following: * Using JAVA$READDIR_CASE_DISABLE: Java 6.0 application performance can be improved by defining JAVA$READDIR_CASE_DISABLE logical; this logical name allows the user to turn off the case-sensitive filename extraction feature, (ODS-2 "auto case" correction for "readdir" entries) if it is not needed. In such cases, for ODS-2 file formats, the Java 6.0 compiler fails with "cannot find symbol" error when referencing Java programs with mixed-case Class names. For more information on usage of JAVA$READDIR_CASE_DISABLE logical, see "Application Performance Tuning" section in the Java 6.0 User Guide. * To set the receive or send buffer size using setReceiveBufferSize(int) or setSendBufferSize(int) method, process must contain either of the SYSPRV, BYPASS, or OPER OpenVMS process privileges; these restrictions are imposed by HP OpenVMS TCP/IP services. Without these privileges, these Java methods behave as follows: 1. If receive or send buffer size requested is greater than the default receive or send buffer size set on the system, these methods fail. 2. If receive or send buffer size requested is less than or equal to the default receive or send buffer size set on the system, the system returns the default receive or send buffer size. For more information about OpenVMS process privileges, see HP TCP/IP Services for OpenVMS Sockets API and System Services Programming manual. Alternatively, you can modify the default buffer size value in the system: $ @SYS$COMMON:[SYSMGR]TCPIP$DEFINE_COMMANDS.COM $ sysconfig -r inet tcp_revspace= $ sysconfig -r inet tcp_sendspace= $ sysconfig -r inet udp_recvspace= $ sysconfig -r inet udp_sendspace= * If process does not have either of the SYSPRV, BYPASS, or OPER OpenVMS process privileges, the invocation of setBroadcast(boolean) method fails. * JAVA debugger (JDB) fails with UTF ERROR at startup VM start exception: VM initialization failed for: /SYS$COMMON/JAVA$60/JRE/ bin/java -verbose -Xdebug -Djava.compiler=NONE -agentlib:j dwp=transport= dt_socket,address=strato.asiapacific.hpqcorp.net:49163,suspend=y UTF ERROR ["JR:[j2se.src.solaris.npt]utf_md.c;1":57]: Failed to complete iconv_open() setup. This problem is seen as the JDB uses a C function iconv_open() to allocate descriptor involving UTF-8 conversion; which is not installed by default during OpenVMS installation. To overcome this issue, you must install the VMSI18N kit on your system. This kit is provided on the OpenVMS media set as OpenVMS kit. * Java will not run properly after the DCL command set process/case=sensitive is executed. * Java Web Start is not working for this release. * The "s" and "d" mode of the RandomAccessFile class does not function as expected when running the kit in OpenVMS Integrity servers V8.3-H1 or lower. * -Xeprof option: Generates profile data for HPjmeter is not supported. * Java Networking IPv6 support is not included in this JDK release. * Java will not run properly if the logical name DECC$DISABLE_TO_VMS_LOGNAME_TRANSLATION or DECC$FILENAME_UNIX_ONLY is defined. Running Java with these logical names set is not supported. Note: Java may not run properly with other DECC$* logical names defined. * The jinfo, jmap, jsadebugd, and jstack troubleshooting tools, introduced in JDK 5.0, are not supported on OpenVMS Integrity servers. * The command line option -XX:+UseParallelOldGC is not supported in this 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$60.JRE.LIB.IA64.MOTIF12]JAVA$MAWT_SHR.EXE; $ define JAVA$MAWT_G_SHR - SYS$COMMON:[JAVA$60.JRE.LIB.IA64.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". 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. Back to top Documentation The JDK 6.0 documentation tree begins at the following location on the system where the JDK is installed: SYS$COMMON:[JAVA$60.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$60] 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: * The Java Platform API Specification: + On Oracle's Java Platform, Standard Edition 6.0 API Specification The API documentation provides brief descriptions of the API with an emphasis on specifications, not on examples. * The Java Class Libraries, Second Edition, published by Addison-Wesley Longman. These volumes include much more elaborate descriptions, with definitions of terminology and examples for practically every class, interface, and member. 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 Java SE 6.0 software from Oracle, and to our User Guide for this JDK. If you are new to the Java programming language, you can browse or download Oracle's Java Tutorial. Back to top Problem Reporting To report problems, refer to our Software Support web page.