Sun Java System Application Server 7 Release Notes

Sun™ Java System Application Server 7 Release Notes

(Formerly Sun ONE Application Server)

Version 7, Update 3

Part Number 817-5603-10

February 2004

These release notes contain important information available at the time of the Update 3 release of the Sun Java System Application Server, Version 7 product (formerly known as Sun™ Open Net Environment (ONE) Application Server).


Note

Throughout this document and other documents in the documentation set, the product is still referred to as Sun ONE Application Server.


Enhancements, installation notes, known problems, and other late-breaking issues are addressed here. Read this document and associated documents before you begin using the Sun ONE Application Server 7, Update 3 product.

This document contains the following sections:


Release Notes Revision History

This section lists the changes that have been made in these release notes after the initial release of the Sun ONE Application Server 7, product.

Table 1  Revision History 

Date

Description of Changes

February 2004

Initial release of Sun ONE Application Server 7, Update 3.


About Sun ONE Application Server, Version 7, Update 3

The Sun™ ONE Application Server 7 provides a high-performance J2EE platform suitable for broad deployment of application services and web services.

This section includes:

What’s New in the Sun ONE Application Server 7 Product

Information on what’s new in the Sun ONE Application Server 7 product can be found in the Sun ONE Application Server What’s New document at this location:

http://docs.sun.com/db/prod/s1.asse

Requirements and Limitations

Information on the platform requirements for the Sun ONE Application Server 7 Update 3 product can be found in the Sun ONE Application Server Platform Summary document at this location:

http://docs.sun.com/db/prod/s1.asse

The following topics are addressed in this section:

Platform Requirements

The following table summarizes the Sun ONE Application Server 7, Update 3 requirements. For complete platform information, see the Sun ONE Application Server Platform Summary document at this location:

http://docs.sun.com/db/prod/s1.asse

Table 2  Platform Requirements for Sun ONE Application Server 

Operating System

Architecture

Minimum Memory

Recommended Memory

Minimum Disk Space

Recommended Disk Space

UNIX

Sun Solaris 8 or 9 for SPARC

32 and 64 bit

256 MB without Sun Java Studio

512 MB with Sun Java Studio

512 MB

250 MB free

500 MB free

Solaris x86, Version 9

32 bit

Red Hat Linux 7.2, 7.3

Red Hat Enterprise Linux 2.1, 3.0

Microsoft Windows

Windows 2000 Advanced Server, SP2

Windows 2000 Server, SP2

Windows 2000 Professional, SP2

Windows XP Professional

Intel 32 bit

256 MB without Sun Java Studio

256 MB with Sun Java Studio

256 MB without Sun Java Studio

512 MB with Sun Java Studio

250 MB free

500 MB free

Solaris Patches

Solaris 8 users must have the Sun recommended patch cluster installed, available under “Recommended and Security Patches” at this location:

http://sunsolve.sun.com/

Patches that are absolutely required for Solaris 8 are 109326-06, 108993-23, and 110934 (any revision, for package based installation only). Without these patches, which the installer checks for, you won't be able to install or run the Sun ONE Application Server software. These patches are already contained in the latest recommended patch cluster.

Solaris x86 Limitations


Bugs Fixed in This Release

This section lists the customer-escalated issues resolved for the Sun ONE Application Server 7, Update 3 product.

Table 3  Fixed Bugs in Application Server 7, Update 3 

Bug Number

Description

4724728

When a method defined in the home interface is just a redefinition of a method defined in the superinterface, Sun ONE Application Server generates the implementation code multiple times.

4811431

Cannot access a web module if the location attribute in server.xml ends in a slash (/).

4818853

LocalTransaction association with ManagedConnection not preserved between EJBs.

4830338

Multibyte characters in cookies not working and you cannot turn off URL-encoding for cookies. See additional information in "Internationalization (i18n)" on page 59.

4849513

Dynamic reloading does not pick up changes to sun-application.xml after the first time.

4851218

Documentation doesn’t explain using self-signed certificates.

4853543

No support for a PK (Primary Key) class that has some of it public fields declared in a super class

4860400

EJB Classloader returns null when calling Class.getPackage().

4861948

getEJBMetaData() fails with exception after the context is re-initialized.

4869664

Two-byte characters cause problems in the HTTP GET URLs.

4870233

JSP with page directive “buffer=none” does not work behind a passthrough proxy listener.

4884552

auth-method=CLIENT-CERT forces the SSL client auth regardless of URI pattern.

4886253

Unable to retrieve X509 Client Certificate behind a passthrough proxy listener.

4892587

Sun ONE Application Server does not enforce “grant signedby” policy.

4893954

Documentation doesn’t explain that cron-based log rotation restarts the Sun ONE Application Server.

4895814

request.getRequestURI() returning inconsistent values.

4904100

When a rich client (without ACC) directly access an application deployed on Sun ONE Application Server, there is always an exception.

4907283

When using JDK1.4.1, the server JVM hangs when JSP requests ignore case sensitivity.

4909380

Uninstall of unbundled Sun ONE Application Server packaged-based product removes shared components.

4910686

Sun ONE Application Server does lazy auth even if the HTTP port is not client auth enabled.

4913290

Documentation doesn’t indicate that form-based authentication does not provide the same functionality as in iPlanet Application Server 6.x.

4913458

Web container thread names are not unique.

4917206

Unable to set an ACL for anything but the entire server through Admin GUI.

4922884

Web Service from a JAX-RPC client using dynamic proxy method throws an Internal Server Error

4925548

The appclient script does not work with JDK 1.4.2.

4930027

Sun ONE Application Server performance problem with jsp:useBean. For more information, see "JSP Compiler" on page 34.

4937416

Using Custom User Principle class throws ClassCastException.

4958393

ServletContext.getContext(String) does not return other contexts when called from root context.


Important Information

This section covers the following topics:

Documentation

All Sun Microsystems product documentation can be found at this location:

http://docs.sun.com/

This section addresses the following topics:

Sun ONE Application Server 7 Documentation

In addition to these release notes, the Sun ONE Application Server 7, Update 3 product includes an entire set of documentation. The Sun ONE Application Server 7 documents that were updated in Update 3 have new part numbers and are indicated in the following list as REVISED. Documents that were not changed from previous update releases have the same part numbers.


Note

For significant issues, a document might be revised. In this case, the revised version will be posted to this site. The date last updated is displayed with the copyright information in the HTML version of the document.


The Sun ONE Application Server 7, Update 3 documents can be found at this location:

http://docs.sun.com/db/prod/s1.asse

The following list provides the part number and a brief description for each of the documents in the Sun ONE Application Server collection:

Referenced Documentation

Documentation for other Sun ONE products is often referenced in the Sun ONE Application Server documentation.

Sun ONE Message Queue Documentation

The Sun ONE Message Queue (also known as iPlanet Message Queue) subsystem that is integrated with the Sun ONE Application Server has its own documentation that can be found at the following location:

http://docs.sun.com/db?p=prod/s1.s1msgqu

Sun Java Studio 5, Standard Edition Documentation

The Sun Java Studio 5, Standard Edition product that you can use with the Sun ONE Application Server has its own documentation that can be found at the following location:

Accessibility

Sun ONE Application Server product documentation is provided in accessible formats that are readable by assistive technologies.

The product provides many accessibility features that enable you to read about and use the product in the manner that is most comfortable and convenient to you. These features include:

If you want to modify the Sun ONE Application Server HTML online help, you can go to the help directory and edit the style sheet which is located here:

server_root/lib/install/applications/admingui/adminGUI_war/help

Restart the Admin Server for changes to take effect.

Upgrade Notes

If you are upgrading an existing version of Sun ONE Application Server 7 to Sun ONE Application Server 7, Update 3, select the upgrade archive on the download site. Full instructions for upgrading to Sun ONE Application Server, Update 3 product are contained in the Sun ONE Application Server Installation Guide at this location:

http://docs.sun.com/db/prod/s1.asse


Note

The upgrade program is not available for Simplified Chinese or Japanese. Therefore, if you are upgrading from an existing installation to Sun ONE Application Server 7, Update 3 in Simplified Chinese or Japanese, you will need to use the uninstall program to uninstall your existing version of Sun ONE Application Server, then do a full install of Sun ONE Application Server 7, Update 3. Instructions are contained in the Sun ONE Application Server Installation Guide.



Known Issues and Limitations

This section describes known problems and associated workarounds for the Sun ONE Application Server 7, Update 3 product.


Note

If a problem statement does not specify a particular platform, the problem applies to all platforms.


This information is organized into the following sections:

Installation and Uninstallation

This section describes known installation and uninstallation issues and the associated solutions.

ID

Summary

4403166

On Microsoft Windows, package/path/application names longer than 255 characters will fail to deploy applications.

On Microsoft Windows only, long package/path names are not supported because of the JDK™ limitation. During deployment, the deployment tool will try to extract class file from the archive. If the expanded name is more than 255 characters, the extraction will fail.

  • Example of a long application name:

J2EE application name as servlet_jsh_HttpServletRequestWrapper.ear

  • Example of a long package name:

The servlet is located in the following package:

servlet_jsh_HttpServletRequestWrapper_1\
servlet_jsh_HttpServletRequestWrapper_servlet_war\WEB-INF\classes\tests\
javax_servlet_http\HttpServletRequestWrapperHttpServletRequestWrapperConstructorTestServlet.class

  • Example of a long path name:

Sun ONE Application Server is installed as drive \:> Sun \ApplicationServer

Solution

Consider the following solutions:

1.  Make a shorter directory structure during installation. For example, drive:>App\ instead of the default drive:\>Sun\Apsserver7.

2.  Use the create_instance command to rename the instance to something shorter. For example, /instance1/domain1/ could be changed to /i/d.

3.  Have shorter package names, path names, and application names.

4687768

On Solaris setup-SDK/JDK, an error occurs when installing in command-line mode on a machine without Xwindows.

It is not possible to run the Sun ONE Application Server installer, even in command-line mode, on a hardened Solaris system which does not contain X Windows libraries. The installer will throw java.lang.UnsatisfiedLinkError while instantiating AWT objects used by SetupSDK/Webstart Wizard’s installer framework.

Solution

1.  Install X Windows support packages temporarily, removing them after installing the Sun ONE Application Server product.

2.  Install the Sun ONE Application Server packages using the pkgadd command and create the initial domain using asadmin commands.

4719600

Warning messages occur during installation.

During installation, some invalid error messages might occur. For example:

WARNING: Couldn't flush system prefs: java.util.prefs.BackingStoreException: Couldn't get file lock.
WARNING: Could not lock System prefs.Unix error code -223460600.

Solution

Ignore these warnings or, alternatively, you can create a system preferences directory (typically /etc/.java/.systemPrefs). This is normally done by the JDK install script.

4737663

On Solaris, if you install both the package-based install and regular install, there is conflict.

If you install both the package-based install (Solaris 9 bundled) and the mainstream installer version of the product, there are potential conflicts. The Sun ONE Message Queue broker for both of these installations will be shared, so if you don't uniquely name the domains and instances, you might see the following message when starting the second instance with the same domain/instance name:

SEVERE: JMS5024: JMS service startup failed.
SEVERE: CORE5071: An error occured during initialization

In particular, the default domain and instance names are the same for both of these installations.

Solution

Follow the instructions in the “JMS Administration” chapter of the Sun ONE Application Server Administrator’s Guide.

4742038

Sun ONE Application Server does not start if the install directory contains non alpha-numeric characters.

Sun ONE Application Server startup fails if the install directory contains characters such as #, spaces, or any other non alpha-numeric characters. In this case, the server log files are not created. The Sun ONE Application Server install directory can contain only the following characters: alphanumerics, - (dash) or _ (underscore). This also applies to entering existing Java 2 SDK directory during installation.

Solution

During installation, specify a directory where names contain only alphanumeric, dash, or underscore characters.

4742828

Silent installer is not checking user permissions.

Although interactive installers (GUI or command-line) check for appropriate user permissions (admin user for Microsoft Windows platforms, and root user for Solaris package-based installation), this check is not done during silent installation. As a result, installation will fail later in the process because you will not have sufficient permissions to install packages (Solaris) or create services (Microsoft Windows).

Solution

Make sure that silent installation is being run as the appropriate user.

4741190

For Solaris, Installer accepts JDK_LOCATION value even if the location contains an earlier version (earlier than Solaris 1.2).

Sun ONE Application Server 7 requires a Java 2 SDK version greater than or equal to 1.4.0_02. However, on Solaris, if a user chooses to reuse an existing Java 2 SDK (less than version 1.2), the installer might not display a warning message. The installation might complete successfully, but the Sun ONE Application Server might not function properly. This is caused by having an existing JAVA_HOME in your environment.

Solution

Before starting the installation program, unset JAVA_HOME as follows:

(On ksh): unset JAVA_HOME
(On csh): unsetenv JAVA_HOME

4742171

Installing a development installation over an existing evaluation installation in silent mode does not report an error.

Affects installers running in silent mode. If user attempts to install over an existing evaluation installation of Sun ONE Application Server 7 (in the same directory), silent installation does not report any errors and proceeds normally. Existing evaluation installation files are preserved.

Solution

Uninstall existing evaluation installations before installing a new development installation in the same location.

4742552

Selecting Application Server and Sun ONE Studio 4 Enterprise Edition for Java components in the same installation session in command-line and silent mode does not work correctly.

Affects development and operations installations. While running installation in command-line or silent mode, you can choose to install both Application Server and Support for Sun ONE Studio 4 Enterprise Edition for Java components during the same installation session (in GUI mode, these components are mutually exclusive). The installer does not process component dependency correctly and tries to install the Administration Client component instead of the selected Sun ONE Application Server component.

Solution

Simulating GUI mode, first install the Sun ONE Application Server component in command-line or silent mode, then run another installation and install the Support for Sun ONE Studio.

N/A

On Solaris, if the Sun ONE Application Server installer upgrades an existing Sun ONE Message Queue 3.0 to 3.0.1, the resulting installation will be removed during Sun ONE Application Server uninstallation.

Affects Solaris development and operations installer. If an installed Sun ONE Message Queue 3.0 is detected on the system, you are given the option of automatically upgrading this installation to version 3.0.1. If this option is chosen, the resulting Sun ONE Message Queue 3.0.1 installation will be uninstalled during Sun ONE Application Server uninstallation.

Solution

To preserve the Sun ONE Message Queue installation after the Sun ONE Application Server is uninstalled:

1.  Exit the installer when offered the automatic upgrade choice,.

2.  Upgrade Sun ONE Message Queue to version 3.0.1 according to Sun ONE Message Queue documentation,.

3.  Run Sun ONE Application Server installation again.

4746410

On Solaris, when installing the Sun ONE Application Server in non-default locations, the package-based installer on Solaris does not check disk space in the correct locations.

When attempting to install the Sun ONE Application Server on Solaris (using the package-based installer) in non-default locations, the installation program does not check for disk space in the specified target directory. Instead, it checks for disk space only in the default location (/opt).

Solution

Before starting the installation, make sure that you have adequate disk space (85 MB) in /opt even if you do not plan to install in /opt. In addition, make sure you have adequate disk space (85 MB) in the target directory.

4748404

On Microsoft Windows XP, cannot incrementally install sample applications and PointBase 4.2 components.

This issue affects the Windows XP platform. If you try to incrementally install Sample Applications and/or PointBase 4.2 components over an installed Sun ONE Application Server component, the installer does not correctly detect the existing Sun ONE Application Server installation and reports Application Server Not Found. Installation does not proceed.

Solution

Install sample applications and PointBase 4.2 components together with the Sun ONE Application Server component. If the Sun ONE Application Server is already installed on the system, uninstall it and run installation again, this time selecting all necessary components.

4748455

Directory error occurs during generic silent install.

This issue affects silent installation on all platforms. If the installer finds a problem with a given installation directory, the generic error message Invalid Installation Directory is reported.This error message covers the following situations:

  • Selected directory is not writable.
  • Selected directory string is empty or contains space characters.

Solution

Check the supplied installation directory value for both issues to determine the cause of error.

4749033

On Microsoft Windows XP, cannot uninstall standalone admin client installation using uninstaller.

This issue affects a standalone admin client installation on the Windows XP platform. If user tries to uninstall a standalone admin client through the provided uninstaller, uninstallation tries to uninstall an incorrect set of components and hang.

Solution

Uninstall a standalone admin client manually. Files located in the install_dir directory should be deleted. The related Program Group folder (Start->Programs->Sun Microsystems->Sun ONE Application Server) should also be removed. There are no related Microsoft Windows registry entries for a standalone admin client component; these steps will fully revert the system in the state before admin client installation.

4749666

Samples documentation is not published to initial server instance if Sample Application component has been incrementally installed.

This issue affects the development and operations installer on all platforms. If sample applications are installed in a separate installation session over an installed Sun ONE Application Server, the sample documentation will not be published to the initial server instance and will not be accessible through the http://hostname:port/samples URL. However, documentation is installed on the file system and can be accessed locally at this location: file:///install_root/samples/index.html

Solution

Access samples documentation locally.

4754256

On Solaris, Sun ONE Message Queue configuration files are not preserved during Sun ONE Message Queue upgrade performed by the installer.

If an existing Sun ONE Message Queue 3.0 package has been detected on the system, the installer offers to upgrade this installation to version 3.0.1 which can be used by the Sun ONE Application Server. During this upgrade operation, the existing 3.0 Solaris packages is removed, resulting in the removal of the following configuration files:

/etc/imq/passwd
/etc/imq/accesscontrol.properties

If these files have been modified, those modifications will be lost and the resulting Sun ONE Message Queue 3.0.1 installation will contain the default configuration values.

Solution

Create a backup copy of any user-modified files and restore the backup copies of the files after the upgrade has been completed. For more details, consult Sun ONE Message Queue 3.0 Installation Guide.

4754824

On Solaris, an installer error message occurs while running installation from a CD.

When a volume is inserted into the CD-ROM drive, Solaris volume management assigns it the next symbolic name. For example, if two CD-ROMs match the default regular expression, they are named cdrom0 and cdrom. Any that match the added regular expression would be named starting with cdrom2. This is documented on vold.conf man page. Every time you install the Sun ONE Application Server from the CD, the CD-ROM mount point appends a number after the label name. The first time the CD is mounted everything goes well. On subsequent mounts, the following error message occurs when the installer starts:

IOException:java.io.FileNotFoundException: /cdrom/appserver7 No such file or directory) while loading default flavormap.properties file URL:file:/cdrom/appserver7#4/AppServer7/pkg/jre/lib/flavormap.properties

Solution

Installer functionality is not affected in any way. However, the following workaround exists:

1.  Become the superuser by entering the command su and the root password at the command prompt, or log in as root. The command prompt changes to the pound sign (#).

2.  If the /cdrom directory does not already exist, enter the following command to create it:

   # mkdir /cdrom

3.  Mount the CD-ROM drive.

NOTE: The vold process manages the CD-ROM device and performs the mounting. The CD-ROM might automatically mount onto the /cdrom/cdrom0 directory.

If running File Manager, a separate File Manager window displays the CD-ROM contents.

4.  If the /cdrom/cdrom0 directory is empty because the CD-ROM was not mounted, or if File Manager did not open a window displaying the contents of the CD-ROM, verify that the vold daemon is running by entering:

   # ps -e | grep vold | grep -v grep

5.  If vold is running, the system displays the process identification number of vold. If the system does not display anything, kill the daemon by typing the following:

   # ps -ef | grep vold | grep -v grep

6.  Stop the vold process by entering:

   # kill -15 process_ID_number

7.  Mount the CDROM manually:

   # mount -F hsfs -r ro /dev/dsk/cxtyd0sz /cdrom/cdrom0

where x is the CD-ROM drive controller number, y is the CD-ROM drive SCSI ID number, and z is the slice of the partition on which the CD-ROM is located.

You have now mounted the CD-ROM drive. Refer to Installing and Setting Up CD One on Solaris for procedures on installation.

4755165

On Microsoft Windows, Installer functionality is affected if administrator user credentials are supplied only when running setup.exe.

This issue affects all installations on Microsoft Windows platforms. If a user is logged in without administrator privileges, he/she will be prompted to enter administrator user credentials while attempting to run setup.exe. If the correct credentials are entered, the installer checks for user privileges will be satisfied and installation will proceed. However, some installer functionality will be affected:

  • The installer will hang if the Browse button is selected on the installation directory selection screen.
  • Program Group entries for the Sun ONE Application Server items might not be created.

Solution

Log in as user with administrator privileges when performing installation.

4757687

On Solaris, incremental installation of the Sun ONE Application Server component on the system with previously installed Administration Client component might result in an unusable installation.

This issue affects Solaris package-based installation on a Solaris platform. If user tries to install the Sun ONE Application Server component on the system where a standalone Administration Client component has already been installed, and selects a different installation directory from the one originally used for Administration Client installation, the resulting Sun ONE Application Server installation will be unusable even though the installation outcome is reported as successful. This is because the Administration Client Solaris packages will be detected as already installed on the system, and they will not be installed as the part of the Sun ONE Application Server installation. As a result, files critical for product functionality will be missing.

Solution

Uninstall the standalone Administration Client before attempting to install the Sun ONE Application Server on the same Solaris system.

Alternatively, an incremental installation can be attempted, but the same installation directory that has been used for the Administration Client installation should be used for the subsequent Sun ONE Application Server installation.

4762118

On Solaris, installation fails if a selected custom configuration directory is a subdirectory of the selected installation directory and is called 'etc'.

This issue affects Solaris package-based installation on a Solaris platform. If the following combination of custom directory locations has been selected, installation fail due to inconsistent group ownership information for the same directory:

  • Installation directory: install_dir
  • Configuration directory: install_dir/etc

The pkgadd log file in the /var/sadm/install/logs directory will contain following error message:

pkgadd: ERROR: duplicate pathname /install_dir/etc
pkgadd: ERROR: unable to process pkgmap

Solution

Select a custom configuration directory other than install_dir/etc.

4724612

On Solaris SPARC and Linux, PointBase shell scripts fail if run by someone other than the installing user.

This issue affects only the evaluation installation. All PointBase shell scripts are set to execute permission only for the installing user.

Solution

If users other than the person who installed the product need to execute these scripts, change the permissions to 0755.

4762694

On Solaris, the Sun ONE Message Queue package SUNWiqsup is not removed during Message Queue upgrade process.

This is only an issue on Solaris. The Sun ONE Application Server 7 installation process involves installing Sun ONE Message Queue version 3.0.1. On Solaris, if Sun ONE Message Queue version 3.0 is detected, it is first uninstalled (after user confirmation) and the 3.0.1 version is installed.

There is a minor cleanup issue where the Solaris installer does not remove one of the Solaris packages (SUNWiqsup) for Sun ONE Message Queue 3.0 as part of this upgrade process. The presence of this package is harmless and does not affect Sun ONE Message Queue or Sun ONE Application Server 7.

Solution

Manually remove the SUNWiqsup package using the following command (as root):

# pkgrm SUNWiqsup

4890289

On Window 2000 Pro, the uninstaller is not able to find the JDK to run uninstallation.

On Windows 2000 Pro, uninstallation fails with the following message:

The uninstaller could not locate a suitable j2sdk to run the uninstalltion program. Run the uninstalltion again with the -javahome option set to the directory in which j2sdk 1.4.0_02 or greater is installed. Press Enter to exit.

Solution

Use the -javahome JDK location.

N/A

On Red Hat Enterprise Linux AS 3.0 you must install compat-libstdc++ (standard C++ libraries for backwards compatibility) before installing Sun ONE Application Server.

Solution

Install compat-libstdc++ before installing Sun ONE Application Server. These libraries are included on the Red Hat Enterprise Linux AS 3.0 CD set.

Server Startup and Shutdown

This section describes the known startup and shutdown issues and associated solutions.

Behavior of Log Service create-console Attribute

On Microsoft Windows, when the create-console attribute of the log-service element in server.xml is set to true (the default setting), a window displaying the content of the server event log is displayed on the desktop. By design, closing this window does not result in a persistent termination of the App Server instance process. Closing the console window terminates the appservd.exe process, but the watchdog process (appservd-wdog.exe) immediately restarts the server instance process.

For developers, closing the event log window of an instance can be used as a means of quickly restarting the App Server instance.

However, to stop the App Server instance completely (along with the companion watchdog process), use one of the following methods:

Using the Admin Console, you can enable/disable the console event log window by modifying the Create Console setting under the Logging tab of the App Server instance.

ID

Summary

4725893

On Solaris, License expiration information is not shown.

Affects Solaris SPARC evaluation licenses. Warning information relating to imminent expiration of license (within 14 days or less of expiration) would not be reported through the command-line interface and browser-based interfaces. The warnings would, however, appear in the server log files.

Solution

Check the server log files.

4738648

JMS service/Sun ONE Application Server startup fails.

If the JMS provider (Sun ONE Message Queue broker) has a large number of undelivered persistent messages, a Sun ONE Application Server initialization failure might occur due to following problems:

1.  As it tries to load all the pending messages, the MQ broker might run out of memory and abort.

Solution

Use more Java heap space for the MQ broker process. To do this, set the Start Arguments attribute of the JMS service to -vmargs -Xmx256m.

The procedure for setting this attribute is described in the “Using the JMS Service” chapter of the Sun ONE Application Server Administrator’s Guide.

2.  If the MQ broker cannot complete its initialization sequence within a certain period of time, the Sun ONE Application Server times out and aborts.

Solution

Increase the value of the JMS service Start Timeout attribute. The procedure for setting this attribute is described in the “Using the JMS Service” chapter of the Sun ONE Application Server Administrator’s Guide.

4762420

Firewall rules might cause Sun ONE Application Server startup failures.

If you have a personal firewall installed, you might experience this problem. The presence of strict firewall rules on the same machine as a Sun ONE Application Server installation might cause startup failures of the Admin Server and App Server instances. Specifically, the Admin Server and App Server instances attempt to establish local connections within the Sun ONE Application Server environment. Since these connection attempts access ports using the host name of the system rather than localhost, local firewall rules might block such attempts.

The local firewall might also inadvertently generate alerts saying that either the “Portal of Doom Trojan” attack (for example, TCP connection attempts on port 3700) or similar attacks have occurred when, in fact, such access attempts have been made by the Sun ONE Application Server and are in no way a security threat to your machine. Under some conditions, the port number which the Sun ONE Application Server uses for various local communications might overlap with port numbers used in known popular attacks. Some symptoms of this problem:

  • An attempt to start the Sun ONE Application Server using the Microsoft Windows program group item “Start Application Server” fails with this message:

   Could not start the instance: domain1:admin-server
   server failed to start: abnormal subprocess termination
   ...

  • The administrative and server instance log files contain connection exceptions followed by this message: CORE3186: Failed to set configuration

Solution

Modify the firewall policy to allow the Sun ONE Application Server to make connection attempts to ports on the local system.

To avoid inaccurate alerts concerning possible attacks, either modify the relevant rules or change the conflicting port number(s) used by the Sun ONE Application Server.

To determine the port numbers used by the Admin Server and App Server instances, see the server.xml file in the following location of your Sun ONE Application Server installation:

   domain_config_dir/domain1/admin-server/config/server.xml
   
domain_config_dir/domain1/server1/config/server.xml

where domain_config_dir is the location of your initial server configuration. For example:

Microsoft Windows: install_dir/domains/...
Solaris 9 and above integrated install: /var/appserver/domains/...
Solaris 8, 9 and above unbundled install: /var/opt/SUNWappserver7/domains/...

Look for the port settings in the <iiop-listener> and <jms-service> elements. You can either change these port numbers to other unused port numbers, or you can modify your firewall policy to allow connection attempts from clients on the local machine to these port numbers on the same machine.

4780076

On Solaris, the Sun ONE Application Server starts all instances as root thereby allowing non-root users to have root access.

There are several issues associated with application server startup when the Sun ONE Application Server is installed as part of a Solaris installation (bundled):

  • All application server and administrative server instances are started automatically during Solaris system startup. In many environments, not all the instances are expected to be started automatically during Solaris system startup. Starting every defined instance can adversely impact the memory available on a system.
  • When application server instances and administrative server instances are started automatically, the startup script for each instance is executed as root. Execution of non-root owned instance startup scripts can enable non-root users access to the root user through modification of the instance-level startup scripts.

Background

During installation of the Sun ONE Application Server as part of a Solaris installation, the /etc/init.d/appserv script and symbolic links to the S84appserv and K05appserv scripts in the /etc/rc*.d/ directories are installed. These scripts cause all the application server and administrative server instances defined as part of the application server installation to be started and stopped automatically during Solaris system startup and shutdown.

The /etc/init.d/appserv script contains the following section of code:

...
case "$1" in
'start')
    /usr/sbin/asadmin start-appserv
    ;;
'stop')
    /usr/sbin/asadmin stop-appserv
    ;;
...

Running the asadmin start-appserv command causes the administration server instance and all application server instances defined in all administrative domains to be started during Solaris system startup. Since the system startup and shutdown scripts are executed as root, the startup script for each application server and administrative server instance is also executed as root. The instance-level startup script is named startserv and is located at instance-dir/bin/startserv. Since instances might be owned by users other than root, the startserv scripts could be modified by the non-root user to execute commands as the root user.

In cases where an instance is using a privileged network port, the instance's startserv script must be executed as root. However, in these cases, "run as user" is typically set in the instance's configuration to force the instance to run as the specified user after the instance has been initially started by the root user.

4780076
(Continued)

Solution

Perform one of the following workarounds depending on your environment:

  • If your environment does not require all application server and administrative server instances to be started as root, then you should comment out execution of the asadmin start-appserv and asadmin stop-appserv commands in the etc/init.d/appserv script.
  • If your environment requires starting either specific administrative domains (including the administrative server instance and all application server instances of each domain) or specific instances within one or more administrative domains, then you should either modify the /etc/init.d/appserv script to start the domains and/or instances of interest or define new /etc/rc*.d/ scripts that suit the needs of your environment.
  • Starting a specific domain. If you require to start either an administrative domain or specific instances as non-root users, then you should ensure that the su command with the -c option is used to start the domains and/or instances of interest.

Examples

Starting a specific administrative domain—If you want to start the administrative server instance and all application server instances of a specific administrative domain as the root user, you can modify the /etc/rc*.d/ scripts as follows:

...
case "$1" in
'start')
   /usr/sbin/asadmin start-domain --domain production-domain
   ;;

'stop')
   /usr/sbin/asadmin stop-domain --domain production-domain
   ;;
...

4780076
(Continued)

  • If you want to start specific application server instances as a non-root user, modify the /etc/rc*.d/ scripts to use the su command with the -c option:

...
case "$1" in
'start')
   su - usera -c "/usr/sbin/asadmin start-instance --domain test-domain instance-a"
   su - userb -c "/usr/sbin/asadmin start-instance --domain test-domain instance-b"
   ;;

'stop')
   su - usera -c "/usr/sbin/asadmin stop-instance --domain test-domain instance-a"
   su - userb -c "/usr/sbin/asadmin stop-instance --domain test-domain instance-b"
   ;;
...

See the Sun ONE Application Server Administrator’s Guide for more information on the startup and shutdown commands available through the asadmin command line interface.

Database Driver

This section describes the known database driver issues and associated solutions.

ID

Summary

4700531

On Solaris, an ORACLE JDBC driver error occurs.

This new Java Database Connectivity (JDBC) driver is for Oracle (R) working with JDK1.4. The problem is caused by a combination of the Oracle 9.1 database and ojdbc14.jar. Applying the patch will fix the problem on Solaris 32-bit machine, running an Oracle 9.0.1.3 database.

Solution

Obtain and apply the patch to your server from the Oracle Web site for Bug 2199718. Perform the following steps:

1.  Go to the Oracle web site.

2.  Click the 'patches' button.

3.  Type 2199718 in the patch number field.

4.  Click the 32-bit Solaris OS patch.Go to Metalink.oracle.com.

5.  Click patches.

6.  Under patch number, enter 2199718.

7.  Click the 32 bit Solaris OS patch.

4707531

On Solaris, accessing an Oracle 9.1 database with an Oracle 9.2 Client might cause data corruption.

If you use an Oracle (R) 9.2 client to access an Oracle 9.1 database, data corruption might occur when a number column follows a timestamp column.

The problem might be caused by using the ojdbc14.jar file with an Oracle 9.1 database. Applying the patch might assist in addressing the situation on Solaris 32-bit machines, running an Oracle 9.1 database. This JDBC driver is for Oracle working with JDK1.4.

Solution

Obtain the patch that Oracle might make available from the Oracle web site for Bug 2199718 and apply it to your server.

Web Container

This section describes the known web container issues, and the associated solutions.

ID

Summary

4740477

The web cache example in sun-web-app_2_3-0.dtd file provides incorrect syntax for the timeout element.

The timeout element is specified to use in XML cache object as:
<timeout> 60 </timeout>

Because the name parameter is a required field, it should be written as:
<timeout name="foo">60</timeout>

Solution

Do not use with verifier.

4817642

Allowing separate web applications to share the same session ID creates security weakness.

Solution

According to J2EE specification, each deployed web application maintains separate, unique session objects (session IDs). This is the default behavior of the Sun ONE Application Server. However, in some instances it may be desirable to allow separate web applications to share the same session ID. In this case, the Sun One Application Server allows you to specify a special deployment property in the sun-web.xml deployment descriptor to tell the application server that this particular application is allowed to reuse session IDs when going across web application modules. (The first access to a web application will generate a new unique session ID. Later requests to other web applications that have this property set will use that same session ID instead of generating a new one for this client and this web application.)

To do this, the reuseSessionId property must be set to true for each deployed web application upon which you want to allow sharing of the same session object. For example:

<?xml version="1.0" encoding="UTF-8"?>
<sun-web-app>
   <session-config>
     <cookie-properties>
       <property name="cookiePath" value = "/" />
       <property name="cookieDomain" value = ".sun.com" />
    </cookie-properties>
   </session-config>
   <property name="reuseSessionID" value="true"/>
</sun-web-app>

The property reuseSessionID is set to true in next to last line.

CAUTION: Turning on reuseSessionId opens a potential avenue for a security weakness (though it is not a weakness in of itself). This property should not be used in a shared environment (such as an ISV) where multiple customers are allowed to run their applications on the same Sun One Application Server instance. In such as setting, it is much safer to use the default J2EE behavior of forcing different web applications deployed to the same server instance to use different session objects.

EJB Container

This section describes the known Enterprise JavaBeans™ (EJB™) container issues and associated solutions.

ID

Summary

4735835

Cannot properly handle null PKs returned from ejbFind methods.

The following container-managed persistence (CMP) examples might return one or more nulls from an ejbFind (assumed called from EmployeeEJB bean, as they must return the same instance type as the bean):

1.  find insurance.employee where insurance.id == 10

This returns null if such insurance does not have an employee associated with it.

2.  find all insurance.employee where insurance.id > 10

This returns a collection that might contain nulls for those insurances that do not have an employee.

For the first occurrence of a null PC in the result set, the CMP client will get JDOFatalInternalException "param0 cannot be null".

The BMP client will get EJBException "Null primary key returned from ejbFind method" for a single object finder, and (possibly) a NullPointerException for a multi object finder.

Solution

None.

4744434

The Sun ONE Application Server occasionally throws Null Pointer Exception when using stateful session beans.

The EJB container in the Sun ONE Application Server caches stateful session beans to improve performance. When the cache overflows (that is, the number of beans in the cache exceeds max-cache-size) the container passivates beans to the disk. Occasionally the server throws NullPointerException. The problem occurs when the difference between max-cache-size and cache-resize-quantity is less than 8.

Solution

Ensure that the difference between max-cache-size and cache-resize-quantity is greater than eight, or use an unbounded cache by setting max-cache-size to zero.

4951476, 4967645

The exception javax.ejb.EJBException: org/dom4j/Element is thrown when using Java WSPD 1.2 or 1.3

NOTE: If your application does not use the Java Web Services Developer Pack (Java WSDP) 1.2 or 1.3, this problem does not apply to you.

When Java WSDP 1.2 or 1.3 is installed and configured to be used together with Sun ONE Application Server 7, a javax.ejb.EJBException: org/dom4j/Element could be thrown by the EJB Container.

Solution

Add the latest dom4j-full.jar to server-classpath in the server.xml file. It is available for download at http://dom4j.org and should precede the appserv-jstl.jar entry in server-classpath.

Container-Managed Persistence

This section describes the known container-managed persistence (CMP) issues and associated solutions.

.

ID

Summary

4732684

Oracle JDBC driver optimizations are not being initiated.

To take advantage of Oracle (R) database optimizations with container-managed persistence (CMP) beans, the classes12.zip file must be specified in the classpath-suffix attribute of the server.xml file rather than placed in the instance's /lib directory which is the default for third-party libraries.

Solution

Add the classes12.zip file to the classpath-suffix attribute of the server.xml file.

4734963

Self-referencing CMRs cause problem during deployment.

The parser of the EJB deployment descriptor, ejb-jar.xml, does not correctly handle self-referencing container-managed relationships (CMRs), that is, ejb-relationship-role. The One side field is skipped.

Solution

Switch the ejb-relationship-role sections so that the One side (with <multiplicity> Many) is the first in ejb-relation.

4747222

On Oracle, the capture-schema utility does not work if -schemaname is not specified.

The capture-schema utility has the following problems if the -schemaname option is not specified when capturing database schema information from the Oracle (R) database:

1.  If you attempt to capture all tables (that is, no tables are explicitly chosen):

bin/capture-schema -dburl jdbc:oracle:thin:@oraserver:1521:ora -username scott -password tiger -driver oracle.jdbc.driver.OracleDriver -out test.dbschema

You will receive:
java.sql.SQLExceptions
ORA-00942: table or view does not exist.

The resulting output file is broken.

2.  If one or more tables are specified with the -table option:

bin/capture-schema -dburl jdbc:oracle:thin:@oraserver:1521:ora -username scott -password tiger -driver oracle.jdbc.driver.OracleDriver -table DEPT -out test.dbschema

The resulting file has the specified tables, but no column information, which means the file can't be used for CMP mapping.

Solution

When capturing a schema from the Oracle database, always use the -schemaname option with the user name in uppercase letters as the value:

bin/capture-schema -dburl jdbc:oracle:thin:@oraserver:1521:ora -username scott -password tiger -driver oracle.jdbc.driver.OracleDriver -schemaname SCOTT -out test.dbschema)

4751235

For capture-schema utility: If values for the -table option are not specified in uppercase on Oracle and/or PointBase, the resulting file is broken.

Oracle (R) and PointBase internally translate case-insensitive identifiers into uppercase letters, unless the identifier are enclosed in " "). The capture-schema utility does not correctly handle table names in lowercase or mixed-case letters as arguments to the -table option when capturing a database schema from Oracle or PointBase (such as -table student or -table Student). The generated database schema file will not contain any columns information for the corresponding table.

Solution

Use uppercase letters to specify table names (such as -table STUDENT).

Message Service and Message-Driven Beans

This section describes the known Java Message Service (JMS), Sun ONE Message Queue, and message-driven beans issues, and the associated solutions.

ID

Summary

4683029

The -javahome flag in all MQ Solaris/Microsoft Windows scripts does not work if the value has a space.

The command-line utilities in Sun ONE Message Queue have a -javahome option that allows you to specify an alternate Java runtime. Using this option exposes a limitation where the path of the specified alternate Java runtime must not contain spaces. Examples of paths that have spaces are:

  • Microsoft Windows: C:\jdk 1.4
  • Solaris: /work/java 1.4

This problem occurs at Sun ONE Application Server instance startup. When a Sun ONE Application Server instance is started, by default its corresponding Sun ONE Message Queue broker instance is also started. The broker always starts using the -javahome command-line option to ensure that it uses the same Java runtime used by the Sun ONE Application Server. If the Java runtime that is configured for use by the Sun ONE Application Server (and therefore passed on for use by the broker) is located at a path that contains spaces, broker startup fails, which also causes the Sun ONE Application Server instance startup to fail.

Solution

Make sure that the Java runtime used by the Sun ONE Application Server is located at a path that does not contain spaces.

Java Transaction Service (JTS)

This section describes the known Java Transaction Service (JTS) issues and associated solutions.

Recovery

There are some known problems with the recovery implementations of some of the JDBC drivers. For these known problems, Sun One Application Server provided some workarounds. By default, these workarounds will not be used unless you explicitly indicate that these workarounds are to be used.

Transactions

In the server.xml file, res-type is used to demarcate the connection as non-XA or XA. This demarcation is used to identify the configuration of the data source to drive data. For example, in the Datadirect driver, the same data source can be used as either XA or non-XA.

The default behavior of the data source is non-XA. To make the data source behave as XA with the connpool element for transactions, res-type is needed. For the connpool element to work and participate in transactions, add the following for the attributes res-type in the server.xml file:

res-type="javax.sql.XADataSource"

ID

Summary

4689337

The connection from XADatasource in non-txn context cannot be used.

This is a known database driver issue. When there is a connection in a non-txn context, with XADataSource the Autocommit is set to false by default.

Solution

Use the non-XA datasource class to call the commit/rollback programs explicitly rather than through transactions.

4700241

Non-zero transaction timeout setting causes slow local transactions.

Currently, the Local Transaction Manager does not support transactions with definite timeouts. If you set the timeout-in-seconds attribute in transaction-service element to a value greater than 0, all local transactions will be processed as a global transactions, and will take longer to complete. A local transaction might also fail, if the data source driver does not support global transactions. A timeout value of 0 means that the transaction manager will wait indefinitely if it does not hear back from a participating data source.

Solution

Reset the timeout-in-seconds value to its default value of 0.

JSP Compiler

This section describes the known JSP compiler issues and associated solutions.