1 Oracle GlassFish Server 3.1.2 and Release Notes

GlassFish Server provides a lightweight, modular server for the development of Java Platform Enterprise Edition (Java EE) 6 applications and Java Web Services. It delivers enterprise performance, scalability, and reliability.

For production deployments, consider Oracle GlassFish Server with Oracle Premier Support for Software (). Premier Support helps lower the total cost and risk of owning your Oracle solutions, improve the return from your IT investment, and optimize the business value of your IT solutions. Benefits of Premier Support include product updates and enhancements, global reach, lifetime support, ecosystem support, and proactive, automated support.

These Release Notes provide late-breaking information about GlassFish Server 3.1.2 and software and documentation. These Release Notes include summaries of supported hardware, operating environments, and JDK and JDBC/RDBMS requirements. Also included are a summary of new product features in the 3.1.2 and releases, and descriptions and workarounds for known issues and limitations.

Refer to this document prior to installing, configuring, or using GlassFish Server 3.1.2 or software. Consult this document periodically to view the most up-to-date product information.

Revision History

This section lists the revision history for these Release Notes.

Table 1-1 Revision History

Date Description of Changes

February 2012

Initial release of Oracle GlassFish Server 3.1.2.

April 2012

Issue 18645 added for Patch 1.

July 2012

Information about release added.

July 2012

Information about the increase to the maximum allowed value for the --multicastport option added.

October 2012

Information about fixed issues and documentation updates for Patch 3 added.

January 2013

Information about fixed issues and documentation updates for Patch 4 added.

October 2013

Information about fixed issues and documentation updates for Patch 7 added.

January 2014

Information about fixed issues and documentation updates for Patch 8 added.

January 2015

Information about fixed issues and documentation updates for Patch 10 added.

April 2015

Information about fixed issues and documentation updates for Patch 11 added.

What's New in the GlassFish Server Release?

GlassFish Server is a microrelease that addresses feedback from the GlassFish community to improve the developer experience by resolving the following critical issues:

What's New in the GlassFish Server 3.1.2 Release?

The GlassFish Server 3.1.2 update release includes bug fixes and the following new features:

Environment and Component Changes

The GlassFish Server 3.1.2 release includes the following updates:

Table 1-2 GlassFish Server 3.1.2 Environment and Component Changes

New Feature Area New Features

Operating Systems

Solaris 11

Java Virtual Machines

JRockit R28.2.2, Oracle JDK7 U3, Oracle JDK6 U31

Java Development Kit

SDK bundles with JDK7 U3, SDK bundles with JDK6 U31

non-Oracle Database

Java DB


IE 9, Firefox 8, Firefox 9, Safari 5.x, Chrome 15.x

Integrated Development Environments

NetBeans 7.1.1, Eclipse 3.7.1

Updated Libraries

Weld, JSF, EclipseLink, Metro, Jersey, HK2, Grizzly, Shoal, Update Center, GlassFish Server Message Queue, JSP, JSTL, Hibernate Validator, Apache Felix, JavaDB

HTTP session persistence

Support for Coherence*Web 3.7.1; see Using Coherence*Web with GlassFish Server

Java API for XML Binding (JAXB)

Support for MOXy with EclipseLink 2.3.2

Java Persistence API (JPA)

Support for Toplink Grid with Coherence 3.7.1

Administration Console Enhancements

The Administration Console has added features to bring it more into alignment with the capabilities of the asadmin command-line administration utility, including:

  • Configuring a supported Message Queue broker cluster when creating a GlassFish Server cluster

  • Enabling and disabling secure administration

  • Administering Loadbalancer Plug-in configurations

  • Viewing and monitoring application-scoped resources

  • Configuring advanced properties of JDBC connections

  • Administering Loadbalancer Plug-in configurations (Oracle GlassFish Server only)

Simplified Set Up of Windows Systems for Centralized Administration of Remote Instances

To simplify the set up of Windows systems to enable centralized administration of remote instances, GlassFish Server now supports the Distributed Component Object Model (DCOM) remote protocol.

Previous releases of GlassFish Server supported the secure shell (SSH) to enable centralized administration of remote instances on Windows systems. However, because SSH is not native to the Windows operating system, considerable setup is required to install and configure an SSH provider. DCOM provides an alternative on Windows systems to SSH for communications between hosts in a GlassFish Server cluster.

For more information, see "Enabling Centralized Administration of GlassFish Server Instances" in Oracle GlassFish Server High Availability Administration Guide.

mod_proxy_ajp Support

GlassFish Server now supports Apache HTTP Server as a front end using the Apache Connector mod_proxy_ajp. For more information, see "Administering mod_proxy_ajp" in Oracle GlassFish Server Administration Guide.

GMS Without Multicast Support

GlassFish Server now supports the use of the Group Management Service (GMS) in networks in which multicast transport is unavailable. In previous releases of GlassFish Server, the use of GMS required multicast transport to be available. For more information, see "Group Management Service" in Oracle GlassFish Server High Availability Administration Guide.

TopLink and MOXy Support

Oracle TopLink is the default persistence provider in Oracle GlassFish Server. TopLink includes all of EclipseLink, from the Eclipse Foundation. EclipseLink is the default persistence provider in GlassFish Server Open Source Edition. EclipseLink implements the following specifications, plus value-added extensions:

  • Java Persistence Architecture (JPA) 2.0. For details about JPA support in GlassFish Server, see "Configuring the Java Persistence Provider" in Oracle GlassFish Server Application Development Guide.

  • Java Architecture for XML Binding (JAXB) 2.0. The EclipseLink JAXB implementation, plus EclipseLink extensions, is called MOXy. The org.eclipse.persistence.moxy.jar file is bundled with GlassFish Server. For more information about MOXy support in GlassFish Server, see "The Databinding Provider" in Oracle GlassFish Server Application Development Guide.

  • EclipseLink utilities are not included but can be used with GlassFish Server. Download the EclipseLink zip file at and unzip it.

In addition to all of EclipseLink, Oracle TopLink includes TopLink Grid, an integration between TopLink and Oracle Coherence that allows TopLink to use Oracle Coherence as a level 2 (L2) cache and persistence layer for entities. The toplink-grid.jar file is bundled with Oracle GlassFish Server.


You must have a license for Oracle Coherence to be able to use TopLink Grid.

Transaction Recovery from a Database

Recovering transactions from a database has been possible in previous releases. However, it has been more limited than recovering transactions from a file system. This release brings database recovery support up to parity with file system recovery support.

Transaction logging is designed to work with any JDBC-compliant database. Transaction logging has been tested with the Java DB and Oracle databases listed in the certification matrix. See Supported Platforms, JDK Versions, Browsers, mod_jk, and JDBC Drivers and Databases.

New Thread Pool Properties

New properties based on the ThreadPoolExecutor class () allow you to configure the EJB container's common thread pool. For more information, see the online help for the EJB container.

New Library Management Commands

New asadmin subcommands allow you to add one or more library archive files to GlassFish Server. You can add library files to the following directories:

  • Common class loader directory, domain-dir/lib

  • Java optional package directory, domain-dir/lib/ext

  • Application-specific class loader directory, domain-dir/lib/applibs

For more information, see the add-library(1), list-libraries(1), and remove-library(1) descriptions in the Oracle GlassFish Server Reference Manual.

Updated OSGi Module Management Subsystem

The OSGi module management subsystem in this release of GlassFish Server has been updated to version 4.3 of the Apache Felix OSGi framework. For more information about this subsystem, see "OSGi Module Management Subsystem" in Oracle GlassFish Server Administration Guide.

GlassFish Server Samples for NetBeans

NetBeans version 7.1.1 includes sample applications designed to work with GlassFish Server that demonstrate the following features:

  • Basic use of the GlassFish Server Embedded API

  • Use of the Embedded API CommandRunner

  • EJB unit testing using the Maven plugin

  • Application-scoped resources using the built-in Java DB database

For more information, see .

Hardware and Software Requirements

This section lists the requirements that must be met before installing GlassFish Server 3.1.2 software.

The following topics are addressed here:

Supported Platforms, JDK Versions, Browsers, mod_jk, and JDBC Drivers and Databases

Certification matrices containing complete information about supported operating environments, hardware, JDK versions, browsers, mod_jk, and JDBC drivers and databases for GlassFish Server are available in the following location:

GlassFish Server 3.1.2 Certification Matrix ()

Also be sure to see Paths and Environment Settings for the JDK Software for important JDK configuration instructions.


It is recommended that any machine that is hosting a GlassFish Server DAS or server instance have a minimum of 1 GB RAM. The GlassFish Server Performance Tuner should also be used on each of these machines to optimize the server configuration for the particular hardware. Refer to the Performance Tuner online help in the GlassFish Server Administration Console and the Oracle GlassFish Server Performance Tuning Guide for more information.

System Virtualization Support

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

For information about Oracle support for Oracle Java-based products in virtualized environments, see Supported Virtualization and Partitioning Technologies for Oracle Fusion Middleware (). In particular, refer to the section titled, "Oracle Branded Sun Product Releases Support."

Required Disk Space

The download sizes for GlassFish Server 3.1.2 vary depending on the package you choose. The following are the approximate sizes of the multilingual (ML) executable and ZIP packages for the Full and Web profiles:

  • Full, ML, *.sh: 62 MB

  • Web, ML, *.sh: 39 MB

  • Full, ML, *.exe: 62 MB

  • Web, ML, *.exe: 39 MB

  • Full, ML, *.zip: 99 MB (118 MB unzipped)

  • Web, ML, *.zip: 60 MB (75 MB unzipped)

The installation sizes will vary depending on your configuration, but the approximate amount of disk space used by a GlassFish Server 3.1.2 is as follows:

  • Full: 250 MB

  • Web: 150 MB

Required Free Ports

You must have seventeen unused ports available for the ports GlassFish Server uses. The installation program automatically detects ports that are in use and suggests currently unused ports for the default settings. The initial default port assignments are listed in the following table. If these default port numbers are in use, the installation program assigns a randomly selected port number from the dynamic port range. The selected port number might not be the next available port number.

Table 1-3 Default Port Assignments for GlassFish Server 3.1.2

Port Number Usage


Administration Console






Pure JMX clients






IIOP/SSL with mutual authentication


SSH port


Java debugger


OSGi shell telnet port


JMS provider

Auto-generated from the operating system's dynamic port range

Message Queue TCP port

Auto-generated from the operating system's dynamic port range

Message Queue Admin port


GMS TCP start port


GMS TCP end port

Auto-generated between GMS TCP start and end ports

GMS listener port

Auto generated between 2048 and 49151

GMS multicast port

In some situations, such as when multiple domains are running on a single host, port conflicts can arise in the auto-generated ports used by Message Queue and the GMS. To avoid these conflicts, you can configure the JMS host and the GMS to use specific ports.

To Configure Specific Ports for a JMS Host

When you create a JMS Host, GlassFish server automatically selects ports for the JMS provider (called the portmapper port in Message Queue terminology), the Message Queue TCP port and the Message Queue admin port.

To provide specific values for these ports, use the --mqport and --property options when creating the JMS host:

asadmin> create-jms-host --mqhost hostName --mqport portNumber \
--mquser adminUser --mqpassword adminPassword --target glassfishTarget \
--property imq\\.jms\\.tcp\\.port=tcpPort:imq\\.admin\\.tcp\\.port=adminPort \
--mqport portNumber

This option specifies the JMS provider port number.

--property imq\\.jms\\.tcp\\.port=tcpPort:imq\\.admin\\.tcp\\.port=adminPort

The imq.jms.tcp.port and imq.admin.tcp.port properties specify the TCP port and the admin port numbers. The double backslashes (\\) are used in the --properties option to escape the dots in the property names.

To Configure Specific GMS Ports for a Cluster

When you create a cluster, GlassFish server automatically selects a port for GMS multicast that does not conflict with the GMS multicast port of any other cluster in the domain. Additionally, when you start a cluster, the GMS automatically selects an available port in a specific range for its TCP listener.

If two or more domains are running on the same host, configure the clusters in the domains to ensure that no GMS port conflicts can arise among the clusters. To avoid possible port conflicts, use the --multicast and --properties options when creating the cluster:

asadmin> create-cluster --multicastport multicast-port \
--properties GMS_TCPSTARTPORT=start-port:GMS_TCPENDPORT=end-port \
--multicastport multicast-port

This option specifies the port number for the GMS to use for UDP multicast.

--properties GMS_TCPSTARTPORT=start-port:GMS_TCPENDPORT=end-port

The GMS_TCPSTARTPORT and GMS_TCPENDPORT properties specify the range of port numbers the GMS is to use when selecting an available port for its TCP listener.

Message Queue Broker Requirements

GlassFish Server 3.1.2 is now bundled with Message Queue (MQ) Broker 4.5 SP2. Refer to the Oracle GlassFish Server Message Queue Release Notes for complete information about MQ Broker requirements.

Important Patch Information

If you are using the Solaris 10 operating system, you must apply all relevant patches or patch clusters that are listed on the My Oracle Support () site.

Paths and Environment Settings for the JDK Software

Ensure that your JDK configuration settings on all local and remote GlassFish Server hosts adhere to the guidelines listed below. Failure to adhere to these guidelines can cause various problems that may be difficult to trace.

The following topics are addressed here:

Use the Correct Java Version

Ensure that the version of Java used on all local and remote GlassFish Server hosts meets the requirements specified in Supported Platforms, JDK Versions, Browsers, mod_jk, and JDBC Drivers and Databases.

Use the JDK Binaries

The following binary files that are used with GlassFish Server must come from the JDK software, not the Java Runtime Environment (JRE) software:

  • java

  • keytool

To meet this requirement, ensure that the bin directory for the JDK software precedes the bin directory for the JRE software in your path.

Set the JAVA_HOME Environment Variable

Before performing any GlassFish Server installation or configuration procedures, set the JAVA_HOME environment variable on the GlassFish Server host machine to point to the correct Java version. Also be sure to add the JAVA_HOME/bin directory to the PATH variable for your environment. The JAVA_HOME variable must be set on all local and remote GlassFish Server hosts.

Set Other Environment Variables As Necessary

All remote asadmin subcommands require the correct version of Java to be available on the affected remote machine. For example, when creating a cluster or server instance on a remote machine, the remote machine uses its local default Java installation, not the Java installation that is on the DAS. Errors will therefore occur if the remote machine uses the wrong Java version.

Depending on the remote subcommand, the errors may not occur when the subcommand is executed, but may occur later, when interacting with a configuration or resource created or modified by the subcommand. For example, when creating a clustered server instance on a remote machine, the error may only first appear when you attempt to deploy an application on that server instance.

This issue is more likely to be encountered when GlassFish Server is installed on the remote server by means of a ZIP file package rather than a self-extracting installer run in GUI mode. This is because the GUI installer gives you the option to specifically choose your Java version, whereas you do not have that option when simply unzipping a ZIP file.

Depending on what shell is invoked via SSH on the remote host, the JAVA_HOME and PATH environment variables may need to be explicitly set in .bashrc, .cshrc, or some other shell configuration file. This configuration file may differ from the one that is used when you log in to the machine, such as .profile.

Alternatively, you can specifically set the Java path with the AS_JAVA property in the in the as-install/config/asenv.conf file.

Known Issues in GlassFish Server 3.1.2

This section describes known issues and any available workarounds for Oracle GlassFish Server 3.1.2 software.

The following topics are addressed here:

restart-instance takes a long time on Solaris 11 (sun.security.pkcs11.SunPKCS11) (15537)


The asadmin restart-domain and restart-instance subcommands intermittently hang on Solaris 11 systems. This is cause by native Security SPI code in the JDK. This issue does not occur on operating systems other than Solaris 11.


None. This issue does not cause any problems other than the occasional long wait for the subcommand to complete.

For the complete report about this issue, see GLASSFISH-15537 ().

Accept multiple certs for admin authentication (16437)


If you enabled secure admin for a GlassFish Server 3.1 domain, the domain remains enabled for secure admin when you install GlassFish Server 3.1.2.

However, GlassFish Server 3.1.2 uses a stronger technique to make sure that servers in one domain do not accidentally communicate with servers in another domain.


Your updated GlassFish Server 3.1.2 domain does not use the improved domain isolation technique until you run the following command once:

asadmin> enable-secure-admin

You do not need to specify any other arguments with the command, even if you did so when you first enabled secure admin on your GlassFish Server 3.1 domain. GlassFish Server 3.1.2 automatically begins using the better algorithm from that point on.

For the complete report about this issue, see GLASSFISH-16437 ().

tcp-no-delay attribute in Http is not working (16902)


The tcp-no-delay attribute for HTTP type network listeners is not working properly. Setting this attribute as follows has no effect:

asadmin> set server-config.network-config.protocols.protocol.http-listener-1.http.tcp-no-delay=true


Set the tcpNoDelay property of the HTTP service instead, as follows:

asadmin> set server-config.http-service.property.tcpNoDelay=true

This enables tcpNoDelay for all network listeners.

For the complete report about this issue, see GLASSFISH-16902 ().

Invoking GF installer on AIX 6.1 with JDK6 64 bit gives Warning (16667)


When the GlassFish Server installer is invoked on the AIX 6.1 platform with the 64-bit version of JDK 6, the following warning is displayed on the screen:

Warning: Could not detect OS Architecture, falling back to os.arch [Architecture=ppc64]


None. This warning is harmless and can be ignored.

(JDK) NLS: Crashed when tried to install the bundle in ko locale (16699)


Installation of the Solaris x86 SDK bundle fails in the ko and zh_TW locales.


GlassFish Server users can install the ZIP distribution or temporarily switch to an unaffected locale. SDK users can install using the Update Center or temporarily switch to an unaffected locale.

PKG_CLIENT_READ_TIMEOUT is too small (16999)


Installation of the Update Center sometimes times out and fails.


If Update Center installation fails in the installer or when running pkg or updatetool from the command line, enter the following from the command line:

> set PKG_CLIENT_CONNECT_TIMEOUT=300> set PKG_CLIENT_READ_TIMEOUT=300> glassfish3\bin\updatetool

cannot remote deploy large wars (15773)


By default, when you enable secure admin, the GlassFish Server DAS does not use SSL client certificate authentication to verify the identify of administration clients (such as the asadmin utility, browsers, or IDEs). Instead, the administrative user typically provides a user name and password which authorize performance of administrative operations. To enable admin request SSL client certificate support in the DAS, set the following system property to true:


This issue applies only to administrative clients sending administration messages to the domain administration server (DAS). It does not apply to end-user clients sending messages to applications.

This does not disable user name and password authentication. It simply adds client SSL certificate-based authentication as another alternative the DAS can use.

If you perform the following steps, then GlassFish Server might report communication errors related to SSL:

  1. Enable secure admin for the domain.

  2. Enable admin request SSL client certificate support as just described.

  3. Use an administration client that is not configured to send an SSL client certificate for authentication.

  4. Upload a moderate or large file as part of deployment.

This can happen if the upload is in progress when the GlassFish Server DAS requests certificate information from the administration client. This happens only if the client was not configured to use an SSL certificate.


To enable admin request SSL client certificate support and deploy a large file, first upload the file manually to the system where the DAS is running or store the file in a shared file system that both your system and the DAS system can access. Then do not specify --upload=true when you deploy the application. The DAS finds the file without uploading it, so the certificate negotiation between the DAS and the administration client can complete normally.

Fail to install the bundle named with -jdk7 when unset JAVA_HOME in solaris 11 Express x86 (16698)


The JDK bundle is not installed if the JAVA_HOME or PATH environment variable is not set properly.


Do one of the following:

  • Add the actual JDK installation location to the PATH.

  • Add the directory for a stand-alone JDK installation to the PATH.

  • Set JAVA_HOME to the actual JDK installation location.

  • Run the /usr/sbin/pkg developer/java/jdk command from the root (/) directory. If this command reports that the developer/java/jdk package is not installed, install that package before installing GlassFish Server.

asadmin timeout from HA short execution on AIX (16960)


During High Availability testing on AIX, the Domain Admin Server (DAS) freezes and requires a complete restart.


An IBM patch can be downloaded from .

domain.xml encoding can cause upgrade problems and startup failure with certain locale changes (16304, 16700)


If you change the system locale to something incompatible with the current encoding of the domain.xml file, GlassFish Server fails to start. This can happen during an upgrade.


Change the system locale back to the previous setting.

If you are upgrading, convert the domain.xml file to native encoding before upgrading. On Unix systems, follow these steps:

  1. Back up the domain.xml file.

  2. Run the following commands:

    native2ascii domain.xml domain.xml.ascii
    native2ascii -reverse -encoding UTF-8 domain.xml.ascii domain.xml
  3. Run the asupgrade command under c:\glassfish311\glassfish\bin\.

  4. Run the following commands:

    native2ascii -encoding UTF-8 domain.xml domain.xml.ascii
    native2ascii -reverse domain.xml.ascii domain.xml

Unable to restart Embedded GlassFish Server instance once a remote EJB is deployed (16916)


Code that performs these steps fails with ORB and EJB container exceptions at the restart step:

  1. Start embedded GlassFish Server.

  2. Deploy a remote EJB application.

  3. Undeploy the application.

  4. Stop the server.

  5. Restart the server.

  6. Redeploy the application.


Perform these steps:

  1. Start embedded GlassFish Server.

  2. Deploy a remote EJB application.

  3. Undeploy the application.

  4. Stop the server using the dispose method.

  5. Restart the host virtual machine (JVM).

  6. Recreate the embedded GlassFish Server instance.

  7. Redeploy the application.

EJB Timer Service is not loaded correctly after Embedded GlassFish Server restart (16230)


Code that performs these steps fails at the redeploy step:

  1. Start embedded GlassFish Server.

  2. Deploy an application that uses the EJB Timer Service.

  3. Undeploy the application.

  4. Stop the server.

  5. Restart the server.

  6. Redeploy the application.


Perform these steps:

  1. Start embedded GlassFish Server.

  2. Deploy an application that uses the EJB Timer Service.

  3. Undeploy the application.

  4. Stop the server using the dispose method.

  5. Restart the host virtual machine (JVM).

  6. Recreate the embedded GlassFish Server instance.

  7. Redeploy the application.

Stopping Embedded GlassFish Server leaves several daemon threads running (11088)


After you stop embedded GlassFish Server, some daemon threads continue to run. Some of these threads don't exit until the virtual machine (JVM) exits. Restarting embedded GlassFish Server repeatedly in the same JVM can cause Out of Memory errors.


Restart the JVM.



There is an issue with web services communication between GlassFish Server Metro and Oracle WebLogic Server when using the Oracle Web Services Manager (OWSM) wss11_saml_token_with_message_protection_service_policy policy.


The fix for this problem is in Oracle WebLogic Server See the Oracle WebLogic () product page for more information.

[JDK_Issue] Performance degradation caused by invoking setSoLinger or setReuseAddress (Issue 7109)


When the setSoLinger method or the setReuseAddess method is invoked, performance is degraded and the following exception is thrown:

java.net.SocketException: Invalid argument

This issue is caused by an issue with the JDK software. This issue is resolved in JDK version 7.



For the complete report about this issue, see GLASSFISH-7109 ().

[JDK_Issue] IO exception: invalid argument during longevity test (Issue 7529)


During an HTTP longevity test, the following exception is thrown 42 hours into the run:

java.io.IOException: Invalid argument

The instance and application are still accessible during the run.

This issue is caused by an issue with the JDK software. This issue is resolved in JDK version 7.



For the complete report about this issue, see GLASSFISH-7529 ().

File permissions on domain /applications directory can cause NullProcessException (Issue 6545)


If a domain's /applications directory restricts access, or if you use directory deployment from a restricted directory, the server cannot read the files in the expanded directory. A NullProcessException error occurs during deployment.


Change the file access settings for such directories to grant the server permission to read the directory contents.

For the complete report about this issue, see GLASSFISH-6545 ().

Issues occur with ZIP distribution if UAC enabled on Windows 7 and Vista (Issue 10755)


Some features will not work well on Windows 7 and Vista with User Account Control (UAC) enabled. One example is the Administration Console, which cannot be launched.


Disable UAC and reboot.

For the complete report about this issue, see GLASSFISH-10755 ().

[Open Installer] Option -l to relocate log files ignored on Windows (Issue 10693)


Option -l to relocate log files is ignored when used with options -a and -s and the log files are created in the default location.



For the complete report about this issue, see GLASSFISH-10693 ().

[Open Installer] Start menus not displayed and then empty on Windows Vista (Issue 5087)


The Start menu group for GlassFish Server is not displayed after installation is first completed. If you log out and then log back in, the menu group is displayed but it is empty.



For the complete report about this issue, see GLASSFISH-5087 ().

Standalone Update Tool fails with segmentation fault on Solaris (Issue 11222)


The standalone Update Tool started with the updatetool command fails with a segmentation fault on Solaris when installing add-on components.


Ensure that your system conforms to the standalone Update Tool patch requirements as defined in the Update Center Release Notes ().

Update Tool functionality in the Administration Console uses a different Java-based Update Center API and is not affected by this issue.

For the complete report about this issue, see GLASSFISH-11222 ().

Java EE 6 Managed Bean support not available in app clients launched using Java Web Start (Issue 11257)


When using Java Web Start to launch an application client, any managed beans in the application client will not be recognized.


Launch the application client using the appclient script. Managed beans in the application client will be supported normally.

For the complete report about this issue, see GLASSFISH-11257 ().

Warning messages when invoking appclient script on Mac OS X with Apple Java implementation (Issue 8644)


When you invoke the appclient script on Mac OS X systems with Java from Apple installed, the following stack trace is seen twice (only the first few lines are shown here):

Intentionally suppressing recursive invocation exception!
java.lang.IllegalStateException: recursive invocation
    at java.lang.ClassLoader.initSystemClassLoader(ClassLoader.java:1394)
    at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1377)
    at sun.security.jca.ProviderConfig$1.run(ProviderConfig.java:64)


None needed.

Despite the warning messages, the client will be launched successfully and run normally. These errors are from an issue in the Apple Java implementation.

For the complete report about this issue, see GLASSFISH-8644 ().

Unable to open installation log files using links on the Summary screen on Linux and Mac OS (Issue 6621)


Installation log files cannot be opened by clicking the links on the Summary page that displays at the end of the installation process in the graphical installer.


Access the files manually. The names of the installation log and summary files are timestamp-install.log and timestamp-install-summary.html. On Linux and Mac systems these files are generated under the $TMP directory.

For the complete report about this issue, see GLASSFISH-6621 ().

updatetool command does not work if you reinstall into the same install directory on Windows (Issue 8233)


If you reinstall GlassFish Server (with Update Tool) in the same installation directory with the same defaults and invoke Update Tool using the updatetool command, you receive a message saying that Update Tool is not installed and are asked if you want to install it. This occurs on Windows systems only.


Following uninstallation, manually remove the remaining .org* directory before reinstalling.

For more information this issue, see GLASSFISH-8233 ().

Problems debugging JPA (Issue 11274)


Debugging JPA is difficult because of limited messages from the server.


Add the property org.eclipse.persistence.session.level=INFO to the logging.properties file. You can then use the Administration Console to control EclipseLink loggers.

For the complete report about this issue, see GLASSFISH-11274 ().

There doesn't appear to be any explanation about the classpath-prefix and classpath-suffix in the GF 3.x documentation (Issue 16082)


In previous GlassFish Server versions, the JVM options provided a classpath-prefix and classpath-suffix attributes that made it possible to add JAR files or directories either in front of, or after the application serve's system classpath. These options are no longer present in GlassFish Server 3.1.2.

Starting with GlassFish Server v3 Preview, after switching to OSGi, the classpath-prefix and classpath-suffix options have been labeled "do not use."


The classpath-prefix was typically used to substitute another package for one of the GlassFish Server packages, for example if a newer one was available. This same result can be achieved by using the Java Endorsed Standards Override Mechanism or on a per-application basis with the --libraries option for the deploy subcommand. These are documented in the Oracle GlassFish Server Application Development Guide. The Java Optional Package Mechanism, which is documented in this guide, does what classpath-suffix used to do.

Windows startup menu shows single entry on multiple installation of Glassfish 3.1 (7002744)


Windows Start Menu shows a single GlassFish Server even when multiple GlassFish Server installations are installed.


None. When running GlassFish Server from the Start menu, the most recent installation starts. Similarly, when uninstalling from the Start menu, the last installed version is uninstalled.

New Grizzly integration required for http://java.net/jira/browse/GRIZZLY-970 (15909)


There is a known security vulnerability with Grizzly when running Java Runtime Environment 6 versions prior to Update 24. See for details.


Use Java Runtime Environment 6 update 24 or greater to avoid the vulnerability. Oracle has released a security alert for this issue. For instructions on how to resolve it, see .

For the complete report about this issue, see GLASSFISH-15909 ().

ReleaseNotes: document Restart Required issues (Umbrella issue 16040)


There are a number of configuration functions for which a server restart is required, and a number for which a restart is not required. However, the underlying component modules for the functions listed below are not correctly prompting the user about the restart requirements. These incorrect or missing restart prompts occur regardless of whether the given function is performed from the command line or through the Administration Console.

This is an umbrella issue for the sub-issues listed below. The URL for the JIRA query that you can use to display all these sub-issues is .

  • GLASSFISH-16100 (): Restart required for java mail session debug change, exception in server.log

  • GLASSFISH-16013 (): Restart Required: changing http port does not trigger restart required message for a standalone instance

  • GLASSFISH-16010 (): Restart Required: After changing JMS Type server instance is not reported as requiring restart

  • GLASSFISH-15758 (): Restart Required status for remote instances does not get reset even when instance is restarted.

  • GLASSFISH-15638 (): Show "restart required" status when IIOP service configuration / port is changed

  • GLASSFISH-15635 (): [UB]Show "restart required" status when a new resource is created or deleted

  • GLASSFISH-15629 (): [UB]Show "restart required" status when JDBC connection pool properties are changed

  • GLASSFISH-15619 (): [UB]show "restart required" status when connector connection pool properties are changed

  • GLASSFISH-15517 (): "Restart Required" when no changes are made to JVM options

  • GLASSFISH-15507 (): [UB]DOC: Server restart is required after secure-admin is enabled or disabled

  • GLASSFISH-14515 (): [UB]Restart not required for changes in resources

  • GLASSFISH-3850 (): Changing default realm does not indicate that a server restart required


Restart the DAS after performing any of the functions listed above.

For the complete report about this issue, see GLASSFISH-16040 ().

[UB]org.osgi.framework.BundleException during shutdown after upgrade (15441)


When shutting down a server that was started with the java -jar command, a large number of exceptions may sometimes be displayed in the console. Shutting down a server that was started with the --verbose option also causes this error.


These are harmless exceptions and can be ignored. The errors are only displayed in the console when the server that is being shut down was started in either --verbose mode or by using the java -jar command. Also note that the --upgrade option implies --verbose, so shutting down a server that was started with the --upgrade option may also produce this error.

For the complete report about this issue, see GLASSFISH-15441 ().

Update coordinates failure with enable-security-admin (7017384)


The asadmin update-admin-server-coordinates subcommand fails if secure-admin is enabled.


Either disable secure-admin, or use the --adminport option with the update-admin-server-coordinates subcommand to explicitly set the port you want to use.

For more information, see enable-secure-admin(1).

Man page for list-supported-cipher-suites (15998)


The example in the man page for the list-supported-cipher-suites subcommand lists the Kerberos cipher (*_KRB5_*) suites, but the Kerberos suites are not supported in GlassFish Server 3.1.2.


None. This is a documentation error. Kerberos cipher suites are not supported in GlassFish Server 3.1.2.

Description of create-jacc-provider references JSR196 but the command has nothing to do with JSR196 and JAAS (15999)


The subcommand description in create-jacc-provider man page references JSR196 and JAAS but the subcommand has nothing to do with those specifications. In addition, there is a typographical error in the subcommand example. Finally, the subcommand description for the delete-jacc-provider should be reworded.


These man page errors will be corrected in the next GlassFish Server release. In the meantime, note the following:

  • The subcommand description in create-jacc-provider man page should read as follows:

    The create-jacc-provider subcommand creates a JSR-115-compliant Java Authorization Contract for Containers (JACC) provider that can be used for the authorization of applications running in GlassFish Server. The JACC provider is created as a jacc-provider element within the security-service element in the domain's domain.xml file.

    The default GlassFish Server installation includes two JACC providers, named default and simple. Any JACC providers created with the create-jacc-provider subcommand are in addition to these two default providers. The default GlassFish Server JACC providers implement a simple, file-based authorization engine that complies with the JACC specification. The create-jacc-provider subcommand makes it possible to specify additional third-party JACC providers.

    Any number of jacc-provider elements can be created under the security-service but the GlassFish Server runtime will use only one of them at any given time. The jacc attribute on the security-service points to the name of the provider that is currently in use by GlassFish Server. Any change to the jacc attribute (to make it point to a different jacc-provider) would require a server restart. This command is supported in remote mode only.

  • The create-jacc-provider subcommand sample should read:

    asadmin> create-jacc-provider
    --policyproviderclass com.sun.enterprise.security.provider.PolicyWrapper
    --policyconfigfactoryclass com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl
  • The subcommand description in delete-jacc-provider man page should read as follows:

    The JACC provider used by GlassFish Server for authorization is specified by the jacc attribute in the security-service configuration element. If you are deleting the provider pointed to by the jacc attribute, ensure that the attribute value is also changed to the name of some other jacc-provider that exists under the security-service. Any change to the jacc attribute for a running service requires a server restart.

lazy-init attribute missing from admin console Edit IIOP Listener page (15975)


It is not possible to set the lazy-init value for an IIOP listener from either the GlassFish Server Administration Console or the command line. Even the asadmin set command cannot be used to change the value.


Currently, the only workaround for this issue is to edit the domain.xml file directly. For example, the domain.xml file could contain a property similar to the following:

<iiop-listener port="3700" id="orb-listener-1" address=""

In this example, the lazy-init property is enabled, and it can be disabled by changing the lazy-init value to false.

Note that lazy-init is disabled by default, so the domain.xml file could contain an iiop-listener element similar to the following:

<iiop-listener port="3700" id="orb-listener-1" address=""></iiop-listener>

In this case, to enable lazy-init, you would add the following property to the iiop-listener element:


For the complete report about this issue, see GLASSFISH-15975 ().

RMIConnectorStarter constructs invalid URLs with a literal IPv6 address (15937)


When using GlassFish Server 3.1.2 on a system that uses IPv6 addressing, and there is a need to make the JMX service listen on a specific IPv6 address, and the address is specified as a literal IPv6 address, the RMIConnectorStarter class constructs an invalid URL in the start method.

For example, if your domain.xml contains the following:

<jmx-connector port="8686" address="e80::216:3eff:fe3e:4c35" security-enabled="false"
auth-realm-name="admin-realm" name="system"></jmx-connector>

The server will not open the JMX RMI port successfully and exceptions will be reported in the log file.


The recommended workaround for this problem is to not use a literal address. Instead, define a name for the address, either in DNS or the hosts file, and then use that name as the value for the address for the JMX listener.

An alternate workaround is to enclose the address value in square braces. For example, use:

<jmx-connector port="8686" address="[e80::216:3eff:fe3e:4c35]" security-enabled="false"
auth-realm-name="admin-realm" name="system"></jmx-connector>


This issue is planned to be fixed in either a 3.1.2 patch or a subsequent GlassFish Server release. This alternate workaround will cause the system to operate incorrectly when the issue is fixed. The square braces will need to be removed after the fix is applied.

For the complete report about this issue, see GLASSFISH-15937 ().

man-page-review umbrella issue (15929)


During the final GlassFish Server 3.1.2 development phase, fixes were made to a number of man pages after the man pages had already been localized. For users of non-EN locales, these corrections will not appear in the man pages, but are correctly displayed in the Oracle GlassFish Server Reference Manual.

This is an umbrella issue that includes the following man page review issues:

  • GLASSFISH-15875 man-page-review: list-admin-objects, list-connector-resources, list-jndi-resources

  • GLASSFISH-15958 man page: webtier CLIs

  • GLASSFISH-15878 man-page-review: create-jdbc-connection-pool

  • GLASSFISH-15877 man-page-review: remove the section "Application Scoped Resources" from multiple resource man-pages

  • GLASSFISH-15879 man-page-review: note about resource-ref in multiple resource related commands

  • GLASSFISH-15962 Man page for update-node-config is wrong about SSH nodes

  • GLASSFISH-15876 man-page-review: list-connector-resources, list-jndi-resources

  • GLASSFISH-15873 man-page-review: delete-resource-adapter-config

  • GLASSFISH-15872 man-page: flush-connection-pool, ping-connection-pool

  • GLASSFISH-15874 man-page-review: delete-connector-resource, delete-jdbc-resource, delete-jndi-resource

  • GLASSFISH-15566 change-master-password --help has wrong content

  • GLASSFISH-15485 Error in man pages for restart-local-instance, start-local-instance, stop-local-instance

  • GLASSFISH-15867 documentation of create-system-properties has inconsistencies

  • GLASSFISH-15919 man-page-review: jms CLIs

  • GLASSFISH-3198 Synopsis for asadmin help create-custom-resource wrong

  • GLASSFISH-15564 create-http-health-checker man page error

  • GLASSFISH-15956 man page: remove --upgrade option from start-local-instance

  • GLASSFISH-15947 Remove --upgrade from start-local-instance man page


The correct man pages are displayed in GlassFish Server distributions for the EN locale, and will be available for all locales in GlassFish Server 3.2. In the meantime, users of non-EN 3.1.2 locales should refer to the Oracle GlassFish Server Reference Manual for the latest subcommand usage instructions.

For the complete report about this issue, see GLASSFISH-15929 ().

[UB]Release note security permissions required for CDI applications (15456)


It is necessary to grant additional permissions to CDI-enabled Java EE applications that are deployed in a GlassFish Server 3.1.2 domain or cluster for which security manager is enabled. These additional permissions are not required when security manager is disabled.


To deploy CDI-enabled Java EE applications in a GlassFish Server 3.1.2 domain or cluster for which security manager is enabled, add the following permissions to the applications:

grant codeBase "file:${com.sun.aas.instanceRoot}/applications/[ApplicationName]" {
 permission java.lang.reflect.ReflectPermission "suppressAccessChecks";

For example, for a CDI application named foo.war, add the following permissions to the server.policy file, restart the domain or cluster, and then deploy and use the application.

grant codeBase "file:${com.sun.aas.instanceRoot}/applications/foo" {
 permission java.lang.reflect.ReflectPermission "suppressAccessChecks";

See "Changing Permissions for an Application" in Oracle GlassFish Server Application Development Guide for instructions on modifying application permissions. See "Enabling and Disabling the Security Manager" in Oracle GlassFish Server Application Development Guide for instructions on enabling and disabling security manager. For the complete report about this issue, see GLASSFISH-15456 ().

build 40 : list-jmsdest for cluster1 not working, it just hangs


Listing JMS physical destinations causes the DAS to hang if the MQ Broker for the instance is not started. This issue occurs in both the Administration Console and when using the asadmin list-jmsdest subcommand.


All JMS destination subcommands, including list-jmsdest, create-jmsdest, delete-jmsdest, and flush-jmsdest requires the MQ broker for the instance to be running. For more information, see the Oracle GlassFish Server Message Queue Release Notes.

Create Resource Adapter Config is throwing an exception if JMS is already started (15571)


Creating a JMSRA resource adapter configuration and setting the thread pool to http-thread-pool generates an exception in the server.log.


GlassFish Server 3.1.2 provides Grizzly-based and ORB-based thread pool implementations. By default, the create-resource-adapter-config subcommand takes a thread-pool ID parameter that is based on an ORB thread pool. When a thread-pool is initialized, the ORB thread pool manager verifies that the thread-pool is not already being used by the Grizzly thread pool manager. The thread-pool is initialized only if Grizzly is not already using the configuration.

For more information, see "Administering the Object Request Broker (ORB)" in Oracle GlassFish Server Administration Guide. For the complete report about this issue, see GLASSFISH-15571 ().

[Release Note]Samples. at ant all output was seen URL for samples that don't have a web client (12264)


When running the GlassFish Server sample files, the output generated by the ant all command displays deployment URLs even for applications that do not have a Web client. For example, the criteriaQuery and hello-jaxws2.2 sample applications do not have a Web client, but ant all still generates deploy-url messages for them, similar to the following:

Application deployed at htt://localhost:8080/criteriaQuery
Application deployed at htt://localhost:8080/hello-jaxws2.2


This is a simple message string error, and does not affect the functionality of the samples. Ignore this message for applications that do not have a Web client and corresponding URL.

For the complete report about this issue, see GLASSFISH-12264 ().

Domain.xml: setting protocol.http-listener-1.http.max-connections set in 1 or -1 (16025)


The man page for the create-transport man page states the following for the --maxconnectionscount option:

The maximum number of connections for the network listener that references this transport. A value of -1 specifies no limit. The default value is 4096.

However, because of a GlassFish Server bug, setting the --maxconnectionscount value to -1 disables keep-alive for the connection.


Use the following values for --maxconnectionscount:


Currently does not correctly set the --maxconnectionscount to unlimited. Instead, specify some big number, up to Integer.MAX_VALUE.


Process one keep-alive request, and then close the connection after processing the second request on the same connection.


Disable keep-alive for the connection

For more information, see "Timeout" in Oracle GlassFish Server Performance Tuning Guide. For the complete report about this issue, see GLASSFISH-16025 ().

Intermittent issue: Left tree not refreshed when new elements are added/removed in IE and firefox (15997)


When running the GlassFish Server Administration Console in some versions of Internet Explorer and Firefox, the node tree on the left side of the Administration Console is not always updated correctly when new elements are added to the server configuration. For example, the node tree may not update correctly after adding a new JDBC Pool, resource, or virtual server. This issue is not consistently reproducible and is very intermittent.


Reload the Administration Console by pressing the Home button or the browser's reload button to update the values in the node tree.

For the complete report about this issue, see GLASSFISH-15997 ().

[UB][regression] jpaRLCreateEMF failure on sybase (15763)


When using the DataDirect driver with Sybase, inserting an entity that uses GenerationType.IDENTITY will fail. The problem is that the DataDirect driver creates a stored procedure for every parameterized prepared statement.


Set the PrepareMethod=direct property on the corresponding datasource to change the default DataDirect behavior for handling prepared statements.

For the complete report about this issue, see GLASSFISH-15763 ().

Admin Console: intermittent Blank Screen (15633)


The Administration Console sometimes simply displays a blank screen even though the status bar in the browser window indicates that the page loading is complete. This can happen if you have been working in the Administration Console and then restart the server from the command line. This can also happen after upgrading or reinstalling GlassFish Server.


This issue can usually be resolved by doing a Shift+Reload in your browser window. In some cases, particularly when the error occurs after a GlassFish Server upgrade or reinstallation, it may be necessary to clear your browser's cache, cookies, and active logins going back at least one day in the browser history.

For the complete report about this issue, see GLASSFISH-15633 ().

Caching JMS session in a session bean causes errors when invoked by a MDB when under load (15558)


A stateless session bean should not save JMS connections or sessions in fields of the bean. Applications that do so may encounter errors.


To avoid this issue, if a stateless session bean's business method requires the use of a JMS connection and session, then the business method should create the JMS connection and session, use it to send or receive messages, and then close the connection and session before returning.

For the complete report about this issue, see GLASSFISH-15558 ().

Domain fails to stop after console loaded (with secure admin enabled) (15482)


Server fails to stop when in secure admin mode and the Administration Console has been loaded.


This is just one of a number of issues that may occur when using a JDK version lower than 1.6.0_22. Ensure that you are using JDK 1.6.0_22 or later. See Hardware and Software Requirements for complete information about GlassFish Server 3.1.2 JDK requirements.

For the complete report about this issue, see GLASSFISH-15482 ().

Modifying keyfile path in a newly created config does not properly list the users (15429)


If an asadmin set subcommand is executed to change a realm-property for a realm that is already loaded (perhaps due to an earlier CLI command targeted at the realm), then the realm continues to behave as if the set subcommand was not executed.


Restart GlassFish Server after using a set subcommand to change a property for a realm that has already been loaded.

For the complete report about this issue, see GLASSFISH-15429 ().

[BigApps] [STRESS] ~17 occurrences of "EOFException" warnings coming from JMS (15424)


Very occasionally, WARNING messages that state "java.io.EOFException: Trying to read 72 bytes. Already read 0 bytes" may be observed in the server log.


If no other messages or exceptions are logged at the same time in either the server or broker logs these messages may be ignored.

For the complete report about this issue, see GLASSFISH-15424 ().

Mysql ping fails when additional properties are not deleted (14547)


Performing a MySQL ping after setting nonstandard for mysql-pool, the following error message is displayed:

Ping failed Exception - Access denied to execute this method : 
setLargeRowSizeThreshold Please check the server.log for more details.


Only set the standard documented properties for mysql-pool. These properties are as follows:

  • "databaseName"

  • "serverName"

  • "port"

  • "networkProtocol"

  • "user"

  • "password"

  • "roleName"

  • "datasourceName"

For more information, see "Configuration Specifics for JDBC Drivers" in Oracle GlassFish Server Administration Guide. For the complete report about this issue, see GLASSFISH-14547 ().

If TS resource had been changed, tables are not created after server restart (13873)


If an EJB Timer resource is changed after the EJB Timer Service is started on a previous resource, the EJB Timer table is not created after a server restart.


The DAS must be restarted if any automatic timers are to be deployed. In addition, unless the EJB Timer table is created manually, the domain-dir/generated/ejb-timer-service-app marker file also needs to be removed.

For the complete report about this issue, see GLASSFISH-13873 ().

GlassFish/Grizzly not able to accept new request if a remote client hangs (6963818)


When closing an idle or expired connection, Grizzly waits a period of time, called the linger time, for any pending data transmission to complete. If the client on the connection is not network accessible, GlassFish Server might appear to hang.


Add the following JVM option to the configuration:


restore-domain from a config only backup will corrupt the domain directory (7026114)


When a domain is restored using a configuration-only backup, the contents of the domain's config directory are restored but the other contents of the directory are lost, thus corrupting the domain.


Perform the following steps to restore a domain directory from a configuration-only backup.

The domain name to be restored in this example is named domain1. The configuration is restored to a temporary directory named /tmp/domain1. Once the configuration is restored, the old configuration is moved aside and the restored configuration is copied from the temporary directory to the domain directory.

  1. Create a temporary directory to hold the restored configuration files for the domain.

    For example:

    mkdir /tmp/domain1
  2. Restore the domain.

    asadmin restore-domain --backupdir /tmp/das-backups --domaindir /tmp domain1
  3. Stop the domain.

  4. Change to the domain directory that is actually being restored.

    cd domain-dir
  5. Rename the existing domain config directory.

    For example:

    mv config config-
  6. Copy the domain configuration from the /tmp directory into the real domain config directory.

    cp /tmp/domain1 config

JSF PhaseListener executed for each virtual host (15809)


JSF 2.0 PhaseListeners are executed on each virtual server for any given request. In a multiple virtual server scenario, this means the PhaseListener is invoked multiple times, once for each VM.

The root cause of the problem, like most Mojarra-with-Virtual Server problems, is the invalidity of the assumption that there is always just one ServletContext per application per VM. In the case of N virtual servers, there are N ServletContext instances (and attendant lifecycle listener calls) per application per VM. For example, in a seven-node virtual server scenario, the PhaseListeners are invoked seven times.


Create a custom LifecycleFactory instance that correctly handles the virtual server case. Details for doing this are provided in .

For the complete report about this issue, see GLASSFISH-15809 ().

could not find Factory: javax.faces.context.FacesContextFactory (16061)


JSF/Seam 3 applications intermittently fail to start, generating an error message similar to the following:

WARNING: StandardWrapperValve[FacesServlet]: PWC1382: Allocate exception 
for servlet FacesServlet
java.lang.IllegalStateException: Application was not properly initialized at 
startup, could not find Factory: javax.faces.context.FacesContextFactory

This issue may occur when a JSF application does not register the Faces Servlet in the application's web.xml file. The com.sun.faces.config.FacesInitializer will attempt to initialize the JSF Servlet, which normally works without problem, except when Seam Faces is included in the application, which also tries to initialize the Servlet. This issue is not deterministic because of the random ordering of listeners by GlassFish Server.


Add the following code to the web.xml file for the application:

<servlet-name>Faces Servlet</servlet-name>

For the complete report about this issue, see GLASSFISH-16061 ().

GlassFish installer needs to prompt user to set MQ admin password (12305750)


GlassFish Server Message Queue (MQ) 4.5 SP2 and GlassFish Server 3.1.2 are now installed together through a common installation program. Prior versions of MQ and GlassFish Server were installed separately through their own installation programs.

The older MQ installation program prompted the user to set an MQ administrator password, but the GlassFish Server 3.1.2 installer does not. Instead, in GlassFish Server 3.1.2 with MQ 4.5 SP2, the default behavior at MQ instance startup is to generate content for a file-based user repository configuration file named passwd. By default, this file-based user repository is configured as the MQ repository to be used to authenticate client connections to the broker. The default passwd file contains the following user entries:

User Name Password
admin admin
guest guest

These credentials may not match those used for the GlassFish Server administrator.


Ideally, the GlassFish Server administrator and MQ administrator should share the same user credentials because the two products are now the same. Functionality for setting the MQ administrator user name and password during product installation are planned for future versions of the GlassFish Server installer.

In the meantime, there are several post-installation workarounds, listed below, that you can perform on the MQ side with the imqusermgr User Manager utility to change or set the MQ administrator user name and password. In all cases, see "User Manager Utility" in Oracle GlassFish Server Message Queue Administration Guide for more detailed information about this utility.

  • Change the credentials for an existing MQ Broker instance.

    Use the imqusermgr User Manager utility to administer MQ Broker passwords.

  • Set the credentials that will subsequently be used for all new MQ Broker instances.

    The instructions vary slightly, depending on whether you want to create a new MQ administrator user name or if the user name will remain unchanged.

    • If creating a new MQ administrator user name

      Delete the existing MQ administrator user name.

      as-install-parent/mq/imqusermgr delete -u admin -c -varhome tmp-dir -s -f

      Create the new MQ administrator user name.

      as-install-parent/mq/imqusermgr add -u user-name -p password -c -varhome tmp-dir -s -f
    • If reusing the existing MQ administrator user name and only updating the password

      Update the administrator password.

      as-install-parent/mq/imqusermgr update -u admin -p password -c -varhome tmp-dir -s -f

      Move the MQ Broker accesscontrol.properties file to the GlassFish Server installation.

      mv tmp-dir/instances/imqbroker/etc/accesscontrol.properties as-install-parent/mq/etc

App client cannot find EJB behind NAT (17147) and EJB remote deployed on GF behind a NAT inaccessible (17151)


The IIOP protocol as implemented in GlassFish Server calls the ORB to locate the EJB component. Because the EJB component is deployed on the same server as the ORB, the ORB sends the private IP address to the client instead of the public IP address. The ORB has no way of knowing the public IP address, which is determined by the firewall. The client then tries to connect using the private IP address, which does not go though the firewall.


None. There is no properly tested workaround available for this issue.

asadmin update-node-ssh command hangs when SSH port is not provided (18185)


If you attempt to change a DCOM node to an SSH node, using either the Edit Node page of the Administration Console or the asadmin update-node-ssh command, the operation fails unless you specify the SSH port.


In the Edit Node page of the Administration Console, enter the port number. When using the asadmin update-node-ssh command, specify the --sshport option. The default SSH port value is 22.

QL bean-validator/simple-bv-servlet test failed in security_manager ON mode (17288)


Code that invokes equals() on an instance of java.lang.annotation.Annotation causes an AccessControlException when running in the IBM JDK but succeeds without an exception in a similar version of the Oracle JDK.


Include the following grant in the server.policy file, substituting the name of your application for app-name:

grant codeBase "file:${com.sun.aas.instanceRoot}/applications/app-name/-" { permission java.lang.reflect.ReflectPermission "suppressAccessChecks"; };

This workaround was tested with the following versions:

  • Java version 1.6.0

  • Java SE Runtime Environment (build pap3260sr9fp1-20110208_03(SR9 FP1))

  • IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 AIX ppc-32 jvmap3260sr9-20110203_74623 (JIT enabled, AOT enabled)

  • J9VM - 20110203_074623

  • JIT - r9_20101028_17488ifx3

  • GC - 20101027_AA)

  • JCL - 20110203_01

  • uname -a output included AIX 1 6 00090DB6D700

Virtual network interfaces introduced by virtualization systems regress Glassfish 3.1.2 GMS auto selection of an appropriate network interface to use (18024)


The introduction of non-multicast mode for Group Management Services (GMS) in GlassFish Server 3.1.2 altered which network interface was automatically selected to be used on a multi-homed machine for clustering communications. This change can result in some clustered instances no longer being able to join their running cluster.

In GlassFish Server 3.1-3.1.1, a network interface that did not support multicast was not considered as a candidate to be selected as the network interface to be used for cluster communications. Thus, the automatic selection of network interfaces was impacted. Specifically, virtual network interfaces that used to be ignored because they did not support multicast can be incorrectly selected as the default network interfaces for cluster communications.


Do one of the following:

  • Disable or remove the network interfaces that are being selected incorrectly.

  • Specify which network interface to use on the machine(s) selecting the incorrect network interface. For more information, see "Using the Multi-Homing Feature With GMS" in Oracle GlassFish Server High Availability Administration Guide.

Require username/password to access admin console locally (18063)


If you try to use the Administration Console from a system through a proxy server on another system back to the original system, while using the system's full host name (instead of localhost or you are denied access because the request is treated as a remote request, which requires that secure admin be enabled.


Do one of the following:

  • Do not use a proxy server.

  • Use localhost or as the host name.

  • Enable secure admin so that what GlassFish Server interprets as a remote request is accepted as such.

To enable secure admin, see "Managing Administrative Security" in Oracle GlassFish Server Security Guide.

Failure to replicate sessions larger than 64kB with only one active clustered instance (18085)


If a cluster has only one running server instance and high availability is enabled, you may see the following log message indicating session replication failure:

Multicast datagram of size 155?379 exceeds max multicast size 65?536

The high-availability subsystem is sending replica sessions to null, which translates to a UDP broadcast. Broadcasts over UDP multicast never support a size larger than 64K.


Always ensure that at least two clustered instances are running. Use the asadmin get-health cluster-name command to monitor a cluster's health (see the Oracle GlassFish Server Reference Manual). There is also information in the server log that indicates how many cluster members are running in a cluster.

[JRockit-intermittent] Observed 100% CPU usage & deploy taking > 5 minutes when running the Coherence HA tests (18222)


When JRockit and Coherence*Web are both used in combination with GlassFish Server, and a Coherence*Web enabled application is deployed, CPU usage sometimes reaches 100% and deployment sometimes fails.


Use the Oracle JDK instead of JRockit.

IE9 and Google Chrome only: Export a LB config xml not working properly (18281)


If you are using the Internet Explorer 9 or Google Chrome browser, export of the loadbalancer.xml file succeeds but causes the Administration Console to hang.


Use a different browser.

AccessControlException in Coherence*Web Test with Security Manager On (13614812)


If the security manager is on, tests for using Coherence*Web and TopLink Grid with GlassFish Server fail.


If the security manager is on and you are using Coherence bundled with your application through either Toplink Grid or Coherence*Web, grant the following permissions to your application's codebase in the security.policy file, substituting the name of your application for app-name:

grant codeBase "file:${com.sun.aas.instanceRoot}/applications/app-name/-"
  permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
  permission java.lang.RuntimePermission "modifyThread";    
  permission java.lang.RuntimePermission "accessDeclaredMembers";    
  permission java.lang.RuntimePermission "createClassLoader";    
  permission java.lang.RuntimePermission "getClassLoader";    
  permission java.lang.RuntimePermission "getenv.*";    
  permission java.lang.RuntimePermission "getProtectionDomain";    
  permission java.lang.RuntimePermission "selectorProvider";    
  permission java.lang.RuntimePermission "setContextClassLoader";    
  permission java.lang.RuntimePermission "shutdownHooks";    
  permission java.net.SocketPermission "*", "accept,connect,resolve,listen";
  permission java.security.SecurityPermission"insertProvider.CoherenceSecurityProvider";  
  permission java.security.SecurityPermission"putProviderProperty.CoherenceSecurityProvider";  
  permission java.util.PropertyPermission "java.net.preferIPv4Stack", "read";
  permission java.util.PropertyPermission "java.net.preferIPv6Addresses","read";  
  permission java.util.PropertyPermission "java.version", "read";  
  permission java.util.PropertyPermission "os.arch", "read";  
  permission java.util.PropertyPermission "os.name", "read";  
  permission java.util.PropertyPermission "sun.arch.data.model", "read";  
  permission java.util.PropertyPermission "tangosol.*", "read";  
  permission java.util.PropertyPermission "user.dir", "read";  
  permission java.util.PropertyPermission "buffermanager.*", "read";  
  permission java.util.PropertyPermission "sbm.cleanup.frequency", "read";  
  permission javax.management.MBeanPermission "com.tangosol.*", "*";  
  permission javax.management.MBeanServerPermission "*";  
  permission javax.management.MBeanTrustPermission "*";  
  permission javax.security.auth.AuthPermission "getSubject";  
  permission java.security.SecurityPermission"putProviderProperty.OracleCommonsSecurityProvider";  
  permission java.security.SecurityPermission"insertProvider.OracleCommonsSecurityProvider";
  permission java.lang.RuntimePermission "modifyThread";

Traffic loss during instance start between the time 8080 is up and application is loaded (18267)


A traffic loss occurs when a clustered server instance is restarting. There is a time gap of a few seconds between when port 8080 is running and when application loading is complete. During this gap client requests are denied with a 404 error.


None. The client must retry the request after application loading is complete.

Repeated Deploy & Undeploy of a Coherence 3.7.1 enabled application causes an OutOfMemory (PermGen space) error (18309)


Repeated redeployment of a Coherence 3.7.1 enabled application may cause a memory leak and lead to an OutOfMemory error. The cluster may become unusable. After an instance in the cluster has shown the error, asadmin commands that operate on the entire cluster may return with an SSLHandshakeException message and fail.


Use Coherence 3.7.0 instead.

If you must use Coherence 3.7.1, to get the cluster back in use:

  1. Identify the instances that have gone OutOfMemory by looking at each instance's server logs.

  2. Kill those instances from the command line using the kill -9 pid command.

  3. Restart the cluster using the asadmin start-cluster cluster-name command.

JMS Connection Factories tree node should not include JMS Destination Resources (18314)


When you create a JMS Destination Resource in the Administration Console, this resource gets added under the Resources > JMS Resources > Connection Factories node. When you click on this entry, a java.lang.NullPointerException is thrown.


The table listing of Connection Factories in the right frame of the Administration Console is correct. Use the table listing instead.

Install silent option does not store admin password input (18318)


The GlassFish Server installer provides an option to create a silent file that records all user choices and is only supported in the Typical scenario. This silent file can later be used to perform installation without user interaction.

The generated silent file does not contain any passwords. If this file is used for running automated silent installation, the created GlassFish Server domain provides an unauthenticated login mechanism.


Use interactive installation if you want the GlassFish Server domain to require passwords.

Appclient appending an extra $ and \r for arguments passed (18332)


When you try to run an application client on Windows with cygwin, the application client is appending extra characters to the arguments. For example, for a simple parameter 3, it is sending $'3\r'.


Depending on how your application client handles command-line arguments, you might be able to work around this problem without changing your application client by adding an extra command-line argument. For example, instead of entering this command:

appclient -jar mydir/MyClient.jar 3

You could enter this command:

appclient -jar mydir/MyClient.jar 3 extra

This adds the trailing \r to the last argument, extra, protecting the previous ones. Note that this does not work if your application client handles all the arguments on the line in some way.

Another workaround is to modify your application client to use String.trim on the arguments, or at least the last one, which removes any trailing \r character.

Custom installation crashes when "Configure an existing installation" selected (17269)


GlassFish Server installation crashes if you perform these steps:

  1. Select Custom Installation on the Installation Type page and then Next.

  2. Select Install Only on the Installation page and then Next.

  3. Select Back on the Install Directory page.

  4. Select Configure an Existing Installation on the Installation page and Next.

  5. Select Next on the Install Directory page.


To configure an existing installation, go directly to this option without selecting a different option first.

SocketException While Starting Cluster with Coherence on AIX (13704617)


The Coherence JPA tests with TopLink Grid failed to insert an entity on AIX with the following error:

The socket name is not available on this system


Define a JVM property that specifies use of an IPV4 stack as follows:

asadmin create-jvm-options --target cluster-name -java.net.preferIPv4Stack=true

Unable to set a value on the lb config's rewrite-location property when using jdk 1.7.0_03 (18368)


If the JDK version is 1.7.0_03 and you attempt to set the rewrite-location load balancer property using the asadmin set command, the command fails.


Set the rewrite-location property by editing the loadbalancer.xml file, located in the web-server-install/https-machine-name/conf directory.

Plain file in INSTALL_ROOT causes install-node to fail (18645)


If a plain file exists in the installation parent directory, for example glassfish3 based on the glassfish.zip distribution, then the install-node command fails with a NullPointerException.

Because the GlassFish installer leaves two files in the installation parent directory (uninstall.exe, uninstall.sh), the install-node command can only be used with installations created using the glassfish.zip distribution.


Do one of the following:

  • Remove any plain files from the installation parent directory before using the install-node command.

  • Install the software manually on the remote node and do not use the install-node command.

Incorrect Maximum Allowed Value for the --multicastport Option in the create-cluster(1) and validate-multicast(1) Help Pages

In GlassFish Server 3.1.2, the maximum allowed value of the --multicastport option of the create-cluster subcommand and the validate-multicast subcommand is increased from 32000 to 49151. The description of the --multicastport option in the following help pages incorrectly states the old value:

Disabling Group Search in LDAP User Name Search


By default, GlassFish Server performs LDAP group search. If you have not created any groups in LDAP, the search fails.


To disable LDAP group search, set the com.oracle.enterprise.security.auth.realm.ldap.DISABLEGROUP_SEARCH Java system property to true in the required GlassFish Server instance or cluster configurations:

asadmin> create-jvm-options --target=target

where target is the GlassFish Server instance or cluster for which you are disabling LDAP group search.

ORB Tuning: Limiting the Maximum Number of Client Connections

You can specify the total maximum number of client connections on all ORB listener ports (TCP, SSL and SSL with mutual authentication). When open client connections exceed the maximum value you specify, the ORB rejects any new incoming client connections.

Set this value to support the expected number of simultaneous client connections, but not to exceed the VM or system file descriptor limits. If the value is set too high, the ORB will continue accepting new client connections, resulting in a "too many open files" error if the VM runs out of file descriptors.

To specify the maximum number of client connections, set the configs.config.config-name.iiop-service.orb.max-connections attribute to the number that you require:

asadmin> set configs.config.config-name.iiop-service.orb.max-connections=max-connections 

The name of the configuration in which the IIOP service is defined. For example, server-config is the name for the configuration of the domain administration server (DAS).


An integer that specifies the maximum number of client connections.

For updates to this value to take effect, restart GlassFish Server.

The following example shows how to set the maximum number of client connections for the ORB in the DAS to 512:

asadmin> set configs.config.server-config.iiop-service.orb.max-connections=512
Command set executed successfully.

Chunking Support Added to GlassFish Load Balancer Plug-In

By default, Oracle iPlanet Web Server unchunks the data it receives. However, when you try to upload a large file that cannot fit in the memory, Web Server fails to unchunk the data.

In GlassFish Server, Web Server can send requests from the client to the load balancer plug-in. The load balancer plug-in handles the chunked data by forwarding data to the GlassFish Server instance until the end of the chunk is reached. GlassFish Server does not return a response until the last chunk is sent from the plug-in. Once GlassFish Server receives the last chunk, it sends the response to the plug-in, which then sends the response back to Web Server.

To enable chunking:

  1. In Oracle iPlanet Web Server, navigate to Home > Configuration > your_instance > Performance > Maximum Unchunk Size.

  2. Set this value to 0.

The default value is 8192. If this value is set to 8192, Web Server will perform unchunking as the default behavior and any attempt to upload or send large files will fail. By setting this value to 0, you enable chunking.

Documentation Missing for Disabling JReplica Cookies

In GlassFish Server 3.1.2, a new attribute added to the web-container-availability element allows you to explicitly turn off JReplica cookies.

To turn off JReplica cookies, set the cluster-name.availability-service.web-container-availability.disable-jreplica attribute to true:

asadmin set

where cluster-name is the name of the targeted cluster (for example, cluster1).

To enable this change, restart the server instance.

Incorrect Closed Network Patch Numbers Listed in the GlassFish Server 3.1.x Documentation

In the GlassFish Server 3.1.x documentation, the list of patch numbers is incorrect in "To Configure a Local Repository Inside a Closed Network" in Oracle GlassFish Server Administration Guide.

The correct patch numbers for GlassFish Server 3.1.x are:

Operating System Patch ID
Solaris-sparc 147902
Solaris-i386 147903
Linux-i386 147904
AIX 147905
Mac OS 147906
Windows-i386 147907

Error in the Instructions for Upgrading from GlassFish Server 3.1 or 3.1.1 to 3.1.2

When performing an upgrade from GlassFish Server 3.1. or 3.1.1 to 3.1.2, do not run the following step:

"Upgrade the domain by running the asadmin start-domain --upgrade subcommand. This performs the upgrade and then shuts down the DAS."

The --upgrade subcommand is required only for upgrades from GlassFish Server 3.0.x to 3.1.x. It is not required for an upgrade from GlassFish Server 3.1 or 3.1.1 to 3.1.2 because GlassFish Server 3.1.2 domain configuration is backward compatible with 3.1. and 3.1.1. If you run this step after updating to 3.1.2 from 3.1 or 3.1.1, you may receive an exception when logging in to the Administration Console.

Therefore, use the --upgrade subcommand only for upgrades from GlassFish Server 3.0.x to 3.1.x. Run the asadmin start-domain command without the --upgrade subcommand when upgrading from 3.1 or 3.1.1 to 3.1.2.

This step is currently listed in the following sections of Oracle GlassFish Server Upgrade Guide:

Upgrade Fails from GlassFish Server to


An update of all the components in a GlassFish Server image to GlassFish Server fails.


Uninstall the following packages for the affected installation, in the following order:

  1. glassfish-enterprise-web-profile

  2. oracle-glassfish-web-incorporation

For instructions, see "To Uninstall an Installed Component" in the Oracle GlassFish Server Administration Guide.

Then, update all the packages in the GlassFish Server image. For instructions, see "To Update All Installed Components in an Image" in the Oracle GlassFish Server Administration Guide.

Patch Upgrade for GlassFish Server 3.1.2

After upgrading the Image Packaging System (IPS), ensure that all instances and servers are stopped. Then remove the OSGi cache from all instances and the DAS to ensure that the patch upgrade uses the latest binaries.

Misleading Documentation for the Auto Apply Feature of the Load Balancer Plug-In

The documentation for the Auto Apply feature in the following sections of the Oracle GlassFish Server High Availability Administration Guide is misleading:

Saving changes to the Load Balancer configuration does not automatically propagate the changes to the web server configuration directory. You must manually select the "Apply Changes Now" option in the Administration Console or use the apply-http-lib-changes subcommand from the command line to propagate configuration changes to the loadbalancer.xml file in the web server configuration directory. Configuration changes are then propagated to the Load Balancer Plug-In, without having to export and manually copy the loadbalancer.xml file to the web server tier.

Errors and Omissions in the configure-ldap-for-admin Help Page

The configure-ldap-for-admin help page has the following issues:

  • The Synopsis and Options sections omit the --basedn, --url, and --ldap-group options.

    The correct synopsis of this subcommand is as follows:

    configure-ldap-for-admin --basedn basedn [--url url] [--ldap-group ldap-group] [--help]

  • The following statements in the Description section are misleading and should be removed: "The configure-ldap-for-admin subcommand is interactive. The subcommand prompts the user for the basedn and ldap-group options."

  • The following options and descriptions should be included in the Options section:


    Specifies the LDAP base Distinguished Name (DN) for the location of user data. This base DN can be at any level above the user data, since a tree scope search is performed. The smaller the search tree, the better the performance.


    Specifies the URL and port number for the LDAP server. The URL can use standard (ldap) or secure (ldaps) protocol.


    Specifies the LDAP group name for allowed users, as defined on the LDAP server.

  • The example in the Examples section should be replaced with the following example that includes the options required to prevent the subcommand from prompting for missing information:

    asadmin configure-ldap-for-admin --basedn "dc=red,dc=example,dc=com" \
    --url ldap://examplehost:3060 --ldap-group staticldapgroup

Service for the DAS or a GlassFish Server Instance Does Not Start

The create-service subcommand configures the starting of a domain administration server (DAS) or a GlassFish Server instance on an unattended boot on Windows, Linux, and Oracle Solaris systems. If the service does not start, ensure that you have provided the required security credentials.

You can use the --user option and the --passwordfile option of the asadmin(1M) utility to specify the credentials that are required to start the service. The password file entry must be of the form AS_ADMIN_PASSWORD=admin-password. If you omit these options, you must provide the required credentials by some other means, such as setting the AS_ADMIN_PASSWORDFILE environment variable or running the asadmin login command. Otherwise, the service will not start.

Master Password and Truststore Password Must be the Same


GlassFish Server does not start in SSL mode after the truststore password is changed.


Do not change the GlassFish Server truststore password independently of the master password. These passwords are the same.

Documentation Incorrect for Setting Up Transaction Recovery

Oracle Setup for Transaction Recovery in Oracle GlassFish Server Administration Guide incorrectly identifies the user as the database administrator. However, the user is the user configured in the properties of the JDBC connection pool.

Additionally, the statement grant execute on SYS.DBMS_SYSTEM to user is required only for Oracle 10.2.0.x databases to which patch 5945463 has not been applied. For Oracle 10.2.x databases to which this patch is applied and Oracle 11g or later databases, the statement grant execute on SYS.DBMS_XA to user is required.

Expired Root CA for CN=GTE CyberTrust Root 5, OU=GTE CyberTrust Solutions, Inc.


During startup of a GlassFish Server instance, an expired certificate is reported in the instance's server.log log file as follows:

The "GTE CyberTrust Root 5" certificate expired on August 15th 2013 

The log file shows the validity of the certificate as follows:

Subject: CN=GTE CyberTrust Root 5, OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US
Validity: [From: Fri Aug 14 15:50:00 BST 1998,
  To: Thu Aug 15 00:59:00 BST 2013]


The workaround depends on whether the instance is configured to use a server SSL certificate that uses this certificate as part of its trust path.

  • If the instance is not configured this way, ignore the warning. The functionality of the instance is unaffected.

    If no server certificate has been signed by GTE CyberTrust Root 5 certificate, delete the certificate from the truststore. For instructions, see To Delete the GTE CyberTrust Root 5 Certificate From The Truststore.


    In the latest releases of Java SE 6 and Java SE 7, this certificate is no longer present by default. The only GTE certificate has the alias gtecybertrustglobalca and does not expire until August 2018.
  • Otherwise, contact the issuing certificate authority (CA) to resolve the issue.

    The CA will either reissue the certificate with an up to date or alternate root certificate or will provide an updated certificate to install in the truststore.

    To determine that the new certificate is correct, confirm that the issuer's subject is as follows:

    CN=GTE CyberTrust Global Root, OU="GTE CyberTrust Solutions, Inc."

To Delete the GTE CyberTrust Root 5 Certificate From The Truststore

  1. Back up the existing certificate database file in the domain's configuration directory.

    1. Change to the domain's config directory.

      prompt% cd domain-dir/config
    2. Copy the certificate database file cacerts.jks.

  2. Delete the gtecybertrust5ca certificate from the certificate database.

    prompt% keytool -delete -alias gtecybertrust5ca -keystore cacerts.jks

    When prompted, provide the master password of the domain.

  3. If additional domains are to be created from the existing GlassFish Server installation, delete the expired certificate from the template keystores.

    Deleting the expired certificate prevents the certificate from being propagated to new domains.

    1. Back up the existing template keystores.

      i. Change to the templates directory of your GlassFish Server installation.

      prompt% cd as-install/lib/install/templates

      ii. Copy the cacerts.jks file.

    2. Delete the gtecybertrust5ca certificate from the template keystore.

      prompt% keytool -delete -alias gtecybertrust5ca -keystore cacerts.jks

      When prompted, provide the master password of the domain.

  4. Restart the domain and any GlassFish Server instances or clusters.

Documentation Incorrect for Default Keypoint Interval Value

"Keypoint Interval" in Oracle GlassFish Server Performance Tuning Guide incorrectly lists the default keypoint interval value as 2048. The correct default value is 65536.

Addition of Capability to Process JDBC Resource Properties Configuration

GlassFish now provides the capability to add a set of properties that are provider specific. You can set these properties using the following:

<property name="ConnectionProperties" value="( (key=value)+  )">

The following is an example of how to set the properties using asadmin:

asadmin set domain.resources.jdbc-connection-pool.my-con-pool.property.properties_1=((prop1=modval1),(prop2=val2))

System Property Added For IIOP/SSL Connections

The following system property was added for IIOP/SSL connections:


Changes to JDK 1.7.0_51's java.policy File

The following permissions need to be added to the java.policy file for JDK 1.7.0_51 to avoid Derby and TxDerby startup failure:

permission java.net.SocketPermission "localhost:1527", "listen";
permission java.net.SocketPermission "localhost:1530", "listen";

This change is required for JDK versions 1.7.0_51 and above.

IPS Online Upgrade No Longer Available


GlassFish Server software upgrade from external, online Image Packaging System (IPS) repositories is no longer available.


Upgrade GlassFish Server software only by following the procedure for extending and updating GlassFish Server inside a closed network. For more information, see "Extending and Updating GlassFish Server Inside a Closed Network" in the Oracle GlassFish Server Administration Guide.

Error Related to Secure Admin Setup Occurs When Upgrading GlassFish Server


The issue occurs when upgrading GlassFish Server version 2.1.1 to version 3.1.2. An error is seen when running the following command: ./asadmin start-domain --upgrade domain1. The following error is displayed after this command is entered: SEVERE:Error upgrading secure admin set-up.


To avoid this error, make the configuration changes listed below in the domain.xml file located in <GF_HOME>/domains/<dominName>/config before running the upgrade command.

  1. Set the security-enabled attribute of admin-listener to false. For example:

    <http-listener acceptor-threads="1" address="ip" blocking-enabled="false" default-virtual-server="__asadmin" enabled="true" family="inet" id="admin-listener" port="portnumber" security-enabled="false" server-name="" xpowered-by="true">
  2. Set the security-enabled attribute of admin-service, jmx-connector, to false. For example:

    <admin-service system-jmx-connector-name="system" type="das-and-server"> <jmx-connector accept-all="false" address="" auth-realm-name="admin-realm" enabled="true" name="system" port="8686" protocol="rmi_jrmp" security-enabled="false">

Use Latest JDK Versions with GlassFish Server

ConcurrentModificationExceptions occur with JSF applications on top of GlassFish Server Use the latest JDK versions to avoid this issue. The recommended JDK versions are JDK 6u91 and above or JDK 7u75 and above.

Restrictions and Deprecated Functionality

This section describes restrictions and deprecated functionality in Oracle GlassFish Server 3.1.2.

The following topics are addressed here:

Node Agent Support

GlassFish Server 3.1.2 does not support node agents. When updating from installations of earlier product versions in which node agents were configured, the cluster definitions will be migrated, but the clustered instances themselves must be manually recreated. See "Upgrading Clusters and Node Agent Configurations" in Oracle GlassFish Server Upgrade Guide for more information.

HADB and hadbm Command Support

GlassFish Server 3.1.2 does not support HADB or the hadbm management command.

Instead of HADB, GlassFish Server 3.1.2 supports high availability clustering by means of in-memory session state replication and Active Cache for GlassFish. See "High Availability in GlassFish Server" in Oracle GlassFish Server High Availability Administration Guide for more information.

asadmin Subcommands

In GlassFish Server 3.1.2, it is recommended that utility options of the asadmin command precede the subcommand. Utility options are options that control the behavior of the asadmin utility, as distinguished from subcommand options. Use of the following options after the subcommand is deprecated.

  • --host

  • --port

  • --user

  • --passwordfile

  • --terse

  • --secure

  • --echo

  • --interactive

Deprecated, Unsupported, and Obsolete Options

Options in Table 1-4 are deprecated or no longer supported, or are obsolete and are ignored.

Table 1-4 Deprecated, Unsupported, and Obsolete Options for asadmin and Subcommands

Option Affected Subcommands


Unsupported for the create-virtual-server subcommand.


Unsupported for the create-virtual-server subcommand.


Unsupported for all relevant subcommands. Use --passwordfile instead.


Obsolete for the create-http-lb subcommand.


Obsolete for the create-cluster subcommand.


Obsolete for the start-cluster subcommand and the stop-cluster subcommand


Unsupported for the create-http-listener subcommand.


Unsupported for the create-virtual-server subcommand.


Unsupported for the create-virtual-server subcommand.


Deprecated for the create-http-listener subcommand. Use --default-virtual-server instead.


Obsolete for the restore-domain subcommand.


Obsolete for the create-cluster subcommand.


Obsolete for the create-cluster subcommand.


Obsolete for the create-cluster subcommand.


Obsolete for the create-cluster subcommand.


Obsolete for the create-cluster subcommand.


Obsolete for the create-cluster subcommand.


Replaced by the all lowercase option --ignoredescriptoritem in the set-web-context-param subcommand and the set-web-env-entry subcommand.


Unsupported for the create-virtual-server subcommand.


Unsupported for all remote subcommands. Use --passwordfile instead.


Unsupported for the create-domain subcommand. Use --domaindir instead.


Obsolete only for the create-cluster subcommand. This option is still valid in other subcommands such as create-domain, create-instance, and create-local-instance.


Unsupported for all relevant subcommands. Use --restype instead.


Obsolete for the export-http-lb-config subcommand.


Obsolete for the start-instance subcommand.


Obsolete only for the following subcommands:

  • create-connector-connection-pool

  • create-resource-adapter-config

  • delete-connector-connection-pool

  • delete-connector-security-map

  • delete-jdbc-connection-pool

  • delete-resource-ref

Replaced by an operand in the list-custom-resources subcommand and the list-jndi-entries subcommand:

Applications That Use Java DB

The directory location of Java DB in GlassFish Server 3.1.2 has changed from its location in previous installations. Suppose that you have deployed applications that use Java DB databases in your previous server installation, and you upgrade your existing installation to GlassFish Server 3.1.2. If you run the asadmin start-database command and successfully start Java DB, you could run into problems while trying to run applications that were deployed on your previous server installation.

To solve this problem, you can copy the databases directory from your previous installation to as-install/databases. Make sure the database is not running when you do this.

Alternatively, you can perform these steps:

  1. Use the asadmin start-database command with the --dbhome option pointing to the databases directory in the older version of Java DB. For example:

    asadmin start-database --dbhome c:\glassfish\databases
  2. After upgrade, start GlassFish Server 3.1.2.

No Support for Client VM on Windows AMD64

By default, the GlassFish Server DAS uses the Client VM to achieve best startup and deployment performance. If you are using Windows AMD64, edit the domain.xml file to remove the line <jvm-options>-client<jvm-options>. In this case, JVM ergonomics chooses the appropriate kind of VM for the given platform. Note that server instances use the Server VM by default.

For more information about platform support, see Ergonomics in the 5.0 Java Virtual Machine ().

Metro Reliable Messaging in InOrder Delivery Mode

The Metro Reliable Messaging in InOrder Delivery mode has not been tested for high availability in GlassFish Server 3.1.2. The feature may work, but it has not been formally tested and is therefore not a supported feature.

No Support for Kerberos on AIX

GlassFish Server 3.1.2 does not support Kerberos on the AIX platform.

For the complete report about this issue, see GLASSFISH-16728 ().

Persistence of EJB References in HTTP Sessions Not Supported for Coherence*Web

GlassFish Server and Coherence*Web serialize EJB references differently. Therefore, GlassFish Server 3.1.2 does not support persistence of EJB references in HTTP sessions when Coherence*Web is the persistence type.

Features Available Only in the Full Platform Profile

The following features of GlassFish Server 3.1.2 are available only in the Full Platform Profile:

  • EJB features that make up the full EJB 3.1 API, such as remote EJB components, message-driven beans, web service EJB endpoints, and the EJB Timer Service

    The EJB 3.1 Lite specification is supported in the Web Profile. This specification allows enterprise beans within web applications and includes support for local stateless session beans, stateful session beans, and singleton session beans.

  • Application Client Container

  • JMS resources

  • Web services

    In the Web Profile, a servlet or EJB component cannot be a web service endpoint. The sun-web.xml and sun-ejb-jar.xml elements that are related to web services are ignored.

  • Message security

  • JavaMail resources

Connector modules that use only outbound communication features and work-management that does not involve inbound communication features are supported in the Web Profile. Other connector features are supported only in the Full Platform Profile.

Java EE 6 Standards Support

Table 1-5 lists the Java EE 6 standards implemented in GlassFish Server 3.1.2. The table also indicates the distributions in which the implementation of a standard is available.

  • X indicates that the implementation is available in the distribution.

  • - indicates that the implementation is not available in the distribution.

Table 1-5 Java EE 6 Standards Implementations in GlassFish Server 3.1.2

Java EE Standard Java Specification Request (JSR) GlassFish Server 3.1.2 Full Platform Profile GlassFish Server 3.1.2 Web Profile

Java Platform, Enterprise Edition 6

JSR 316



Java Servlet Technology 3.0

JSR 315



JavaServer Pages 2.2

JSR 245



Expression Language 2.2

JSR 245



Debugging Support for Other Languages 1.0

JSR 45



Standard Tag Library for JavaServer Pages 1.2

JSR 52



JavaServer Faces 2.1

JSR 314



Common Annotations for the Java Platform 1.1

JSR 250



Java Transaction API 1.1

JSR 907



Java Persistence API 2.0

JSR 317



Enterprise JavaBeans 3.1 Lite

JSR 318



Managed Beans 1.0

JSR 316



Interceptors 1.1

JSR 318



Dependency Injection for Java 1.0

JSR 330



Enterprise JavaBeans 3.1 Full API

JSR 318



Contexts and Dependency Injection for Java EE 1.0

JSR 299



Java API for RESTful Web Service (JAX-RS) 1.1

JSR 311



Bean Validation 1.0

JSR 303



Java EE Connector Architecture 1.6

JSR 322



Java API for XML-Based Web Services (JAX-WS) 2.2

JSR 224



Java Architecture for XML Binding (JAXB) 2.2

JSR 222



Implementing Enterprise Web Services 1.3

JSR 109



Web Services Metadata for the Java Platform 2.1

JSR 181



Java Message Service API 1.1

JSR 914



JavaMail 1.4

JSR 919



Java Authorization Contract for Containers 1.4

JSR 115



Java Authentication Service Provider Interface for Containers 1.1

JSR 196



Java EE Application Deployment 1.2

JSR 88



J2EE Management 1.1

JSR 77



Java API for XML-Based Remote Procedure Calls (JAX-RPC) 1.1

JSR 101



Java API for XML-Based Registries (JAXR) 1.0

JSR 93



* Standalone Connector 1.6 Container only.

Building on these standards, GlassFish Server 3.1.2 provides a number of extensions, including the following:

  • Ajax (asynchronous JavaScript and XML): Retrieves and displays new data for a portion of a web page without affecting the rest of the page.

  • Metro: A web services stack that implements Java Architecture for XML Binding (JAXB) and Java APIs for XML Web Services 2.1 (JAX-WS 2.1).

  • Grizzly: A framework for building scalable and robust servers using New I/O (NIO) APIs, which make scaling to thousands of users possible. The ability to embed components that support HTTP, Bayeux Protocol, Java Servlet API, and Comet is provided.

Java EE 6 SDK

GlassFish Server 3.1.2 is available as part of the Java EE 6 SDK. The following versions of the Java EE 6 SDK are available:

  • Java EE 6 SDK: This version includes GlassFish Server 3.1.2. This version is designed for developers who require the full set of Java EE APIs for enterprise application development.

  • Java EE 6 Web Profile SDK: This version includes GlassFish Server 3.1.2 Web Profile. This version contains web technologies that are subset of the Full Platform Profile and is designed for developers who do not require the full set of Java EE APIs.

More information about the Java EE 6 SDK distributions are available at Java EE Reference at a Glance (). Java EE 6 SDK distributions are available from the Java EE 6 SDK downloads page ().

How to Report Problems and Provide Feedback

If you have problems with GlassFish Server 3.1.2, provide feedback through one of the following mechanisms:

Additional Resources

Useful information can be found at the following locations: