Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Update 2 Release Notes

- Previous: Chapter 1 Overview
- Next: Chapter 3 Known Issues and Limitations

# Chapter 2 About Application Server 8.1 Update 2 2005Q2

The Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Update 2 is a J2EE 1.4 platform-compatible server for the development and deployment of J2EE applications and Java technology-based web services in large-scale production environments.

This section includes:

- What’s New in the 8.1 2005Q2 Update 2 Release

- Hardware and Software Requirements

- Bugs Fixed in the Enterprise Edition 8.1 Release

- Bugs Fixed in the Enterprise Edition 8.1 Update 2 Release

- Additional HADB Information

- Application Server Product Releases

- Compatibility Issues

- J2EE Support

- High Performance

- Scalability

- JavaServer Faces 1.1 Support

# What’s New in the 8.1 2005Q2 Update 2 Release

The Application Server Enterprise Edition 8.1 2005Q2 Update 2 includes the following enhancements:

- Improved Administration — The Application Server supports the remote secure management of complex multi-machine enterprise deployments using either a browser based console or a scriptable command line interface. It also provides a rich JMX based API allowing remote, secure, programmatic access to administrative and monitoring functions.

- Message Broker — The Application Server is bundled with an integrated enterprise class message broker that features providing highly available, reliable, high performance, and scalable messaging.

- Expanded Platform Support — Additional operating systems, databases, locales, and hardware are supported.

- Sun Java Enterprise System — As a key component of the Sun Java Enterprise System, the Application Server is tightly integrated with portal and network identity services.

- Migration and Upgrade Tools — These tools enable you to verify J2EE applications for standards conformance and portability, help with migrations from other J2EE Application Servers (JBoss, WebLogic, WebSphere), and aid in upgrading from previous versions of Sun ONE Application Server/ iPlanet Application Server.

- Java 2 Standard Edition 5.0 Support — The Application Server supports the Java 2 Standard Edition 5.0, which includes enhanced management and monitoring features and many performance and scalability improvements.

- Java Web Services Developer Pack 1.6 (JWDSP) Plugin Support — All JWSDP plugins are now supported. The JWSDP 1.6 can be downloaded for free from`http://java.sun.com/webservices/downloads/1.6/index.html`..

- JDBC Drivers — The Application Server is bundled with Sun JDBC drivers.

- Web Services Security — These container message security mechanisms implement message-level authentication (for example, XML digital signature and encryption) of SOAP web services invocations using the X509 and username/password profiles of the OASIS WS-Security standard.

- WS-I Basic Profile 1.1 — As mandated by the J2EE 1.4 specification, this release implements Web Services Interoperability (WS-I) Basic Profile 1.1 to enable interoperability for web services applications.

- Backend Connectivity with iWay Adapters — Sun Microsystems now resells and supports twenty-two iWay adapters to key backend systems (SAP, Siebel, Oracle, CICS, and IBM MQ Series) to help you leverage existing IT applications from within the Application Server environment. These adapters support the J2EE Connector Architecture 1.5 specification and Web services (SOAP) standards, and include developer tools to reduce time to connect to backend applications.

- Latest HADB Management System — The UNIXTM platforms contain the new high availability database (HADB) management system (HADB version 4.4.2–7), which includes a Database Server, ODBC 2.5 driver, JDBC 3.0 type 4 driver, `clusql` (an interactive program to enter and execute SQL statements), and a management system. This version eliminates the dependency on SSH/RSH, but requires that the network be configured for UDP multicast. See the Sun Java System Application Server Enterprise Edition 8.1 2005Q2 High Availability Administration Guide for the details on HADB requirements and limitations.

- Solaris 10 Zones Support – The Application Server can be installed in either a global or non-global Zone on Solaris 10 systems. Note that Application Server Enterprise Edition 8.1 can be installed in a “whole root” non-global zone even if another Application Server installation is already installed in the global zone. See the Solaris Zones page for more information about Solaris Zones.

# Hardware and Software Requirements

This section lists the requirements that must be met before installing the Sun Java System Application Server Enterprise Edition 8.1 product.

- Platform Requirements

- System Virtualization Support

- Important Patch Information

- JDBC Drivers and Databases

- Configuring Oracle

- Configuring PointBase

- Web Servers

- Browsers

- HADB Requirements and Supported Platforms

- Upgrading the Sun Java System Application Server

- Switching to a Supported J2SE Version

- Other Requirements

## Platform Requirements

The following table lists the operating systems that are supported for Sun Java System Application Server Enterprise Edition 8.1 2005Q2 product. Additionally, the minimum and recommended memory requirements are identified for installing and running the Application Server.

Table 2–1 Sun Java System Application Server 8.1 2005Q2 Platform Requirements

Operating System | Minimum Memory | Recommended Memory | Minimum Disk Space | Recommended Disk Space | JVM
--- | --- | --- | --- | --- | ---
Sun Solaris 8, 9, 10 (SPARC) Solaris 9, 10 (x86) | 512 MB | 1 GB | 250 MB free | 500 MB free | J2SE 1.4.2_06, J2SE 5.0
Red Hat Enterprise Linux 2.1 Update 2, 3.0 Update 1 | 512 MB | 1 GB | 220 MB free | 300 MB free | J2SE 1.4.2_06, J2SE 5.0
Windows Server 2000 SP4+ Windows 2000 Advanced Server SP4+ Windows Server 2003 Windows XP Pro SP1+ | 1 GB | 2 GB | 500 MB free | 1 GB free | J2SE 1.4.2_06, J2SE 5.0

On UNIX, you can check your operating system version using the `uname` command. Disk space can be checked using the `df` command.

## System Virtualization Support

System virtualization is a technology that enables multiple operating system (OS) instances to execute independently on shared hardware. Functionally, software deployed to an OS hosted in a virtualized environment is generally unaware that the underlying platform has been virtualized. Sun performs testing of its Sun Java System products on select system virtualization and OS combinations to help validate that the Sun Java System products continue to function on properly sized and configured virtualized environments as they do on non-virtualized systems. For information about Sun support for Sun Java System products in virtualized environments, see System Virtualization Support in Sun Java System Products.

## Important Patch Information

For the current list of required patches for Sun Java System Application Server Enterprise Edition 8.1 go to `http://sunsolve.sun.com` and search for “`app server 8.1 patch`.” Follow the Sun Java System Application Server Enterprise Edition 8.1 links. As operating system patch requirements change and patches to Java Enterprise System components become available, updates will be made available on SunSolve, initially in the form of recommended patch clusters.

### Solaris Patch Requirements

It is recommended that Solaris 9, 10 (x86, SPARC) users have the “Sun recommended patch cluster” installed. This patch cluster is available under Recommended and Security Patches on SunSolve.

### RedHat Enterprise Linux 3.0 Additional Package Requirements

To run native components of this product, including installer, the following package, which is not part of the standard RedHat Enterprise Linux 3.0 distribution, should be installed: `compat-libstdc++-7.3-2.96.118.i386.rpm`

The package can be downloaded from `http://rpm.pbone.net/index.php3/stat/4/idpl/843376/com/compat-libstdc++-7.3-2.96.118.i386.rpm.html`

## JDBC Drivers and Databases

The Sun Java System Application Server is designed to support connectivity to any DBMS with a corresponding JDBC driver. For a list of components that Sun has tested and found to be acceptable for constructing J2EE compatible database configurations, please refer to the following table.

Table 2–2 J2EE-Compatible JDBC Drivers

JDBC Vendor | JDBC Driver Type | Supported Database Server
--- | --- | ---
i-net Software | Type 4 | Oracle (R) 8.1.7, 9i, 9.2.0.3 Sybase ASE 12.5.2 Microsoft SQL Server 2000 4.0 Service Pack 1
IBM | Type 2 | IBM DB2 8.1 Service Pack 3+
PointBase | Type 4 | PointBase Network Server 4.8
DataDirect | Type 4 | Oracle (R) 8.1.7, 9i, 9.2.0.3 Sybase ASE 12.5.2 Microsoft SQL Server IBM DB2 8.1 Service Pack 3+
Sun Java System JDBC Driver for Oracle | Type 4 | Oracle (R) 9.2.0.3, 10G
Sun Java System JDBC Driver for DB2 | Type 4 | IBM DB2 8.1 Service Pack 3+
Sun Java System JDBC Driver for Sybase | Type 4 | Sybase ASE 12.5.2
Sun Java System JDBC Driver for Microsoft SQL Server | Type 4 | Microsoft SQL Server 2000 4.0 Service Pack 1
Oracle | Type 4, Type 2 | Oracle (R) 9.2.0.3, 10G

For more information about i-net Software, see `http://www.inetsoftware.de/`.

For more information about DataDirect Technologies, see `http://www.datadirect.com/`.

## Configuring Oracle

Oracle JDBC drivers must be configured properly to be compliant with J2EE 1.4. Use the following configuration for Type 2 and Type 4 drivers:

### To configure Oracle

1. Use the JDBC driver from 9.2.0.3 or later.

2. The Oracle database needs to have `compatible=9.0.0.0.0` or higher in its parameter (`init.ora`) file.

3. Use the `ojdbc14.jar` file.

4. Configure the Application Server to define the following JVM property:

       -Doracle.jdbc.J2EE13Compliant=true

   In addition, for `Type-2` drivers, both the `ORACLE_HOME` and `LD_LIBRARY_PATH` variables (which must include `$ORACLE_HOME/lib`) need to be defined in the environment in which the Application Server is started. For example, add them to the `asenv.conf` file and ensure they are exported.

## Configuring PointBase

Many sample applications use the PointBase database server included with the Application Server. When using Application Server Enterprise Edition, you must configure the PointBase database server before using it.

There are two ways to configure PointBase:

1. Using the command appropriate for your operating system and shell, set the `JAVA_HOME` environment variable to the directory where J2SE is installed. For example: `% setenv JAVA_HOME "/opt/SUNWappserver/jdk"`

2. Edit the Application Server's PointBase configuration file as follows:

   1. On Solaris and Linux systems, edit the `install_dir/pointbase/tools/serveroption/pbenv.conf` configuration file, changing the line:

      `PB_JAVA=%%%PB_JAVA%%%`

      to

      `PB_JAVA=J2SE_location`

   1. On Windows systems, edit the `install_dir\pointbase\tools\serveroption\pbenv.bat` configuration changing the line:

      `PB_JAVA=%%%PB_JAVA%%%`

      to

      `PB_JAVA=J2SE_location`

   Where J2SE_location is the directory where the J2SE is installed. If you installed J2SE with Application Server, it is installed by default to `install_dir/jdk`.

   After making this change, you can start PointBase using the `startserver` script.

## Web Servers

This section lists the web servers that are supported for the Sun Java System Application Server Enterprise Edition 8.1 2005Q2.

Table 2–3 Supported Web Servers

Web Server | Version | Operating System
--- | --- | ---
Sun Java System Web Server | 6.1+ | Solaris SPARC 9, 10 Solaris x86 9, 10 Red Hat Enterprise Linux 3 and 4
Apache Web Server | 1.3+, 1.4, 2.0 | Solaris SPARC 9, 10 Solaris x86 10 Red Hat Enterprise Linux 3 and 4 Windows Server 2003 Windows 2000 Advanced Server SP4+ Windows Server 2000 SP4+ Windows XP Pro SP1+
Microsoft IIS® | 5.0+ | Windows Server 2003 Windows 2000 Advanced Server SP4+ Windows Server 2000 SP4+ Windows XP Pro SP1+

## Browsers

This section lists the browsers that are supported with the Sun Java System Application Server Enterprise Edition 8.1 2005Q2.

Table 2–4 Supported Web Browsers

Browser | Version
--- | ---
Mozilla | 1.4, 1.5, 1.6, 1.7.x
Netscape Navigator | 4.79, 6.2, 7.0
Internet Explorer | 5.5 Service Pack 2, 6.0

## HADB Requirements and Supported Platforms

In addition to the requirements listed in Hardware and Software Requirements, verify that your system meets the requirements listed below for running HADB.

- Supported Platforms

- HADB Server Host Requirements

- HADB Management Host Requirements

- HADB Client Host Requirements

Note –

The Java components of the system have been built with JDK 1.4.2_02 and has been tested on JDK 1.5.

### Supported Platforms

- Solaris (SPARC) – Solaris 8 MU7, Solaris 9 MU7, Solaris 10 RR.

- Solaris (x86) – Solaris 9 MU7, Solaris 10 RR.

- RedHat Enterprise Linux - 2.1 U5 (only `ext2` file system is supported, not `ext3`), 3.0 U4 (both `ext2` and `ext3` are supported. Updates before U4 are not recommended due to excessive swapping). Note that HADB is tested on these operating system versions in 32–bit mode only. Also, note that HADB does not support RedHat Enterprise Linux 3.0 running in 64–bit mode due to a bug in the operating system (see known bug 6249685 in the High Availability section for details about impact on HADB).

- Microsoft Windows – Microsoft Windows 2000 Advanced Server Service Pack 4 and Microsoft Windows 2003 Enterprise Edition. Note that HADB does not support any of the forthcoming Microsoft Windows operating system versions in 64–bit mode.

### HADB Server Host Requirements

- Minimum memory - 320 MB per node.

- Minimum free disk space - 70 MB for HADB binaries per host. In addition, disk space is needed for the data devices, 512 MB for a test installation per node.

- Recommended memory - 512 MB per node.

- Recommended free disk space - 70 MB for HADB binaries per host. In addition, disk space is needed for the data devices, 1200 MB for a test installation per node.

Note –

Make sure write caching is disabled on devices storing HADB data and log files. Write caching is enabled by default on some Solaris platforms; for example, Solaris x86.

### HADB Management Host Requirements

- Minimum memory - 128 MB

- Minimum free disk space - 70 MB for HADB binaries per node

### HADB Client Host Requirements

- Minimum memory - 120 MB

- Minimum free disk space - 20 MB

## Upgrading the Sun Java System Application Server

The in-place upgrade from any prior Application Server release is not supported. Refer to the Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Upgrade and Migration Guidefor complete instructions for upgrading from a previous version of the Application Server to the current version.

## Switching to a Supported J2SE Version

If you want to use PointBase with the Application Server, download J2SE 1.4.2 and use it instead of the bundled J2SE 5.0 JVM. To do this perform the following steps:

### To switch to J2SE 1.4.2

1. Download the J2SE 1.4.2 SDK (not the JRE) from and install it on your system, if you have not already done so.

   The J2SE 1.4.2 SDK can be downloaded from `http://java.sun.com/j2se/1.4.2/`

2. Stop the Application Server.

   From the command line:

       install_dir/bin/asadmin stop-domain

   From the Administration Console:

   1. Click the Application Server node.

   2. Click Stop Instance.

3. Edit the `install_dir/config/asenv.conf` file (`asenv.bat` on Windows), changing the value for `AS_JAVA` to point to the J2SE 1.4.2 home directory:

4. Edit the `as-install/samples/common.properties` file, changing the line beginning `com.sun.aas.javaRoot...` to reference the J2SE 1.4.2 home directory.

5. Restart the Application Server.

   From the command line:

       install_dir/bin/asadmin start-domain

   From the Administration Console:

   1. Click the Application Server node.

   2. Click Start Instance.

## Other Requirements

The following additional requirements should be met before installing the Sun Java System Application Server software.

- Free space — Your temporary directory must have a minimum of 35MB free for Sun Java System Application Server installation, and 250 MB of free space for the SDK installation.

- Using the uninstall program — If you need to remove the Application Server from your system, it is important to use the uninstall program that is included with the software. If you attempt to use another method, problems will arise when you try to reinstall the same version, or when you install a new version.

- Free ports — You must have seven unused ports available.

  - The installation program automatically detects ports in use and suggests currently unused ports for the default settings. By default, the initial default ports are `8080` for HTTP, `8181` for HTTPS, and `4849` for the Administration Server.

  - The installation program will detect used ports and assign two others for you: Sun Java System Message Queue (by default, 7676), and IIOP (by default, 3700 for IIOP and 1060 and 1061 for IIOP/SSL). If these default port numbers are in use, the installation program will assign a random port number from the dynamic port range (note that this may not be the next available port number).

  Starting previously-installed servers (UNIX) — unless you are replacing the previously installed server, you should start it before you begin the Sun Java System Application Server 8.1 installation process. This allows the installation program to detect ports that are in use and avoid assigning them for other uses.

- Replacing previously-installed servers (UNIX) — if you have an older version on the Sun Java System Application Server installed that you wish to replace with the current Application Server, you should stop it before installing the new server. Use the installation program upgrade wizard to upgrade the server.

- Shutting down firewall (Microsoft Windows) — You must stop any firewall software before installing the Sun Java System Application Server software, because some of this software disables all ports by default. The installation program must be able to accurately determine which ports are available.

  For further compatibility information, see the Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Upgrade and Migration Guide.

# Bugs Fixed in the Enterprise Edition 8.1 Release

This section lists the customer-escalated issues resolved for the Sun Java System Application Server Enterprise Edition 8.1 product.

Bug Number | Description
--- | ---
4887079 | Programmatic APIs for deploying/undeploying and finding out which applications are deployed.
4911462 | Incorrect message when port outside of available range.
4918535 | `sun-appserv-deploy()` doesn't take flag to support `createAndDropTables()`
4939749 | `xml:lang()` value should not be inserted automatically by the Deploytool.
4946914 | Deployment support for cluster.
4979136 | Directory based deployment copies the application in a backup directory.
4987274 | Deployment fails if remote interface for the bean is named `Util()`
4988818 | Transparent Persistence runtime tests fail when J2SE 1.5 is used.
4992295 | Deploying a system component succeeds on the command-line interface, but an error is logged in server's log file.
4994790 | JSP deployed with precompilejsp=true does not use compiler flags in `sun-web.xml`.
4996876 | Verifier versus deploy with verify=true, different reports.
5003356 | Recent `server.policy` file updates are not accounted by Upgradetool.
5006854 | `asadmin deploy` `--virtualservers` fails to deploy.
5007309 | Inappropriate default value for HTTP listener acceptor threads.
5008941 | JSR88 start operation fails when an application is deployed again after it is undeployed.
5016848 | On Windows, the JDK JAR file caching and unclosed files prevent some redeployments.
5017956 | `list` `-m` at the JAR module level does not list the EJB's.
5030425 | The `deploydir` command ignores `security-role-mapping` changes.
5041343 | Not checking `servlet-mapping url-pattern``--directory` always wrapped by /.
5046120 | SEVERE log messages while deploying big applications.
6041268 | No mechanism to disable `HTTP TRACE`.
6062410 | Upgradetool is launched in English on a localized machine.
6067341 | The `deploydir` command on a web application with `ejb-refs` fails on `rmic` the remote interfaces.
6152752 | An `outofbound` exception is logged during SPEC J2004 test runs.
6154949 | Connection Validation does not work.
6157310 | Runtime reloads the `Collection` field during relationship management.
6165491 | Failed to start a domain if it was created on a different path than the default domain.
6171667 | The lifecycle modules property elements are not created in `domain.xml`.
6171729 | Non-String RA ActivationSpec properties result in a IllegalArgumentException during MDB deployment.
6172178 | OSS/J TT TCK failed to get JMS connection factory from a remote application server.
6172589 | Optimize calls to security manager.
6183492 | [DataDirect] DB2: Some trasparent persistence application server tests failed with exception thrown during EJB invocation.
6184864 | EJB QL query returns no results using OR operator and expression contains null single-valued CMRS.
6197393 | The Deploytool often won't create message-destination element in deployment descriptor.
6198796 | EE samples `asadmin` commands needs to include `availabilityenabled=true()` option when deploying the application.
6198981 | Missing `xalan.jar` file from classpath causes empty drop-downs and web service wizard to fail.
6199076 | Unable to run the Duke bookstore sample failover test with the `asant` script.
6202363 | Cluster name hard coded in one `ant` target in `mq-failover` sample application.
6202606 | JMS service configuration cannot be used for SSL JMS between JMS and Message Queue.
6206176 | Application Server 8.1 requires `startserv/stopserv` to have permissions of 755.
6207297 | Accessing the Application Server without the default SSL Port number (443) does not work.
6207862 | `asadmin create-domain` `--help` produces some is garbled.

# Bugs Fixed in the Enterprise Edition 8.1 Update 2 Release

This section lists the customer-escalated issues resolved for the Sun Java System Application Server Enterprise Edition 8.1 Update 2 product.

Bug Number | Description
--- | ---
4842830 | The exception “ComStream is closed” reaches JDBC client.
4847716 | One should not use execute/executeUpdate to set commit mode as this may cause unwanted behavior. Use the standard JDBC `setAutocommit()`.
4861326 | Statement pool does not recognize CREATE SCHEMA as an implicit SET SCHEMA.
4891060 | Listeners ignore address directive when listening on sockets.
5042351 | New tables created after new nodes are added will not be distributed on the added nodes.
5061316 | Queries against a table being refragmented may fail with HADB-E-01792: Replica has been deleted. The query must be retried.
5063175 | `hadbm create` should give error when using host with both single/multiple nets.
5079029 | Unregistering a package on a single host may fail with the error “The software package is in use by a database instance and can not be removed”
5094611 | Management operations which require opening a write transaction in the administration repository, may in very rare cases, hang forever waiting for the transaction to open.
5103186 | NSUP unable to start with one net down on Windows 2003.
6225613 |
6271063 | Install/removal of HADB `c` package (Solaris: SUNWhadbc, Linux: sun-hadb-c) version symlink `/opt/SUNWhadb/` causes error.
6174781 | The command `hadbm` status – nodes may show that nodes have a `nodestate` equal to Unknown in a short period after the management agents have been restarted.
6175436 | If `hadbm addnodes` or `hadbm refragment` fails with error HADB-E-11747: Nodegroup all_nodes exists already, run `hadbm refragment` again.
61746766179084 | Unable to run configure-ha-cluster.
6178228 6179010 | Failure in configure-ha-cluster
6181845 | Cannot create one data device larger than 2 GB on Windows.
6189189 | `export-http-lb-config` doesn't create `loadbalancer.xml` file name when absolute path is given.
6198225 | QuickStart Guide has typo; i.e., repeated sentence.
6195779 | The values of options of some filter drop-down lists are not internationalized.
6196741 | Upgrade in place of bundled J2SE component does not work correctly when upgrading J2SE 1.4.x.
6207616 | If a host is down, any `hadbm` command may hang for minutes if it needs to connect to the management agent.
6212791 | No items displayed in the right pane when clicking a tree node.
6216096 | A hanging transaction may cause node crash due to “log buffer full” and a large number of transactions being aborted.
6225613 | Inconsistent LOB size in executeUpdate()
6227502 | Initialization errors in EJB Timer Service should not be logged as `SEVERE`.
6228789 | `hadbm delete` command fails.
6230415 | HADB-E-21070: The operation did not complete within the time limit, but has not been cancelled and may complete at a later time.
6230792 | hadbm:Error 22009: The command issued had no progress in the last 300 seconds.
6232347 | `dropandcreatetables` not quite correct for `asdamin deploy` `--help`.
6232838 | Unneeded log calls preventing application server from scaling.
6232974 | Installer failed to create a node agent when upgrading from 8.0 Platform Edition to 8.1 Enterprise Edition.
6233142 | Installing/uninstalling HADB should always preserve the softlink /opt/SUNWhadb/4, but, this has not always been the case.
6233276 | Form authorization does not work for URL `-pattern /*.jsp`.
6233469 | Incorrect help text in `asadmin` help.
6233476 | Incorrect help text for `update-file-user` and similar commands.
6237567 | Missing key `adminObjectStep2PageHelp` in Create Administration Object Resource window.
6238477 | Unable to resolve "corba name" EJB references in same application server instance.
6239630 | Cannot properly map a particular entity bean.
6239837 | Wrong unit and default value for Reconnect Interval in Administration for JMS `server-config`.
6240661 | some messages remain in english in the locale.
6241311 | The note for "Pool Idle Timeout" field is wrong.
6241368 | Admin Console login screen and online help never refer to English browser language.
6243395 | Transaction recovery not working with a JMS and JDBC resource.
6245922 | Application Server crashes consistently.
6246426 | Expansion of JAR files in WEB-INF/lib exposes content that should be concealed.
6249637 | Change of JDBC connection pool properties requires a restart.
6249662 | `Proxy-auth-cert` not properly formatted.
6250989 | SOAP Element.`addChildElement` adds an incomplete element without markups.
6252187 | High Availability single sign-on propagates principals between different realms.
6252810 | `configure-ha-persistence` in man pages is not up-to-date.
6253735 | QuickStart does not include High Availability information.
6254393 | Bundled QuickStart has link to out-of-date release notes.
6254462 | NPE thrown by connection validation code after database restart.
6255253 | "How to Buy" link in bundled documentation is wrong URL.
6255440 | Performance improvement for synchronization.
6255458 | Typo in `delete-virtual-server`.
6255524 | `UpdateTask` ANT task does not work with ANT 1.6.2.
6255564 | Upgraded domain startup fails due to administration user authentication failure after Platform Edition to Enterprise Edition upgrade.
6258844 | File realm user login does not work after upgrade to 8.1 Update 1.
6258997 | Correct description for `--secure` option in command—line interface man pages.
6259125 | Documentation for `asadmin get` is inadequate and confusing.
6262564 | `PrivateKeyProcessor` does not support get by `keyIdentifier`.
6262824 | Solaris 10: Stopping a management agent by using the ma-initd script in a global zone stops the management agent in the local zone as well.
6263684 | Linux RPM patch generation script requires manual changes in the `README.`
6263686 | svr4 patch generation inserts incorrect entries in `README`.
| `package-appclient` script broken.
6264969 | The setup of all AS samples that use PointBase failed: Cannot upgrade database to version 5.1.
6265687 | Installer's graphic image has incorrect product version.
6266183 | High Availability test failure: Realm name after restart contains null.
6267410 | Exception during `session.invalidate()` if Log level is set to FINE.

# Additional HADB Information

This section describes important additional information about the HADB implementation included in Application Server 8.1.

- HADB Enhancements

- HADB File System Support

- Upgrading the High Availability Database

- Known SQL Limitations

- High Availability Load Balancing

## HADB Enhancements

- A new management command `hadbm setadminpassword` has been implemented to allow changing the password used for database administration. The command takes options indicating which management agent to use, and the old and new password. For more information, see the `hadbm setadminpassword` man page.

- The existing management command `hadbm listpackages` has been modified. Previously, the command took no operands, and listed all packages in the relevant management domain. The modifications introduces an optional package name operand, and lists only packages with that name. If the operand is not provided, all packages are listed. For more information, see the `hadbm listpackages` manpage.

- The existing management command `hadbm createdomain` has been modified. The hostlist operand is extended to also specify the port number of the management agent. In this way, the domain is completely specified using only the hostlist operand. The old behavior is still supported for backward compatibility. For more information, see the `hadbm createdomain` manpage.

- Some of the error messages from the management system have been modified. The modifications are intended to improve understandability, consistency and accuracy of the error messages. The actual modifications are not listed in these release notes.

- The installation and uninstallation behavior has been slightly changed. Installing or uninstalling the HADB should always preserve the softlink `/opt/SUNWhadb/4`, but this has not always been the case.

- The possibility of entering passwords on the command line as a command option is deprecated. This is relevant to all `hadbm` commands taking passwords as command line options. For `hadbm` commands, it has previously been possible to enter a password as:

  1. A password file

  2. A command line option

  3. An interactive input

  Method 2, the command line option, is considered unsafe, and is therefore deprecated. A warning message is issued if a password is entered in this way. Instead, use a method 1, password file, or method 3, interactive output. Using a password at the command line will become obsolete in the next release. Note this applies to all `hadbm` commands taking a command line password option.

- HADB has been upgraded to use JGroups Version 2.2, and its source code is distributed along with the HADB. To support online upgrade from a previous HADB version, both JGroups 2.1 and 2.2 are delivered with HADB. For JGroups 2.1, byte code is delivered only.

## HADB File System Support

There are several important considerations if you want to configure HADB to use one of the following file systems:

- ext2 and ext3– HADB supports ext2 and ext3 file systems for Red Hat Application Server 3.0. For Red Hat Application Server 2.1, HADB supports only the ext2 file system.

- `Veritas`– When the Veritas File System is used on the Solaris platform, the message `“WRN: Direct disk I/O mapping failed“` is written to the history files. This message indicates that HADB cannot turn on direct I/O for the data and log devices. Direct I/O is a performance enhancement that reduces the CPU cost of writing disk pages. It also causes less overhead of administering dirty data pages in the operating system.

  To use direct I/O with the Veritas File System, use one of the following:

  - Create the data and log devices on a file system that is mounted with the option `mincache=direct`. This option applies to all files created on the file system. See the `mount_vxfs(1M)` command for details.

  - Use the Veritas Quick I/O facility to perform raw I/O to file system files. See the VERITAS File System 4.0 Administrator's Guide for Solaris for details.

    Note that these configurations have not been tested with Application Server 8.1 2005Q2 Update 2.

    Refer to the Application Server Enterprise Edition High Availability Administration Guide for information about installing and configuring HADB with Application Server software.

## Upgrading the High Availability Database

- Pre-upgrade Tasks/Data Migration

- Upgrade Procedure

- Testing the Upgrade

- Special Deployment and Upgrade Information

### Pre-upgrade Tasks/Data Migration

##### Before You Begin

Users should keep the HADB history files, management agent configuration files, log files and repository, and all the data devices outside the installation path. If not, this should be done prior to the upgrade. To move the management repository and configuration files:

1. Stop all the old management agents and keep the HADB nodes running.

2. On each host, move the repository directory to the new location.

3. On each host, copy the `dbconfig` directory to the new location.

4. On each host, update the `mgt.cfg` file, and set the correct path for `dbconfig` and repository directory.

5. Start the management agents using the updated `mgt.cfg` file.

### Upgrade Procedure

To upgrade from HADB version 4.4.x to version 4.4.2-7, peform the following steps:

1. Perform the pre-upgrade tasks mentioned above as necessary.

2. Install HADB version 4.4.2-7 on all HADB hosts (on another path than that of version 4.4.x, for instance on `/opt/SUNWhadb/4.4.2-7`).

3. Install the HADB 4.4.2-7 version on the `hadbm` client hosts, if they are different than that of the HADB hosts.

4. Stop all management agents running on all HADB hosts.

5. Start the management agent processes using the new version's software, but with the old configuration files. In the remaining steps, please use the `hadbm` command found in the new version's `bin` directory.

6. Register the package in the management domain (default package name becomes V4.4, so another package name may be required to avoid conflicts with existing packages having the same name):

       hadbm registerpackage --packagepath=/opt/SUNWhadb/4.4.2-7 V4.4.2-7

7. Run the `hadbm listpackages` command and check that the new package is registered in the domain.

8. Restart the database with the new `hadbm` version 4.4.2-7. If it is necessary to move the devices and history files, run online upgrade combined with setting new paths for devices and history files in one single operation:

       hadbm set packagename=V4.4.2-7,devicepath=new_devpath,
       historypath=new_histpath

   Otherwise, if the devices and history files are already outside of the installation directory, run the following command, which only does a rolling restart of the nodes:

       hadbm set packagename=V4.4.2-7 database name

9. Check that the database status is “running” (using the `hadbm status` command) and that it functions normally, serving the client transactions.

10. If everything is working, the old installation can be removed later. Before unregistering the old package, remove all references to the old package from the `ma` repository. Otherwise, `hadbm unregisterpackage` will fail with “package in use.” A dummy reconfiguration operation, for instance, `hadbm set connectiontrace=same as previous value` will remove all references to the old package. Now, unregister the old package:

        hadbm unregisterpackage [--hosts=host-list] old pacakge name

11. Remove the old installation from the file system.

### Testing the Upgrade

On Solaris, to test that the upgrade was successful, check that the upgrade was performed properly:

1. Ensure that the running processes use the new binaries. Check the following in all HADB nodes:

       new path/bin/ma -v
       new path/bin/hadbm -v

2. Check whether the database is running. The following command should show that all the HADB nodes are in a “running” state.

       new path/bin/hadbm status -n

3. Ensure that the products using HADB have changed their pointers to point to the new HADB path.

4. The products using the HADB can run their upgrade tests to verify the HADB upgrade is also working.

   After an online upgrade, if the new version does not work properly, go back to using the previous HADB version. However, if there has been a change to the management agent repository, the HADB itself can be downgraded, but the new management agent must be kept running.

### Special Deployment and Upgrade Information

This section lists additional information about HADB deployment and upgrading.

- Deployment

- Online Upgrade from 4.4.1 to 4.4.2

#### Deployment

- Store device, log and history files on local disks only, do not use remote-mounted file systems.

- If more than one node is placed on a host, it is recommended to keep the devices belonging to each node on different disks. Otherwise, the disk contention would reduce the performance. Symptoms of this problem can be seen in the history files by the messages such a `BEWARE - last flush/fputs took too long`. When one single node has more than one data device file, it is recommended to use separate disks for these device files.

- Use local disks (preferably separate disk than the one used for data devices) to install HADB binaries on HADB hosts. NFS delays or disk contention may cause node restarts with warning, `Process blocked for` `nnn``, max block time is` `nnn` in the history files.

- Do not place the hadb devices, history files, management agent directories and agent config files in the hadb package path. This will cause problems when upgrading to newer versions and deleting the old package path.

- This release of HADB is offically supported for a maximum of 28 nodes; 24 active data nodes with 4 spares.

- We recommend using the same version for the JDBC driver and the HADB server.

- We do not support IPv6, only IPv4.

- The command line length on Windows is restricted to 2048 bytes.

- The network must be configured for UDP multicast.

- Due to excessive swapping observed in RedHat Enterprise Linux 3.0, updates 1 through 3, we do not recommend it as a deployment platform. The problem is fixed in RedHat Enterprise Linux 3.0 update 4.

- Possibility of running `NSUP` with real time priority.

  The node supervisor (`NSUP`) processes (`clu_nsup_srv`) ensure the high availability of the HADB with the help of exchanging “heartbeat” messages in a timely manner. The timing gets affected when an `NSUP` is colocated with other processes causing resource starvation. The consequence is false network partitioning and node restarts (preceded by a warning “Process blocked for `n` seconds” in history files) resulting in aborted transactions and other exceptions.

  To solve this problem, `clu_nsup_srv` (found in `installpath``/lib/server`) must have the `suid` bit set and the file must be owned by root. This is achieved manually by the commands:

      # chown root clu_nsup_srv
      # chmod u+s clu_nsup_srv

  This causes the `clu_nsup_srv` process to run as the user `root` when started, and this in turn allows the process to automatically give itself real-time priority after startup. To avoid any security impact by using `setuid`, the real-time priority is set in the very beginning and the process falls back to the effective uid once the priority has been changed. Other HADB processes will lower their priority to timeshare priority.

  If NSUP could not set the real-time priority, it issues a warning, “Could not set realtime priority” (`unix: errno will be set to EPERM`), which is written out in `ma.log` file and continues without real-time priority.

  There are cases where it is not possible to set real-time priorities; for example:

  - When installed in Solaris 10 non-global zones

  - When `PRIV_PROC_LOCK_MEMORY` (Allow a process to lock pages in physical memory) and/or `PRIV_PROC_PRIOCNTL` privileges are revoked in Solaris 10

  - Users turn off `setuid` permission

  - Users install the software as tar files (nonroot install option for the `App.server`)

  The `clu_nsup_srv` process is not CPU consuming, its footprint is small and running it with real-time priority will not impact performance.

- Configuring IP network multipathing for HADB for Solaris (tested on Solaris 9 only).

  Sun recommends that Solaris hosts running HADB be set up with network multipathing in order to ensure the highest possible network availability. Network multipathing setup is covered in detail in the IP Network Multipathing Administration Guide. If you decide to use multipathing with HADB, refer to the Administering Network Multipathing section of the IP Network Multipathing Administration Guide in order to set up multipathing before you proceed with adapting the multipathing setup for HADB as described below. The IP Network Multipathing Administration Guide is part of the Solaris 9 System Administrator Collection, and can be downloaded from `http://docs.sun.com`.

  - Set network interface failure detection time

    For HADB to properly support multipathing failover, the network interface failure detection time must not exceed 1000 milliseconds as specified by the `FAILURE_DETECTION_TIME` parameter in `/etc/default/mpathd`. Edit the file and change the value of this parameter to `1000` if the original value is higher:

        FAILURE_DETECTION_TIME=1000

    In order for the change to take effect, issue the following command:

        pkill -HUP in.mpathd

  - IP addresses to use with HADB

    As described in the Solaris IP Network Multipathing Administration Guide, multipathing involves grouping physical network interfaces into multipath interface groups. Each physical interface in such a group has two IP addresses associated with it: a physical interface address and a test address. Only the physical interface address can be used for transmitting data, while the test address is for Solaris internal use only. When `hadbm create --hosts` is run, each host should be specified with only one physical interface address from the multipath group.

  - Example

    Assume that Host 1 and Host 2 have two physical network interfaces each. On each host, these two interfaces are set up as a multipath group, and running `ifconfig -a` yields the following:

    Host 1

        bge0: flags=1000843<mtu 1500 index 5 inet 129.159.115.10 netmask ffffff00
        broadcast 129.159.115.255 groupname mp0
        bge0:1: flags=9040843<mtu 1500 index 5 inet 129.159.115.11 netmask ffffff00
        broadcast 129.159.115.255
        bge1: flags=1000843<mtu 1500 index 6 inet 129.159.115.12 netmask ffffff00
        broadcast 129.159.115.255 groupname mp0
        bge1:1: flags=9040843<mtu 1500 index 6 inet 129.159.115.13 netmask ff000000
        broadcast 129.159.115.255

    Host 2

        bge0: flags=1000843<mtu 1500 index 3 inet 129.159.115.20 netmask ffffff00
        broadcast 129.159.115.255 groupname mp0
        bge0:1: flags=9040843<mtu 1500 index 3 inet 129.159.115.21 netmask ff000000
        broadcast 129.159.115.255
        bge1: flags=1000843<mtu 1500 index 4 inet 129.159.115.22 netmask ffffff00
        broadcast 129.159.115.255 groupname mp0
        bge1:1: flags=9040843<mtu 1500 index 4 inet 129.159.115.23 netmask ff000000
        broadcast 129.159.115.255

    Here, the physical network interfaces on both hosts are the ones listed as `bge0` and `bge1`. The ones listed as `bge0:1` and `bge1:1` are multipath test interfaces (they are thus marked as DEPRECATED in the `ifconfig` output), as described in the IP Network Multipathing Administration Guide.

    To set up HADB in this environment, select one physical interface address from each host. In this example. we choose `129.159.115.10` from host 1 and `129.159.115.20` from host 2. To create a database with one database node per host, use the following argument to `hadbm create`:

        --host 129.159.115.10,129.159.115.20

    To create a database with two database nodes on each host, use the following argument:

        --host 129.159.115.10,129.159.115.20,129.159.115.10,129.159.115.20

    In both cases, the `ma.server.mainternal.interfaces` variable on both hosts should be set to `129.159.115.0/24`.

#### Online Upgrade from 4.4.1 to 4.4.2

It is not possible to upgrade from 4.2 or 4.3 to 4.4 online. However, 4.4 supports online upgrade for the future versions. To upgrade from 4.4.1 to 4.4.2, peform the following steps:

1. Install 4.4.2 on all HADB hosts (On another path than that of 4.4.1 – for instance `/opt/SUNWhadb/4.4.2-6`).

2. Install the new version on the `hadbm client` hosts.

3. Stop all management agents running on the HADB hosts.

4. Start the management agent processes using the new version's software, but with the old configuration files. In the remaining steps, please use the `hadbm` command found in the new version's `bin` directory.

5. Register the package in the management domain (default package name here becomes `V4.4`, so another package name may be required to avoid conflicts with existing packages having the same name):

       hadbm registerpackage --packagepath=/opt/SUNWhadb/4.4.2-6 V4.4.2

6. Restart the database with the new version (the following command does a rolling restart of the nodes):

       hadbm set packagename=V4.4.2 database_name

7. Check that the database status is “running” (using the command `hadbm status`) and that it functions normally, serving the client transactions.

8. If everything works, the old installation can be removed later.

   Before unregistering the old package, remove all references to the old package from the `ma` repository. Otherwise, `hadbm unregisterpackage` will fail with “package in use.” A dummy reconfiguration operation, for instance, hadbm set connectiontrace=`<same_as_previous_value>` will remove all references to the old package. Now, unregister the old package:

       hadbm unregisterpackage [--hosts=<host_list>] <old_package_name>

   Remove the old installation from the file system, as described in the HADB installation instructions.

## Known SQL Limitations

- It is not possible to create a `UNIQUE` secondary index on a table.

- The expression `(DISTINCT column)` is not allowed in an aggregate expression, unless this is the only selected expression.

- All tables must be created with a primary key specification (that is, tables without primary keys are not supported).

- `FULL OUTER JOIN` is not supported.

- `IN` subqueries that are table subqueries are not supported; for example:

      SELECT SNAME FROM S WHERE (S1#,S2#) IN (SELECT S1#,S2# FROM SP
      WHERE P#='P2')

- Constraints other than `NOT NULL` and `PRIMARY KEY` are not supported.

- It is possible to assign a new owner to a resource. When doing this, however, privileges granted to the current owner are not granted to the new owner.

- Two or more nested `NOT EXISTS` subqueries where each subquery is not (directly) correlated to outer level of queries, is not supported.

- Column privileges are not supported.

- Row value constructors are allowed only in a `VALUES` clause.

- Subqueries are not accepted as value expressions in row value constructors.

- The following data types cannot be used when creating primary keys:

  - `REAL`

  - `FLOAT`

  - `DOUBLE PRECISION`

  - `DECIMAL`

  - `NUMERIC`

## High Availability Load Balancing

The Application Server includes load balancing for HTTP, IIOP, and JMS clients; HTTP session failover support; EJB clustering and failover support; highly available EJB timers; distributed transaction recovery; support for rolling application upgrades; and a high availability database for storing the transient state of J2EE applications.

Availability allows for failover protection of Application Server instances in a cluster. If one Application Server instance goes down, another Application Server instance takes over the sessions that were assigned to the unavailable server. Session information is stored in the HADB. HADB supports the persistence of HTTP sessions, Stateful Session Beans, and Single Sign On credentials.

# Application Server Product Releases

The Application Server product is delivered in various ways. The following table identifies the product delivered for the various delivery mechanisms.

Application Server Product Release | Delivery Mechanism
--- | ---
Application Server Enterprise Edition component within the Sun Java Enterprise System. | File-based distribution patch installation needed through Sunsolve
Application ServerStandard and Enterprise Edition Standalone product | File-based and Package-based distribution

# Compatibility Issues

In the next major release of the Sun Java System Application Server Enterprise Edition the following incompatibilities will be introduced:

- While the HTTP Service will continue using a DNS cache for better performance, monitoring of the DNS cache will not be available.

- The support for HTTP file caching will be revamped, resulting in changes to configuration and monitoring.

- The format for the access log rotation suffix will be changed to the format supported by date and time objects as specified in `http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html`. The default value in this release, “`%YYYY;%MM;%DD;-%hh;h%mm;m%ss;s`,” will continue to be supported but no other variations will be supported.

- Any `domain.xml` elements, attributes and properties no longer supported will be flagged as warnings in the server log and in the upgrade log file as having been deprecated.

- The `server.http-service.dns` node will no longer be available in the monitoring view.

- Some of the attributes from the `server.http-service.file-cache` node may be removed. Consequently, any `asadmin` monitoring command trying to access removed attributes from these nodes will fail.

## Deploytool

Deploytool will no longer be available. The equivalent functionality is available in the NetBeans IDE. For more information and to plan a migration, please see J2EE 1.4 tutorial for NetBeans 4.1 at `http://www.netbeans.org/kb/`.

## Verifier

- Verifier GUI mode (invoked by `verifier -u`) will no longer be available. The equivalent functionality will be available in the NetBeans IDE.

- The default mode for application verification when using verifier tool will change from “Verify J2EE rules” to “Verify J2EE rules and Sun Application Server Configuration Rules.” In other words, by default verifier will test whether an application meets J2EE rules and is configured to run on Sun Application Server. The verifier command will have a command-line switch to test an application for J2EE rules only.

## Classloader Changes

In the current release, the JAR and directory entries added to `classpath-prefix`, `server-classpath`, and `classpath-suffix` attributes of `domain.xml` (application server configuration file) are available in the JVM system classpath. An application depending on this behavior might be using the following methods from the class `java.lang.ClassLoader` to access classes or other resources from JVM system classpath:

- `getSystemClassLoader()`

- `getSystemResource()`

- `getSystemResourceAsStream()`

- `getSystemResources`

In the next major release, the JAR and directory entries added to `classpath-prefix`, `server-classpath`, and `classpath-suffix` will no longer be available in the JVM system classpath. If an application uses one of the methods mentioned above, Sun strongly recommends using an equivalent method that does not assume that the resources are available in the system classpath. The equivalent methods that do not rely on the JVM system classpath are available in `java.lang.ClassLoader` and should be used when possible; for example:

##### Example 2–1 Old Code

    java.net.URL url = ClassLoader.getSystemResource
    ("com/acme/tools/tools.properties");

##### Example 2–2 Suggested Change

    java.net.URL url = this.getClass().getClassLoader().getResource
    ("com/acme/tools/tools.properties");

If it is not possible to change the code, then you may choose to use a new configuration option that will be added in the next release to set JVM system classpath.

## Web Service Security Configuration

Security for Web services can be configured using the files `wss-client-config.xml` and `wss-server-config.xml`. Please note that the content and names of these configuration files are unstable and likely to change. The equivalent functionality will continue to be available.

# J2EE Support

The Sun Java System Application Server Enterprise Edition 8.1 2005Q2 supports the J2EE 1.4 platform. The following table describes the enhanced APIs available on the J2EE 1.4 platform.

Table 2–5 APIs Available on the J2EE 1.4 Platform

API | Description
Components
Application and Application Client | Implementation of standard deployment descriptors by means of XML schemas
Enterprise JavaBeans (EJB) 2.1 | Timer service and EJB Web-service endpoint
Java Servlet 2.4 | Web-service endpoint filter
JavaServer Pages (JSP) 2.0 architecture | Expression language and tag library
J2EE Connector Architecture 1.5 | Inbound resource adaptor and Java Message Service (JMS) pluggability
Web Services
Java Web Services Developer Pack 1.5 | Integrated toolkit for building, testing and deploying XML applications, Web services, and Web applications
Java API for XML-based Remote Procedure Calls (JAX-RPC) 1.1 | Mapping for WSDL and Java technology and support for development of Web-service clients and endpoints
WS-I Basic Profile 1.0 | The enabling element for interoperability using WSDL and SOAP
SOAP with attachment API for Java (SAAJ) 1.2 | An API for SOAP-based messaging; fosters the creation of SOAP messages with attachments
Java APIs for XML Registries (JAXR) 1.0 | A uniform and standard API for accessing XML registries, such as those for Universal Description Discovery and Integration (UDDI and ebXML)
Other
J2EE Deployment 1.1 | Standard APIs that enable deployments of J2EE components and applications
J2EE Management 1.0 | Definitions for the information model for managing the J2EE platform
Java Management Extensions (JMX) 1.2 | Standard management API
Java Authorization Contract for Containers (JACC) 1.0 | Definitions of security contracts between a J2EE Application Server and the authorization policy provider
Java API for XML Processing (JAXP) 1.2 | An API with which applications can parse and transform XML documents; also adds support for processing of XML schemas
JMS 1.1 | A messaging standard that enables J2EE application components to create, send, receive, and read messages; also adds support for uniform APIs for queues and topics
JavaMail 1.3 | A set of abstract classes that model a mail system; also includes minor updates to the APIs

# High Performance

The Application Server includes load balancing for HTTP, IIOP, and JMS clients; HTTP session failover support; EJB clustering and failover support; highly available EJB timers; distributed transaction recovery; support for rolling application upgrades; and a high availability database for storing the transient state of J2EE applications.

Availability allows for failover protection of Application Server instances in a cluster. If one Application Server instance goes down, another Application Server instance takes over the sessions that were assigned to the unavailable server. Session information is stored in the HADB. HADB supports the persistence of HTTP sessions, Stateful Session Beans, and Single Sign On credentials.

# Scalability

The Application Server supports horizontal scalability through clustering of server instances and request load balancing. It also achieves class leading vertical scalability supporting large multi-processor machines. The integrated message broker can be clustered for better scalability and availability. Client access from HTTP clients, RMI/IIOP based Rich Client Applications, Web Services Clients, and JRM Clients can be load balanced to Application Server clusters.

# JavaServer Faces 1.1 Support

The Sun Java System Application Server Enterprise Edition 8.1 supports JavaServer Faces 1.1 technology. The JavaServer Faces technology consists of a set of server-side APIs that represent user-interface components that manage their state, event, handling, and input validation. The APIs also define page navigation and support internationalization and accessibility. You can add custom user-interface components with a JSP custom tag library.

While developing with JavaServer Faces technology, each member of a development team can focus on a single piece of the process. A simple programming model then links the pieces, resulting in a much more efficient and simpler development cycle.

- Previous: Chapter 1 Overview
- Next: Chapter 3 Known Issues and Limitations

- © 2010, Oracle Corporation and/or its affiliates