HP-UX Programmer's Guide for Java 2
Table Of Contents
- Table of Contents
- 1 Introduction
- 2 HotSpot Technology Tools and Commands
- 3 Configuration for Java™ Support
- 4 Performance and Tuning
- 5 Measuring System Performance
- 6 Using Threads
- 7 Using Signals
- 8 Using Java™ 2 JNI on HP-UX
- 9 Expanding Memory
- Determine your requirements
- Memory layout under HP-UX 11.0 (PA-RISC only)
- Additional memory available under HP-UX 11i (PA-RISC only)
- Allocating physical memory and swap in the Java™ heap
- Useful key command-line options for allocating memory
- Application-dependent considerations using large heap size HP-UX 11i PA-RISC
- Expanding heap size in native applications on PA-RISC HP-UX 11.11 and later releases
- Expanding heap size in native applications on Integrity HP-UX 11.23 and later releases
- Expanding heap size in HP-UX PA-RISC
- Expanding heap size in HP-UX Integrity
- 10 Diagnosing Memory Leaks
- A JDK/JRE 6.0.n and 7.0.n Usage Notes
- Using Java 2 JNI on HP-UX
- Garbage collection
- Asian TrueType fonts and Asian locales
- Date/Time methods defaults
- Profiling
- Compatibility with previous releases
- Java Cryptography Extension (JCE) policy files
- Configuring the Java Runtime Plug-In
- CLASSPATH environment variable
- Java Web Start technology usage
- Upgrading from a previous Java Web Start version
- IPv6 support
- Allocation Site Statistics and Zero Preparation -Xverbosegc
- JDK 6.0.04 flags
- GC log-rotation support
- NUMA collector enhancements
- ThreadDumpPath support
- Garbage-First garbage collector (-XX:+UseG1GC)
- jmap, jinfo, and jstack tools included in JDK 6.0.03
- Additional Java Web Start documentation
- B JDK/JRE 5.0.n Usage Notes
- Using Java 2 JNI on HP-UX
- Garbage collectors: Parallel and Concurrent Mark Sweep
- Allocating physical memory and swap in the Java heap
- Asian TrueType fonts and Asian locales
- Date/Time methods defaults
- Profiling
- Closing a socket (PA-RISC only)
- Compatibility with previous releases
- Java Cryptography Extension (JCE) policy files
- Allocation Site Statistics and Zero Preparation -Xverbosegc
- IPv6 support on Java 5.0
- GC log-rotation support in 5.0
- ThreadDumpPath support in 5.0
- Dynamically loaded libraries in 5.0
- Performance improvement for String.intern()
- Configuring the Java Runtime Plug-In
- CLASSPATH environment variable
- Java Web Start technology usage
- C SDK/RTE 1.4.2.n Usage Notes
- Removing support for unwanted architectures in the JRE
- Support for dynamic thread local storage (TLS)
- Signal Chaining functionality
- Using Java 2 JNI on HP-UX
- HotSpot JVM options
- Garbage collectors: Parallel and Concurrent mark sweep
- Allocating physical memory and swap in the Java heap
- Asian TrueType fonts and Asian locales
- Date/Time methods defaults
- Profiling
- Closing a socket when accept or read is pending (PA-RISC) - new patch information!
- Compatibility with previous releases
- Runtime Plug-In usage and configuration
- GC log-rotation support
- ThreadDumpPath support
- D Additional Resources
- Index

6 Using Threads
The HP-UX 11 and 11i operating systems support kernel threads. Each kernel thread
is scheduled to run independently which can result in multiple threads running in
parallel on multiple processors. The current JVM for HP-UX 11.0 and 11i uses the POSIX
1003.1x Kernel Threads API to access thread support on HP-UX 11.0 and 11i. The
libpthread libraries (for PA-RISC and for Itanium) are in /usr/lib.
Previously, the HP-UX 10.20 operating system supported a user-threads package known
as DCE or CMA threads. The user-threads package in the JVM for HP-UX 10.20 was
known as "green" threads and was similar to but not the same as CMA threads. With
CMA or green threads, you could create more than one thread in a user's environment.
However, the user threads in a single process could not run on two processors at the
same time.
Dynamic thread local storage (TLS) support
HP Integrity:
Dynamic thread local storage is fully supported on all HP Integrity (Itanium) systems,
beginning with SDK Version 1.4.1.05.
HP9000 PA-RISC:
Currently, the dynamic loader used by shl_load does not support dynamically loading
a shared library containing TLS when the library was not included in the link line. For
example, you may need to load a library dynamically that contains TLS (such as
libjvm.sl) by using shl_load or dlopen, without having linked your application
against it. This might be the case if your application uses plug-ins.
To obtain the LD_PRELOAD_ONCE functionality, you need to install the HP-UX patch
(or the HP-UX patch that supersedes it) shown below.
HP-UX 11.00 systems, install HP-UX patch PHSS_28869. HP-UX 11.11 systems, install
HP-UX patch PHSS_28871. HP-UX 11.23 PA systems do not need an HP-UX patch.
For more information on LD_PRELOAD_ONCE functionality and its limitations, read
the man page for dld.sl after you have installed the HP-UX patch.
Thread scheduling issues on HP-UX 11.0 and 11i
Due to security restrictions in HP-UX 11.0 and 11i, if the JVM is not running as a process
having privilege PRIV_RTSCHED, then all Java™ threads within that JVM will execute
at the same priority regardless of the priorities set by the programmer via
java.lang.Thread.setPriority(). If the JVM is running as a user with
PRIV_RTSCHED, Java™ thread priorities will be mapped into the range of priorities
offered by the SCHED_TIMESHARE policy (see rtsched(2) for details).
38 Using Threads