Sun Java System Application Server Enterprise Edition 8.2 Release Notes for Microsoft Windows

Chapter 3 Known Issues and Limitations

This chapter describes known problems and associated workarounds for the Sun Java System Application Server Enterprise Edition 8.2 software. If a summary statement does not specify a particular platform, the problem applies to all platforms. This information is organized into the following sections:

Administration

This section describes known administration issues and associated solutions.

Load Balancer Feature Not Supported With Application Server in Configure Automatically During Installation Option (6463858)

The loadbalancer feature is not supported with Application Server in Configure Automatically During Installation option.

Workaround:The loadbalancer feature can be configured after Application Server installation.


Note –

You need to have Application Server and Web Server installed on your system to configure the loadbalancer feature.


    To configure the loadbalancer feature, follow these steps:

  1. Set the value of IS_LB to true and Cfgr_LB to false value in the registry HKEY_LOCAL_MACHINE -> Sun Microsystem -> EntSys -> Installer -> Application Server.

  2. Change to the setup directory.

    cd JavaES-Install-Dir\setup\


    
    
  3. Run the ASConfigure.bat batch file.

  4. Follow the instructions and provide the appropriate value.


    Note –

    For AS_LB Plug-in, type Sun Java System Web Server [Mandatory] as this is the only supported plug-in under Java ES 5.


  5. Reboot the system.

package-appclientScript Not Working if domain1 is Missing (ID 6171458)

By default, a hard-coded value is in JavaES-Install-Dir\lib\lib\package-appclient.xml for the AS_ACC_CONFIG variable for domain1 that is pointed to by asenv.conf. If domain1 is deleted and a new domain created, the AS_ACC_CONFIG variable is not updated with the new domain name, which causes the package-appclient script to fail.

Solution

Do one of the following:

Installing the Load Balancing Plug-in Overwrites an Existing Plug-in (ID 6172977)

If you install the Load Balancing plug-in against an installation of the Application Server that already has a load balancing plug-in installed (for example, from 7.1EE), the 8.2EE plug-in silently replaces any existing load balancer, even if you have created a new server instance in which to run the plug-in.

The plug-in files are installed by default under the install_dir/plugins/lbplugin directory, which means that only one version of a plug-in can be used with any one Application Server installation. Note that the console installer does display a message indicating that an uninstallation is being performed, but this message can easily be missed.

Solution

Not everyone will encounter this problem. If you do encounter the problem, remove the old Application Server installation and perform a fresh installation rather than performing an upgrade installation.

Several Changes in asadmin Script in Java ES3 Application Server 8.2 compared to Java ES2 Application Server 7 (ID 6189433, 6189436)

Several changes have been made to the asadmin command in Application Server 8.2 compared to Application Server 7 and compatible versions. For example, Application Server 7 and compatible versions the command to start a server instance is as follows:


asadmin start-instance

In version 8.2, the equivalent command is as follows:


asadmin start-domain --user admin domain1

Refer to the following documents for complete information about the latest asadmin command syntax:

Default Ports Changed in Application Server (ID 6198555)

When upgrading to Java ES5Application Server 8.2 from Java ES2Application Server 7and compatible versions, you might experience incompatibilities or errors because the default ports have changed.

Cannot Restore Backed-up Domain With Another Name. (ID 6196993)

Mirroring of a domain on the same Application Server installation cannot be performed by using the backup-domain and restore-domain commands because the domain cannot be restored by using a different name than the original, even though the asadmin restore-domain command provides an option to rename the domain. Renaming the backed-up domain appears to succeed, but attempts to start the renamed domain fail because the entries in the domain configuration are not changed, and startserv and stopserv use the original domain name to set paths.

Solution

The domain name used for restore-domain must be the same as that used for the original backup-domain command. The backup-domain and restore-domain commands in Application Server 8.2 work only for backing up and restoring the same domain on the same machine.

Starting Application Server With Additional JMX Agent Not Supported (ID 6200011)

J2SE 1.4., 5.0, and compatible versions can be configured on the Application Server. An integral feature of the J2SE 5.0 platform is the ability to start a JMX agent. This agent is activated when you explicitly set system properties at the server startup.

Example values include the following:

name="com.sun.management.jmxremote" value="true"
name="com.sun.management.jmxremote.port" value="9999"
name="com.sun.management.jmxremote.authenticate" value="false"
name="com.sun.management.jmxremote.ssl" value="false"

After configuring JMX properties and starting the server, a new jmx-connector server is started within the Application Server VM. An undesirable side-effect of this is that the administration functions are affected adversely, and the Application Server administration GUI and CLI might produce unexpected results. These results are caused by some conflicts between the built-in jmx-connector server and the new jmx-connector server.

Solution

If using jconsole or any other JMXcompliant client, consider reusing the standard JMX Connector Server that is started atApplication Server startup.

When the server starts, a line similar to the one shown in the next paragraph appears in the server.log. You can connect to the JMXServiceURL specified there and perform the same management and configuration operations after successfully providing the credentials, for example:

[#|2004-11-24T17:49:08.203-0800|INFO|sun-appserver-ee8.1|javax.enterprise.
system.tools.admin|_ThreadID=10;|ADM1501: Here is the JMXServiceURL for the 
JMXConnectorServer: [service:jmx:rmi:///jndi/rmi://hostname:8686/management/
rmi-jmx-connector]. This is where the remote administrative clients should 
connect using the JSR 160 JMX Connectors.|#]

For more information, refer to the Sun Java System Application Server 8.2 Administration Guide.

Load Balancer Configuration File Not Created With the Endpoint URL of Any Web Service (ID 6236544, 6275436)

When setting up the load balancer configuration with an application that has an EJB module that exports a web service URL, the context root for the web service isnot in the resulting loadbalancer.xml file.

Solution

  1. Edit the loadbalancer.xml file to add the missing web module as follows:


    <web-module context-root="context-root-name"
    disable-timeout-in-minutes="30" enabled="true"/>
  2. Replace context-root-name value with the context root name of the web service that was exposed as an EJB.

Java Home Setting Inside Configuration Not Effective (ID 6240672)

Application Server domains and servers do not use the JDK that is pointed by the java-home attribute of java-config element of the associated configuration.

Solution

The JDK used by the Application Server processes for all the domains in a given server installation is determined by the appserver-installation-dir/config/asenv.conf file. The property AS_JAVA in this file determines the JDK used and is set at the time of installation. If a different JDK is to be used by Application Server processes after the installation is completed, this value can be modified to point to another JDK. Note that all domains in this installation are affected by this change.


Note –

Manual changes to asenv.conf file are not checked for validity, so be cautious while changing them. Check the product documentation for minimum JDK version requirements when modifying the value for AS_JAVA.


Application Server Restart Using sun-appserv-admin Causes LoginException Error (ID 6288893)

This problem is caused by a wrong value for %CONFIG_HOME%.

Solution

  1. Rename the existing asantto asant.bak.

  2. Copy the asant.template file in as_install/lib/install/templates/ee for SE or EE version to the as_install/bin/ directory and rename the asant file.

  3. Edit the newly copied as_install/bin/asant file, replacing the %CONFIG_HOME% token with as_install/config value.

  4. If any manual changes were made to the original asant.bak file, merge them into the new asant file.

.asadmintruststore File Not Described in the Application Server Documentation (ID 6315957)

If this file does not exist in the server administrator's home directory, you might experience serious bugs when upgrading certain applications hosted on the server.

Solution

Domain Fails to Start When create-domain Master Password Has Special Characters (ID 6345947)

The domain does not start when the domain's master password contains the percent (%) character.

Solution

The domain's master password should not contain a percent character (%). This solution applies when creating a new domain or changing the master password for an existing domain.

Load Balancer Configuration Changes in magnus.conf and obj.conf Are Overwritten (ID 6394181)

After you have created a secure http-listener and installed lbplugin, the magnus.conf and obj.conf files under the webserver_instance_dir/config directory are modifiedand the lbplugin contents are being removed.

The installer modifies the magnus.conf and obj.conf configuration files on the Application Server as part of the installation of the load balancer plug-in. If you log in to the Application Server admin console and try to manage the instance configuration for the instance on which the load balancer has been installed, the Application Server issues a warning message stating that it has detected a manual edit in the configuration. This warning is in fact referring to the changes made by the installer.

Solution

Verify that the changes made by the installer have not been overwritten.

Application Client

This section describes known application client issues and associated solutions.

Library JAR Packaged in Application Client Archive Overwrites MANIFEST File (ID 6193556)

If you have a top-level JAR file inside your client JAR (in this case, reporter.jar), when you deploy the client JAR, the MANIFEST file for that JAR overwrites the MANIFEST file for the client JAR.

Solution

None.

Dynamic Content Technology Such as CGI-bin and SHTML Functionality Not Supported (ID 6373043)

Dynamic content technologies, such as CGI-bin and SHTML, are no longer supported.

Solution

Use JSP and Web service technologies instead.

Bundled Sun JDBC Drivers

This section describes known bundled Sun JDBC driver issues and associated solutions.

Applications Using the TRANSACTION_SERIALIZABLE Isolation Level With the Bundled Sun Driver For Microsoft SQL Server Hangs(ID 6165970)

You could experience this problem if you are using a prepared update statement while two parallel transactions are running and one of them is rolled back.

Solution

Set a isolation level for a connection, create the corresponding connection pool at the same isolation level. For more information about configuring connection pools, see the Sun Java System Application Server Enterprise Edition 8.2 Administration Guide.

PreparedStatement Errors (ID 6170432)

Description 1

If an application generates more than 3000 PreparedStatement objects in one transaction, the following error might occur with DB2:

[sunm][DB2 JDBC Driver] No more available statements.Please recreate your package with a larger dynamicSections value.

Solution 1

Add following properties to the connection pool definition to ensure that the driver rebinds DB2 packages with a larger dynamic sections value:

createDefaultPackage=true replacePackage=true dynamicSections=1000

See the Sun Java System Application Server Enterprise Edition 8.2 Administration Guide for details about configuring connection pools.

Description 2

Related to the PreparedStatement error , another error message that might be thrown:

[sunm][DB2 JDBC Driver][DB2]Virtual storage or database resource is not available.

Solution 2

Increase the DB2 server configuration parameter APPLHEAPSZ. For example, use 4096.

Description 3

Isolation level TRANSACTION_SERIALIZABLE. If your application uses isolation level TRANSACTION_SERIALIZABLE and uses one of the parameters suggested previously, it might hang while obtaining a connection.

Solution 3

To set an isolation level for a connection, the corresponding connection pool has to be created at that isolation level. See the Sun Java System Application Server Enterprise Edition 8.2 Administration Guide for instructions.

Connectors

This section describes known J2EE connector architecture issues and associated solutions.

After Restarting a DAS Instance, Undeploying he Connector Module Fails When Cascade is Set to False (ID 6188343)

In this scenario, a standalone or embedded connector module is deployed in DAS and connector connection pools, and resources are created for the deployed module. After restarting the DAS instance, undeploying the connector module fails when cascade is set to false with the following exception:

[#|2004-10-31T19:52:23.049-0800|INFO|sun-appserver-ee8.1|javax.enterprise.system .core|_ThreadID=14;|CORE5023: Error while unloading application [foo]|#]

Solution

Restart the DAS instance. Use cascaded undeploy (set the cascade option to true) for undeploying standalone and embedded connectors..

JMS create-jms-resource: CLI Sets the Default Values Incorrectly (ID 6294018)

Because you cannot specify the minimum pool size and maximum pool size when creating a new JMS resource from the command line with the asadmin create-jms-resource command, the asadmin command should create the resource by using the default pool size values (minimum 8, maximum 32). Instead, creating the resource from the command line results in default minimum and maximum pool sizes of 1 and 250, respectively.

Solution

After creating a JMS resource from the command line, use the admin console to modify the minimum and maximum pool size values.

Documentation

This section describes known documentation issues and associated solutions.

Javadoc Inconsistencies

The Javadoc for several AMX interfaces and methods is either missing or incorrect:

Bundled ANT Throws java.lang.NoClassDefFoundError Exception (ID 6265624)

The following exception is thrown in thread "main" java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/Launcher.

Solution

Using the bundled ANT for performing the tasks outside the Application Server is not recommended.

Logging Options Documentation Incorrect (ID 6463965)

The Sun Java System Application Server Enterprise Edition 8.2 Performance Tuning Guide incorrectly states the following about Log Options:

The Administration GUI provides the following two logging options:

  • Option 1 – Log stdout (System.out.print) content to the event log

  • Option 2 – Log stderr (System.err.print) content to the event log

These log options no longer exist in Application Server Enterprise Edition 8.2.

Conflicting Information About HTTP File Cache Feature in Application Server 8.2 (ID 6474799)

The Application Server Enterprise Edition 8.2 documentation discusses an HTTP file caching feature, in HTTP File Cache in Sun Java System Application Server Enterprise Edition 8.2 Performance Tuning Guide. However, this feature was not included in Application Server Enterprise Edition 8.2. Note that this feature has been reintroduced in Application Server 9.0.

High Availability

This section describes known high-availability database (HADB) issues and associated solutions.

hadbm set Does Not Check Resource Availability (Disk and Memory Space) (ID 5091280)

When you increase the device or buffer sizes by using hadbm set, the management system checks resource availability when creating databases or adding nodes. However, the system does not check if sufficient resources are available when device or main-memory buffer sizes are changed.

Solution

Verify that enough free disk or memory space is available on all hosts before increasing any of the devicesize or buffersize configuration attributes.

Heterogeneous Paths for packagepath Not Supported (ID 5091349)

You cannot register the same software package with the same name with different locations at different hosts. For example:


hadbm registerpackage test --packagepath=/var/install1 --hosts europa11
Package successfully registered.
hadbm registerpackage test --packagepath=/var/install2 --hosts europa12
hadbm:Error 22171: A software package has already been registered with 
the package name test.

Solution

HADB does not support heterogeneous paths across nodes in a database cluster. Make sure that the HADB server installation directory (--packagepath) is the same across all participating hosts.

createdomain Might Fail (IDs 6173886, 6253132)

If running the management agent on a host with multiple network interfaces, the createdomain command might fail if not all network interfaces are on the same subnet:


hadbm:Error 22020: The management agents could not establish a 
domain, please check that the hosts can communicate with UDP multicast.

If not configured, the management agents will (use the "first" interface for UDP multicasts. "First" is defined by the result from java.net.NetworkInterface.getNetworkInterfaces().

Solution

The best solution is to tell the management agent which subnet to use (set ma.server.mainternal.interfaces in the configuration file. For example, ma.server.mainternal.interfaces=10.11.100.0). Alternatively you might configure the router between the subnets to route multicast packets (the management agent uses multicast address 228.8.8.8).

Before retrying with a new configuration of the management agents, you might have to clean up the management agent repository. Stop all agents in the domain, and delete all files and directories in the repository directory, identified by repository.dr.path in the management agent configuration file. This cleanup must be performed on all hosts before restarting the agents with a new configuration file.

Directories Must Be Cleaned Up After Deleting an HADB Instance (ID 6190878)

After deleting an HADB instance, subsequent attempts to create new instances with the configure-ha-cluster command fail. The problem is that old directories are left from the original HADB instance in ha_install_dir/rep/* and ha_install_dir/config/hadb/instance_name.

Solution

Be sure to manually delete these directories after deleting an HADB instance.

clu_trans_srv Cannot Be Interrupted (ID 6249685)

A bug in the 64-bit version of Red Hat Enterprise Linux 3.0 forces the clu_trans_srv process into an uninterruptible mode when performing asynchronous I/O. This means that kill -9 command does not work and the operating system must be rebooted.

Solution

Use a 32-bit version of Red Hat Enterprise Linux 3.0.

hadbm Does Not Support Passwords Containing Capital Letters (ID 6262824)

Capital letters in passwords are converted to lowercase when the password is stored in hadb.

Solution

Do not use passwords containing capital letters.

hadbm/ma Produces Faulty Error Message When a Session Object Times Out and Deletes at Management Agent (ID 6275103)

Sometimes a resource contention problem on the server may cause a management client to become disconnected. When reconnecting, the following misleading error message "hadbm:Error 22184: A password is required to connect to the management agent" might be returned.

Solution

Check if a resource problem has occurred on the server, take proper action (for example, , add more resources), and retry the operation.

The Management Agent Should Not Use Special-Use Interfaces. (ID 6293912)

Special-use interfaces with IP addresses like 0.0.0.0 should not be registered as valid interfaces to be used for HADB nodes in the Management Agent. Registering such interfaces can cause problems if HADB nodes are set up on these interfaces by means of a user issuing a hadbm create command that uses host names instead of IP addresses. The nodes will then be unable to communicate, causing the create command to hang.

Solution

When using hadbm create on hosts with multiple interfaces, always specify the IP addresses explicitly by using DDN notation.

Reassembly Failures on Windows (ID 6291562)

On the Windows platform, with certain configurations and loads, a large number of reassembly failures might occur in the operating system. The problem has been seen with configurations of more than 20 nodes when running several table scans (select *) in parallel. Possible symptoms include transactions aborting frequently, repair or recovery taking a long time to complete, and frequent timeouts occurring in various parts of the system.

Solution

To fix the problem, the Windows registry variable HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters can be set to a value higher than the default 100. For best results, increase this value to 0x1000 (4096). For more information, see article 811003 from the Microsoft support pages.

When Running hadbm start db_name, Part of Typed Password Displayed Without Being Masked (IDs 6303581, 6346059, 6307497)

When a machine is overloaded, the masking mechanism fails and some characters from the typed password can be exposed. This exposition poses a minor security risk. The password should always be masked.

Solution

Put the passwords in their own password files (the method recommended since Application Server 8.1) and refer to these files with either the --adminpassword or --dbpasswordfile options.

Installation

This section describes known installation issues and associated solutions.

Java Enterprise System 5 Installer for Minimal Application Server 8.x Load Balancer Does Not Install Properly (ID 6478047)

Apache and IIS cannot be configured through Java ES 5 Installer. You need to manually configure Apache and IIS on the Windows platform.

Solution

To configure Load Balancer Apache or IIS, follow these steps.

    To Configure Apache 2.x:

  1. Install Apache 2.x.

    Apache is installed in the APDIR=C:\Apache2\Apache2 directory

  2. Install JES5 with minimal installation.

    Deselect all components but loadbalancer. Java ES 5 is installed in the JES5DIR=C:\Program Files\Sun\JavaES5 directory.

    The

  3. Create the resource and errorpages directories in the Apache2 directory.

    mkdir %APDIR%\modules\resource

    mkdir %APDIR%\modules\errorpages

  4. Copy the resource file to the resource directory.

    cd %APDIR%\modules\resource

    copy %JES5DIR%\appserver\lib\webserver-plugin\windows\apache2\LBPlugin*.res .

  5. Copy the load balancer DLL to the modules directory.

    cd %APDIR%\modules

    copy %JES5DIR%\appserver\lib\webserver-plugin\windows\apache2\mod_loadbalancer.dll .

  6. Copy the template errorpages to the errorpages directory.

    cd %APDIR%\modules\errprpages

    copy %JES5DIR%appserver\lib\webserver-plugin\windows\iws\errorpages .

  7. Copy the loadbalancer template and the other DTD to the Apache config directory.

    cd %APDIR%\config

    copy %JES5DIR%\appserver\lib\install\templates\loadbalancer.xml.template .

    copy %JES5DIR%\appserver\lib\dtds\sun-loadbalancer* .

  8. Create a backup of the httpd.conf file.

    cd %APDIR%\config

    copy httpd.conf httpd.conf.orig

  9. Edit the httpd.conf file.

    Append the following lines to the httpd.conf file:

    ##BEGIN EE LB Plugin Parameters
    LoadModule apachelbplugin_module modules/mod_loadbalancer.dll
    <IfModule mod_apache2lbplugin.cpp>
    		config-file "C:\Apache2\Apache2/conf/loadbalancer.xml"
    		locale en
    </IfModule>
    <VirtualHost 10.12.8.107>
    DocumentRoot "C:\Apache2\Apache2/htdocs"
    ServerName vm07
    </VirtualHost>
    ##END EE LB Plugin Parameters
  10. Replace C:\Apache2\Apache2 with the actual %APDIR% directory.

    Also replace the IP, ServerName, and DocumentRoot directory.

  11. Create a new sec_db_filesdirectory in the %APDIR%.

    cd %APDIR%

    mkdir sec_db_files

  12. Copy NSS key store to the %APDIR%\sec_db_files directory.

    cd %APDIR%\sec_db_files

    copy %JES5DIR%\appserver\lib\webserver-plugin\windows\iis\*.db .

  13. Set the PATH to include the required libraries.

    Prepend the following extra path:

    PATH %JES5DIR%\share\lib;%JES5DIR%\appserver\lib;%JES5DIR%\appserver\bin

  14. Replace %JES5DIR% with the actual Java ES 5 directory.

  15. Add the NSPR_NATIVE_THREADS_ONLY variable with value 1 in the system environment.

  16. Reboot and test Apache 2 (after configuring loadbalancer.xml).

    To configure IIS LBPlugin:

  1. Create the sun-passthrough directory in the c:\inetpub\wwwroot directory.

    cd c:\inetpub\wwwroot

    mkdir sun-passthrough

  2. Createerrorpages, resource and sec_db_files directories in the c:\inetpub\wwwroot\sun-passthrough directory.

    cd c:\inetpub\wwwroot\sun-passthrough

    mkdir errorpages

    mkdir resources

    mkdir sec_db_files

  3. Copy DLL files to the sun-passthrough directory.

    copy <as_install_dir>/appserver/lib/webserver-plugin/iis/*.dll c:\inetpub\wwwroot\sun-passthrough\

  4. Copy DTDs to the sun-passthrough directory.

    copy <as_install_dir>/appserver/lib/dtds/sun-loadbalancer*.dtd c:\inetpub\wwwroot\sun-passthrough\

  5. Copy the sun-passthrough.properties fileto the sun-passthrough directory.

    copy <as_install_dir>/appserver/lib/webserver-plugin/iis c:\inetpub\wwwroot\sun-passthrough\

  6. Copy security DB files to the sun-passthrough directory.

    copy <as_install_dir>/appserver/lib/webserver-plugin/iis/*.db c:\inetpub\wwwroot\sun-passthrough\sec_db_files\

  7. Copy resource files to the sun-passthrough directory.

    copy <as_install_dir>/appserver/lib/webserver-plugin/iws/*.res c:\inetpub\wwwroot\sun-passthrough\resource\

  8. Copy error pages to the sun-passthrough directory.

    copy <as_install_dir>/appserver/lib/webserver-plugin/iws/errorpages/*.html c:\inetpub\wwwroot\sun-passthrough\errorpages\

  9. Copy the loadbalancer.xml.example template to the sun-passthrough directory.

    copy <as_install_dir>/appserver/lib/install/templates/loadbalancer.xml.example c:\inetpub\wwwroot\sun-passthrough\

  10. Edit the sun-passthrough.properties file.

    ##BEGIN EE LB Plugin Parameters
    log-file = C:\InetPub\wwwroot\sun-passthrough\lb.log
    ### The valid options for different logging levels are FATAL, SEVERE, WARNING, INFO and FINE.
    log-level = INFO
    lb-config-file = C:\InetPub\wwwroot\sun-passthrough\loadbalancer.xml
    ##END EE LB Plugin Parameters

Note –

If you are configuring IIS6, ensure that you set the permissions and perform additional steps as described in the AS82 documentation. You might also need to set the IIS6 isolation mode to IIS5 compatible.


imq Directory Needs to Be Created During Installation. (ID 6199697)

On the Windows platform, immediately after the installation of Application Server Enterprise Edition, the Message Queue broker fails on startup. A error message is displayed stating that the directory drive:\as\domains\domain1\imq does not exist.

Note that if the broker is started after starting domain1, the directory is created by the Application Server and the problem does not occur.

Solution

  1. Create the var_home_dir_location before creating the broker:


    $imqbrokerd -varhome var_home_dir_location
    

    For example:


    $imqbrokerd -varhome D:\as\domains\domain1\imq

J2EE Tutorial

To run the J2EE 1.4 Tutorial on the Sun Java System Application Server Enterprise Edition 8.2, perform these tasks:

Lifecycle Management

This section describes known lifecycle management issues and associated solutions.

Changing the ejb-timer-service Property Generates an Error (ID 6193449)

After setting the ejb-timer-service property minimum-delivery-interval to 9000, an attempt to set the ejb-timer-service property redelivery-interval-in-mills to 7000 causes the set command to fail. The following error message is displayed:

[echo] Doing admin task set
[exec] [Attribute(id=redelivery-interval-internal-in-millis) : Redelivery-
Interval (7,000) should be greater than or equal to Minimum-delivery-
interval-in-millis (9,000)]
[exec] CLI137 Command set failed.

Solution

Use the default values for these properties, as follows:

minimum-delivery-interval(default)=7000
redelivery-interval-in-millis(default)=5000

Values other than these defaults will generate an error.

Logging

This section describes known logging issues and solutions.

Setting Debug Statement for access.failure Causes Hanging in Application Server Startup (ID 6180095)

Setting the java.security.debug option for the JVM will cause the server instance startup to freeze with a deadlock; for example, setting the following in domain.xml causes the problem:

<jvm-options\>-Djava.security.debug=access,failure</jvm-options\>

Solution

None. Avoid setting this flag.

Logging Location and Instance Location Have Changed for Java ES3 Application Server (ID 6189409)

Default logging and server instance locations have changed in Sun Java System 8.2 compared to 7 version and compatible versions.

For more information, refer to the Sun Java System Application Server Enterprise Edition 8.2 Administration Guide or the Sun Java System Application Server Enterprise Edition 8.2 Upgrade and Migration Guide.

Message Queue

This section describes known Java message queue issues and associated solutions.

JMS Reconnection Not Successfully Completed in Timing-Dependent Cases(IDs 6173308, 6189645, 6198481, 6199510, 6208728)

Failures to reconnect in timing-dependent scenarios can be caused by several problems.

Solution

You can work around these problems by:

Asynchronous Message Listener Behavior Changed in appclient From 8.0 to 8.1 Update 2 (ID 6198465)

Due to a recent change, when an asynchronous message listener is the only live thread in the app-client container, the remaining appclient virtual machine exists as a daemon. This behavior is a regression for older applications that perform asynchronous receives in ACC. This problem affects application clients that set a JMS message listener and exit the main thread.

Solution

Do not exit the main thread. Wait for the message listener to notify the main thread before terminating the main thread.

Monitoring

This section describes known monitoring issues and associated solutions.

Monitoring Framework Integration With Application Server (6469302)

In Application Server beta release, monitoring framework is not supported by default.

Solution

    To integrate Monitoring Framework with Application Server, follow these steps:

  1. Edit the <Install_dir>\appserver\lib\install\templates\ee\com.sun.cmm.as.xml file.

    Update ${InstalledDate} with Application Server installation location and ${InstalledDate} with current date.

  2. Copy the <Install_dir>\appserver\lib\install\templates\ee\com.sun.cmm.as.xml file to <Install_dir>\appserver\lib.

  3. Execute the <MFWK_Install_location>\bin\mfwksetup.bat -r <Install_dir>\appserver\lib\com.sun.cmm.as.xml command.


Note –

${InstalledLocation} value is the Application Server installation location, c:\Sun\JavaES5\appserver. For $InstalledDate you need to put time in milliseconds by calculating the current time in millisecond from 1970.


Samples

This section describes known and associated solutions related to the sample code included with the Application Server 8.2 product.

setup-one-machine-cluster Hangs (ID 6195092)

On the Windows platform, the mqfailover command requires pressing Control+C keys to exit the hung process. You must rerun the setup-one-machine-cluster process.

From install_dir\samples\ee-samples\failover\apps\mqfailover\docs\index.html, run the following commands:

If you have already executed asant setup-one-machine-cluster-without-ha or asant setup-one-machine-cluster-with-ha for any other Enterprise Edition sample, execute asant configure-mq. Otherwise, execute asant setup-one-machine-cluster-and-configure-mq. In this case, the command appears to succeed:


start_nodeagent: [echo] Start the node agent cluster1-nodeagent 
[exec] Command start-node-agent executed successfully.

But then the system hangs indefinitely.

Solution

None. This problem similarly affects all Enterprise Edition samples that use this ant target on Windows. A workaround is to press Control+C to exit the hung process and then rerun it.

Documentation Not Explicitly States the Need to Create JMS Resources Before Running the Message Queue Failover Sample Application (ID 6198003)

After you complete the asadmin deploy instructions and run the Message Queue failover sample application, the following error message is dilsplayed:


/opt/SUNWappserver/domains/domain1/config/sun-acc.xml -name 
MQFailoverTestClient -textauth -user j2ee -password j2ee
Nov 18, 2004 10:50:17 PM com.sun.enterprise.naming.NamingManagerImpl 
bindObjects
SEVERE: NAM0006: JMS Destination object not found: jms/durable/TopicA
Nov 18, 2004 10:50:18 PM com.sun.enterprise.naming.NamingManagerImpl 
bindObjects
SEVERE: javax.naming.NameNotFoundException
javax.naming.NameNotFoundException

The documentation does not explicitly state that JMS resources must be manually created if manual deployment is performed by using the asadmin deploy commands. The documentation also fails to mention that that the provided ant targets should be used to deploy the sample application .

Solution

Use the asant deploy target for the build.xml script, which creates the required JMS resources to run the application.

Security

This section describes known issues and associated solutions related to Application Server and web application security and certificates.

Cannot Run WebServiceSecurity Applications on Enterprise Edition With J2SE 5.0 (ID 6183318)

WebServiceSecurity applications cannot run with J2SE 5.0 for the following reasons:

Solution

Use J2SE 1.4.2 with any other JCE provider (not the one included by default). Note that hardware accelerator support will not be present in this configuration.

SSL Termination Not Working (ID 6269102)

When Load Balancer (Hardware) is configured for SSL termination, the Application Server changes the protocol from https to http during redirection.

Solution

Add a software load balancer between the hardware load balancer and the Application Server.

Upgrade Utility

This section describes known upgrade utility issues and associated solutions.

Derby Database Used by Samples Script Created in Wrong Location (ID 6377804)

There are two aspects to this bug:

  1. When sample application setup scripts that use the Derby database are run, the Derby database is created in the current directory or in the <install_root>/bin.

  2. The sample build Ant script creates a password.txt file that stores the admin password file in the current directory, which will not be writable in nonroot and sparse zones scenarios.

Solution

  1. Derby database location – Use the --dbhome option with the start-database command to create the database at the value specified for --dbhome. For example, the following is the asadmin command syntax for start-database.


    start-database [--dbhost 0.0.0.0] [--dbport 1527] [--dbhome db_directory] [--echo=false] 
    [--verbose=false]
  2. Location of the password.txt file – By design, the samples directory is expected to be writable because all the build commands include the creation of a password.txt file in that directory. Be sure to install a working copy of the samples in a writable location.

Failure to Invalidate Semicolon (;) Character in Admin User Name or Password (ID 6473341)

The Application Server Enterprise Edition 8.2 installation does not allow special characters in the admin user name. Domain creation fails if any special characters are used. Note, however, that the admin password can have special characters.

Solution

When upgrading from Application Server 7 to Application Server 8.2, verify that the admin user name does not contain any special characters.

Web Container

This section describes known web container issues and associated solutions.

No Support For Apache and IIS for Load Balancer Plug-in

Sun Java ES 5 Application Server does not support Apache and IIS (non-Sun web container) for load balancer plug-in. Sun Java ES installs Sun Java System Web Server for load balancer plug-in configuration.

Deployment of Application Using --precompilejsp=true Can Lock JAR Files (ID 5004315)

On Windows platform, if you request precompilation of JSPs when you deploy an application on Windows, later attempts to undeploy that application or to redeploy it (or any application with the same module ID) will not work as expected. JSP precompilation opens JAR files in your application but does not close them, and Windows prevents the undeployment from deleting those files or the redeployment from overwriting them.

Note that undeployment succeeds to a point, in that the application is logically removed from the Application Server. Also note that no error message is returned by the asadmin utility, but the application's directory and the locked jar files remain on the server. The server's log file will contain messages describing the failure to delete the files and the application's directory.

Attempts to redeploy the application after undeploying fail because the server tries to remove the existing files and directory, and these attempts also fail. This scenario can happen if you try to deploy any application that uses the same module ID as the originally deployed application, because the server uses the module ID in choosing a directory name to hold the application's files.

Attempts to redeploy the application without undeploying it first will fail for the same reasons.

Diagnostics

If you attempt to redeploy the application or deploy it after undeploying it, the asadmin utility returns an error similar to the following:


An exception occurred while running the command. The exception 
message is: CLI171 Command deploy failed : Deploying application in 
domain failed; Cannot deploy. Module directory is locked and can't 
be deleted.

Solution

If you specify --precompilejsps=false (the default setting) when you deploy an application, this problem does not occur. Be aware that the first use of the application triggers the JSP compilation, so the response time to the first request is longer than for later requests.

Note also that if you do precompile, you should stop and restart the server before undeploying or redeploying the application. The shutdown frees the locked JAR files so the undeployment or redeployment after the restart can succeed.

Unable to Deploy WAR with Servlet 2.4-Based web.xml That Contains Empty <load-on-startup> Element (ID 6172006)

The optional load-on-startup servlet element in a web.xml file indicates that the associated servlet is to be loaded and initialized as part of the startup of the web application that declares it.

The optional content of this element is an integer indicating the order in which the servlet is to be loaded and initialized with respect to the web application's other servlets. An empty <load-on-startup> element indicates that the order is irrelevant, as long as the servlet is loaded and initialized during the startup of its containing web application.

The Servlet 2.4 schema for web.xml no longer supports an empty <load-on-startup>, meaning that an integer must be specified when using a Servlet 2.4 based web.xml file. If specifying an empty <load-on-startup>, as in <load-on-startup/>, the web.xml file fails validation against the Servlet 2.4 schema for web.xml, causing deployment of the web application to fail.

Backward compatibility issue. Specifying an empty <load-on-startup> still works with Servlet 2.3 based web.xml.

Solution

Specify <load-on-startup>0</load-on-startup> when using a Servlet 2.4 based web.xml to indicate that servlet load order does not matter.

Unable to Compile JSP Page on Resource-Constrained Servers. (ID 6184122)

The JSP page is accessed but fails to compile, and the server log contains the error message “Unable to execute command” with the following stack trace:


at org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.
exec(Execute.java:655) at org.apache.tools.ant.taskdefs.Execute.
launch(Execute.java:416) 
at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:427) 
at org.apache.tools.ant.taskdefs.compilers.DefaultCompilerAdapter.
executeExternalCompile(DefaultCompilerAdapter.java:448) 
at org.apache.tools.ant.taskdefs.compilers.JavacExternal.execute
(JavacExternal.java:81) 
at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:842) 
at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:682) 
at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:396)

Solution

Set the JSP compilation switch "fork" to "false."

You can activate this setting in either of two ways:

Either setting prevents Ant from spawning a new process for javac compilation.

Application Server Does Not Support auth-passthrough Web Server 6.1 Add-On (ID 6188932)

The Sun Java System Application Server Enterprise Edition 8.2 adds support for the functionality provided by the auth-passthrough plug-in function available with Sun Java System Application Server Enterprise Edition 7.1. However, in Application Server Enterprise Edition 8.2, the auth-passthrough plug-in feature is configured differently.

The auth-passthrough plug-in function in Application Server Enterprise Edition 7.1 has been useful in two-tier deployment scenarios, with the following constraints:

In such network architectures, a client connects to a front-end web server, which has been configured with the service-passthrough plugin function and forwards HTTP requests to the proxied Application Server instance for processing. The Application Server instance can receive requests only from the web server proxy, but never directly from any client hosts. As a result, any applications deployed on the proxied Application Server instance that query for client information, such as the client's IP address, will receive the proxy host IP, as that is the actual originating host of the relayed request.

In Application Server Enterprise Edition 7.1, the auth-passthrough plug-in function could be configured on the proxied Application Server instance in order to make the remote client's information directly available to any applications deployed on it; as if the proxied Application Server instance had received the request directly, instead of via an intermediate web server running the service-passthrough plug-in.

In Application Server Enterprise Edition 8.2, the auth-passthrough feature may be enabled by setting the authPassthroughEnabled property of the <http-service> element in domain.xml to TRUE, as follows:


<property name="authPassthroughEnabled" value="true"/>

The same security considerations of the auth-passthrough plug-in function in Application Server Enterprise Edition 7.1 also apply to the authPassthroughEnabled property in Application Server Enterprise Edition 8.2. Since authPassthroughEnabled enables the overriding of information that may be used for authentication purposes (such as the IP address from which the request originated, or the SSL client certificate). Therefore, only trusted clients or servers should be allowed to connect to an Application Server Enterprise Edition 8.2 instance with authPassthroughEnabled set to TRUE. As a precautionary measure, configure only servers behind the corporate firewall with authPassthroughEnabled set to TRUE. A server that is accessible through the Internet must never be configured with authPassthroughEnabled set to TRUE.

Notice that in the scenario where a proxy web server has been configured with the service-passthrough plug-in and forwards requests to an Application Server 8.1 Update 2 instance with authPassthroughEnabled set to TRUE, SSL client authentication can be enabled on the web server proxy, and disabled on the proxied Application Server 8.1 Update 2 instance. In this case, the proxied Application Server 8.1 Update 2 instance still treats the request as though it was authenticated through SSL, and provide the client's SSL certificate to any deployed applications requesting it.

HTTP Listener Created With --enabled=false DoesNot Disable the Listener (ID 6190900)

When an httplistener is created with the --enabled=false flag, the listener does not become disabled. The flag --enabled does not have any effect when used at the same time the listener is created.

Solution

Create the listener in an enabled state, then disable it manually later.