Novell JVM for NetWare September2002 release version 1.1.7B Table of Contents 1.0 Introduction 2.0 System Requirements 3.0 New Feature Support 3.1 XSetup utility for GUI configuration 3.2 New default and alternative XServers 3.3 New configurable desktop menu 3.4 Java GUI Euro Character Support 3.5 Upgraded JIT 3.6 JAVA_CODEPAGE environment variable 4.0 Java 2 Virtual Machine (VM) Security Flaw 5.0 Recommendations 5.1 Video Cards 5.2 Classes and Libraries 6.0 NetWare Platform Dependencies 6.1 NetWare 5.0 Dependencies 6.2 NetWare 5.1 Dependencies 6.3 Installing the JDK for NetWare 7.0 Performance Tuning 8.0 Using Java Native Interface (JNI) 9.0 JVM File Descriptions 10.0 Support 11.0 Disclaimer and Copyright 11.1 Novell Disclaimer 11.2 Javasoft Disclaimer 12.0 Trademarks 1.0 Introduction This version of the Novell JVM for NetWare supports version 1.1.7B of the JDK. Pure Java applications and applets developed on other platforms should run unmodified on the Novell JVM. If they do not, it is a bug and should be reported. Because Novell is committed to providing the best Java server platform, the GUI on NetWare is intended to provide full support of Java Abstract Windowing Toolkit (AWT) and Java Foundation Classes (JFC) libraries. However, it is Novell's expectation that server-side applications that utilize AWT and JFC will primarily be performing installation, management, and administrative functions. The Server GUI is therefore designed intentionally for a limited number of simultaneous applications. The GUI on NetWare will continue to be fully compliant with the compatibility testing requirements that Sun Microsystems, the owner of Java, establishes in order to remain eligible to receive the Java Compatible designation. Recommendations for tools, third-party class libraries, and hardware follow later in this document. For updated information about Novell's Java products, visit the Novell Java home page at: http://developer.novell.com/ndk/jvm.htm 2.0 System Requirements - The JVM requires a NetWare operating system version 5.x NetWare 5.0 you need to have installed Support Pack 3. NetWare 5.1 you need to have installed Support Pack 2A. - The CPU requirement is at least an Intel Pentium or Pentium Pro with a 100 MHZ processor speed. - Memory requirements are dependent on the size and requirements of the Java applications being executed. However, you should have at least 32 MB available for text-based applications and 64 MB for AWT-based (graphics) applications. - Mouse support includes both PS/2 and serial (COM1 or COM2). - You can use most video chip sets with the XFVGA16 driver (640x480). Developers need to be aware that the NetWare 5.x install has a minimal JVM file set, which allows the server to install using Java. It does not contain the include directory, which is necessary for JVM development work. Thus, you have to install the NDK version of the JVM, which can be downloaded from Novell at the following URL: http://developer.novell.com/ndk/ 3.0 New Feature Support 3.1 XSetup Utility for GUI Configuration An XSetup utility is provided for configuring the GUI environment. It is used to configure standard VGA, super VGA and Accelerated-X servers on NetWare. It allows you to select the video board, keyboard, mouse, and monitor for these video controllers from a set of predefined hardware devices that are supported by the XSetup utility. 3.2 New default and alternative XServers XFree86 SVGA is the new default XServer, and Xi Graphic's Accelerated-X XServer is available as an alternative. XFree86 supports VESA 1.2 through 3.0. Support is limited to 640x480 16 colors for VGA and 256 colors for VESA compliant video controllers. Accelerated-X supports over 540 specific video cards; however the accelerated video controllers are limited to 256 colors. 3.3 New configurable desktop menu A configurable desktop menu is provided with options for adding, modifying and removing menu items. You can also install a program into the menu, and set taskbar properties. 3.4 Java GUI Euro Character Support To insert the euro character in a Java GUI screen, press the Ctrl+Alt+E keys together. For keyboards with an Alt+Gr key, you can also insert the euro character by pressing the "Alt Gr" and "e" keys together. To display the euro character in a Java GUI screen, use the 0x20AC (Hex) Unicode character. Note: The euro character is only available in the Java GUI, this will not print to the server console. 3.5 Upgraded JIT The upgraded JIT resolves the previous issues where some applications did not run with the JIT, requiring that the JIT be disabled. The JIT no longer needs to be disabled, but rather it should be enabled because it is now disabled by default (see 8.0 Enabling the JIT). 3.6 JAVA_CODEPAGE environment variable The default code page used on an English NetWare server has traditionally been 437. This default will remain the same; however, if your instantiation of the JVM needs to use a different code page it can be changed via the JAVA_CODEPAGE environment variable. Examples of Usage: envset JAVA_CODEPAGE=Cp1252 envset JAVA_CODEPAGE=Cp437 envset JAVA_CODEPAGE=ISO8859_1 or java -envJAVA_CODEPAGE=Cp1252 YourClassName java -envJAVA_CODEPAGE=ISO8859_1 YourClassName or even java -Dfile.encoding=ISO8859_1 YourClassName java -Dfile.encoding=Cp1252 YourClassName These are only examples and do not represent all the code pages that are supported. To view other possible values, point your browser to: http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html 4.0 Java 2 Virtual Machine (VM) Security Flaw In March 1999 a serious security flaw was found in the Java 2 Virtual Machine (VM). The flaw exploits the VMs Verifier security component. This verifier bug allows unverified code to be executed. This problem has been fixed in this release of the JVM for NetWare (1.1.7B). 5.0 Recommendations 5.1 Video Cards If you are purchasing a new video card, VESA 2.0 support with linear frame buffer access is preferred. Some early cards may not be VESA 2.0 compatible, so make sure that the documentation states whether your card is compliant. The PCI and AGP bus types are the preferred types because they are the fastest. The NetWare GUI performs at the same speed with PCI and AGP. Recommended Video Cards are - Matrox Mystique - Matrox Millennium - TI 3d Rage Pro 5.2 Classes and Libraries When writing Java applications to run on NetWare, we recommend using the Java Foundation class (JFC) libraries from Sun Microsystems. 6.0 NetWare Platform Dependencies 6.1 NetWare 5.0 Dependencies For NetWare 5.0 you need to install Support Pack 3 before installing this version of the Novell JVM for NetWare. You can download the current Support Packs from http://support.novell.com/misc/patlst.htm#nw 6.2 NetWare 5.1 Dependencies For NetWare 5.1 you need to install Support Pack 2A before installing this version of the Novell JVM for NetWare. You can download the current Support Packs from http://support.novell.com/misc/patlst.htm#nw 6.3 Installing the JDK for NetWare JDK updates for NetWare 5.x can be installed as follows: 1) Unload Novell JVM for NetWare (if loaded). 2) Map a drive or attach to the server where you want to install the JDK files. (You must have administrator rights to the server.) 3) Run jvm.exe on your workstation. 4) Follow the rest of the InstallShield instructions to complete the install. 5) Reboot your server. 7.0 Performance Tuning If you have a Java-based server program on the NetWare server and it handles a large amount of traffic, you may need to increase the maximum number of packet receive buffers on the server to prevent packets from getting dropped. Dropped packets slow performance because client programs have to time out and retransmit. To increase packet receive buffers, you can issue a NetWare console command such as: set maximum packet receive buffers = 1000 You can add this command to autoexec.ncf so it is always set when the server comes up. The default native (C) stack size for Java threads on NetWare is 48 KB. For applications that create many threads and do not require such a large stack size, the -ss Java command parameter can be used to specify the stack size. (See JavaSoft's documentation for the Java Interpreter for an explanation of the Java command options.) To specify the amount of virtual memory available to Java applications for non-heap allocations, use the -vm Java command option. The default is 32 MB. The -vm Java command option is unique to NetWare and is not supported by JavaSoft. The syntax for this option is as follows: java -vm MyClass 8.0 Using Java Native Interface (JNI) Included in the java\bin directory is a file named jni.tar which, when extracted, demonstrates simple native method examples for Java 1.1. This package is intended as an example of how to write native methods for the Java 1.1.7b Virtual Machine on NetWare, and is not intended as a comprehensive tutorial on writing native methods. The Invocation API's are not currently supported in JVM 1.1.7b, but may be supported in a future JVM release. The specific calls not supported are: JNI_GetDefaultJavaVMInitArgs JNI_GetCreatedJavaVMs JNI_CreateJavaVM DestroyJavaVM AttachCurrentThread DetachCurrentThread. 9.0 JVM File Descriptions Sys:\Java\Lib classes.zip - Standard Java classes for NetWare Sys:\Java\Bin agent.nlm - Debug agent java.nlm - Novell JVM for NetWare javah.nlm - Creates C header and source files jdbc.nlm - Java Database Connectivity NLM jnet.nlm - Java.net classes support jni.tar - Simple native method examples jpeg.nlm - JPEG image support math.nlm - Math support mmedia.nlm - Multimedia support sysres.nlm - System resources aip.nlm - Java compression library Sys:\Java\NWGFX aiops2.nlm - Mouse driver for PS/2 mouse def_rsp.ncf - Script for setting up GUI to VGA 16 (Default) nwwm.nlm - Window manager for GUI STARTX.NCF - Starts graphical user interface SuperPro.nlm - Utility for creating configuration and startup files nawt.nlm - Java native methods vesa_rsp.ncf - Script for setting up GUI to SVGA 256 colors xf86conf - Configuration file for GUI xfsvga.nlm - Driver for Super VGA 256-color cards xfvga16.nlm - Driver for VGA 16-color cards xlib.nlm - Display mechanism for GUIe xmodmap.nlm - International Keyboard Support NLM Sys:\Java\NWGFX\Fonts - Fonts for displaying characters in an AWT window Sys:\Java\NWGFX\Locale - Locale specific files such as xmodmap.* and keyboard mapping files. Sys:\Java\nwgfx\Pixmap *.xpm - XPM format files used for background pattern Sys:\System aio.nlm - Asynchronous I/O driver, which allows aiocomx.nlm to function as a mouse driver. aiocomx.nlm - Protocol for serial mice. 10.0 Support Support for the JVM is provided by Novell Developer Services through the following newsgroup: News://devforums.novell.com/novell.devsup.ndk_feedback 11.0 Disclaimer and Copyright 11.1 Novell Disclaimer Novell, Inc., makes no representations or warranties with respect to any software, and specifically disclaims any express or implied warranties of merchantability, title, or fitness for a particular purpose. Distribution of any Novell software is forbidden without the express written consent of Novell, Inc. Further, Novell reserves the right to discontinue distribution of any Novell software. Novell is not responsible for lost profits or revenue, loss of use of the software, loss of data, costs of recreating lost data, the cost of any substitute equipment or program, or claims by any party other than you. Novell strongly recommends a backup be made before any software is installed. Technical support for this software may be provided at the discretion of Novell. Copyright (C) 1999-2001 Novell, Inc. All rights reserved. 11.2 Javasoft Disclaimer The Technology is not fault tolerant and is not designed, manufactured or intended for use or sale as online control equipment in hazardous environments requiring failsafe performance, such as in the operation of nuclear facilities, aircraft navigation or communication systems, air traffic control, direct life support machines, or weapons systems, in which the failure of the Technology or Product(s) could lead directly to death, personal injury, or severe physical or environmental damage. 12.0 Trademarks Novell and NetWare are registered trademarks of Novell, Inc. in the United States and other countries, and NLM is a trademark of Novell, Inc. PS/2 is a registered trademark of International Business Machines Corporation. Intel and Pentium are registered trademarks of Intel Corporation. Matrox Mystique is a trademark of Matrox Electronic Systems, Ltd. InstallShield is a registered trademark of Stirling Technologies. Java and JDK are trademarks or registered trademarks of Sun Microsystems in the United States and other countries, and Javasoft and Solaris are registered trademarks of Sun Microsystems. Symantec is a registered trademark and Visual Cafe for Java is a trademark of Symantec Corporation.