1. Oracle GlassFish Server 3.1-3.1.1 Release Notes
What's New in the GlassFish Server 3.1.1 Release?
Environment and Component Changes
Expanded Loadbalancer Plug-In Support of Web Servers
New asadmin Subcommands for Secure Admin
What's New in the GlassFish Server 3.1 Release?
GlassFish Server 3.1 Productivity Benefits
Flexible, Extensible, and Customizable
Enhancing Developer Productivity
Oracle GlassFish Server and Oracle Fusion Middleware
Extending Java EE 6 with Clustering
Hardware and Software Requirements
Supported Platforms, JDK Versions, Browsers, mod_jk, and JDBC Drivers and Databases
Message Queue Broker Requirements
Paths and Environment Settings for the JDK Software
Set the JAVA_HOME Environment Variable
Set Other Environment Variables As Necessary
Known Issues in GlassFish Server 3.1.1
restart-instance takes a long time on Solaris 11 (sun.security.pkcs11.SunPKCS11) (15537)
Accept multiple certs for admin authentication (16437)
tcp-no-delay attribute in Http is not working (16902)
Invoking GF installer on AIX 6.1 with JDK6 64 bit gives Warning (16667)
(JDK) NLS: Crashed when tried to install the bundle in ko locale (16699)
PKG_CLIENT_READ_TIMEOUT is too small (16999)
Unable to set -server JVM options (16770)
cannot remote deploy large wars (15773)
Fail to install the bundle named with -jdk7 when unset JAVA_HOME in solaris 11 Express x86 (16698)
Non-persistent timers are incorrectly canceled in a clustered environment (17060)
asadmin timeout from HA short execution on AIX (16960)
Unable to restart Embedded GlassFish Server instance once a remote EJB is deployed (16916)
EJB Timer Service is not loaded correctly after Embedded GlassFish Server restart (16230)
Switching log levels persistently breaks logging service (17037)
Stopping Embedded GlassFish Server leaves several daemon threads running (11088)
Administration Guide on Patching in a Closed Network Incorrectly Lists 3.0.1 Patches (13422800)
Embedded EJB container returns null reference when META-INF/beans.xml is in the classpath (16285)
Known Issues in GlassFish Server 3.1
[OWSM] Interop Metro-WLS:NPE WSSECURTIYTOKEN NULL for WSSE:SECURITYTOKENREFERENCE (Issue 9716247)
[JDK_Issue] Performance degradation caused by invoking setSoLinger or setReuseAddress (Issue 7109)
[JDK_Issue] IO exception: invalid argument during longevity test (Issue 7529)
File permissions on domain /applications directory can cause NullProcessException (Issue 6545)
[Open Installer] Option -l to relocate log files ignored on Windows (Issue 10693)
Issues occur with ZIP distribution if UAC enabled on Windows Vista (Issue 10755)
[Open Installer] Start menus not displayed and then empty on Windows Vista (Issue 5087)
Standalone Update Tool fails with segmentation fault on Solaris (Issue 11222)
Problems debugging JPA (Issue 11274)
Windows startup menu shows single entry on multiple installation of Glassfish 3.1 (7002744)
Critical JRockit Issues (7020176)
New Grizzly integration required for http://java.net/jira/browse/GRIZZLY-970 (15909)
ReleaseNotes: document Restart Required issues (Umbrella issue 16040)
[UB]org.osgi.framework.BundleException during shutdown after upgrade (15441)
Update coordinates failure with enable-security-admin (7017384)
Man page for list-supported-cipher-suites (15998)
lazy-init attribute missing from admin console Edit IIOP Listener page (15975)
RMIConnectorStarter constructs invalid URLs with a literal IPv6 address (15937)
man-page-review umbrella issue (15929)
[UB]Release note security permissions required for CDI applications (15456)
build 40 : list-jmsdest for cluster1 not working, it just hangs
Create Resource Adapter Config is throwing an exception if JMS is already started (15571)
Domain.xml: setting protocol.http-listener-1.http.max-connections set in 1 or -1 (16025)
[UB][regression] jpaRLCreateEMF failure on sybase (15763)
Admin Console: intermittent Blank Screen (15633)
Caching JMS session in a session bean causes errors when invoked by a MDB when under load (15558)
Domain fails to stop after console loaded (with secure admin enabled) (15482)
Modifying keyfile path in a newly created config does not properly list the users (15429)
[BigApps] [STRESS] ~17 occurences of "EOFException" warnings coming from JMS (15424)
Mysql ping fails when additional properties are not deleted (14547)
If TS resource had been changed, tables are not created after server restart (13873)
GlassFish/Grizzly not able to accept new request if a remote client hangs (6963818)
restore-domain from a config only backup will corrupt the domain directory (7026114)
JSF PhaseListener executed for each virtual host (15809)
could not find Factory: javax.faces.context.FacesContextFactory (16061)
NullPointerException when accessing OSGi web application (15985)
GlassFish installer needs to prompt user to set MQ admin password (12305750)
Known Issues in GlassFish Server 3.1 Fixed in 3.1.1
Win. Deployment with contextroot: Application [] contains no valid components (13774)
[UB]Accessing encoded URLS throws 403: Forbidden (15709)
Glassfish Installer does not update MQ config file (imqenv.conf) with values (15724)
Remote EJBs fail with ClassCastException in embeddable GlassFish (15775)
Column APPLICATIONID is missing from bundled SQL scripts for EJB timer table creation. (15986)
create-jvm-options subcommand options incorrectly parsed by asadmin (16037)
appclient in cygwin passing extra empty string (16044)
3.1 GlassFish installer takes longer to bootstrap Update Center than in 3.0.1 (16067)
On Windows the first time pkg.bat or updatetool.bat is run they may echo garbage (16094)
Admin GUI hangs on first access after installation on some Solaris Server Hardware. (16153)
asupgrade Fails Without Internet Connection (16159)
Application info page: status not shown correctly and virtual servers changes not saved (16048)
Log Viewer: details garbled after navigating to earlier records, exception in server.log (16029)
Firefox 4.0 does not work for the Admin Console Targeting dialogs (16385)
@DSD defined in EJBs bundled in a .war is not available for JPA during prepare() phase (15865)
Restrictions and Deprecated Functionality
HADB and hadbm Command Support
Deprecated, Unsupported, and Obsolete Options
No Support for Client VM on Windows AMD64
Metro Reliable Messaging in InOrder Delivery Mode
No Support for Kerberos on AIX
Update Center Client Limitations on AIX Platform
Persistence of EJB References in HTTP Sessions Not Supported for Coherence*Web
GlassFish Server Documentation Set
Features Available Only in the Full Platform Profile
How to Report Problems and Provide Feedback
This section describes known issues and any available workarounds for Oracle GlassFish Server 3.1 and 3.1.1 software.
These known issues and workarounds are divided into these sections:
Issues in GlassFish Server 3.1.1 also apply to GlassFish Server 3.1 unless otherwise stated.
The following topics are addressed here:
restart-instance takes a long time on Solaris 11 (sun.security.pkcs11.SunPKCS11) (15537)
Invoking GF installer on AIX 6.1 with JDK6 64 bit gives Warning (16667)
(JDK) NLS: Crashed when tried to install the bundle in ko locale (16699)
Fail to install the bundle named with -jdk7 when unset JAVA_HOME in solaris 11 Express x86 (16698)
Non-persistent timers are incorrectly canceled in a clustered environment (17060)
Unable to restart Embedded GlassFish Server instance once a remote EJB is deployed (16916)
EJB Timer Service is not loaded correctly after Embedded GlassFish Server restart (16230)
Switching log levels persistently breaks logging service (17037)
Stopping Embedded GlassFish Server leaves several daemon threads running (11088)
Administration Guide on Patching in a Closed Network Incorrectly Lists 3.0.1 Patches (13422800)
Embedded EJB container returns null reference when META-INF/beans.xml is in the classpath (16285)
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.
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.1.
However, GlassFish Server 3.1.1 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.1 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.1 automatically begins using the better algorithm from that point on.
For the complete report about this issue, see GLASSFISH-16437.
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.
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.
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.
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
GlassFish Server misinterprets the following command:
asadmin> create-jvm-options -server
The command is interpreted as if the following command had been entered, using the short options for --secure and --echo:
asadmin> create-jvm-options -se
To specify a JVM option that could be mistaken for one or more asadmin command short options, use a double dash before the JVM option. For example:
asadmin> create-jvm-options -- -server
This double dash tells the asadmin command to stop parsing its own short options and start parsing subcommand options.
Note - 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.
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 username 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:
org.glassfish.admin.DASCheckAdminCert
This does not disable username 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:
Enable secure admin for the domain.
Enable admin request SSL client certificate support as just described.
Use an administration client that is not configured to send an SSL client certificate for authentication.
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.
The following exception may occur occasionally when the web container tries to clean up expired sessions. This is due to a bug in the IBM JDK.
java.lang.ArrayIndexOutOfBoundsException at java.util.AbstractCollection.toArray(AbstractCollection.java:353) at org.apache.catalina.session.ManagerBase.findSessions(ManagerBase.java:907) at org.apache.catalina.session.PersistentManagerBase.processExpires(PersistentManagerBase.java:602)
A support ticket has been filed with IBM (PMR# 79545,756,000) but no fix is yet available.
None. If the above exception occurs, the expired sessions are cleaned up when the method PersistentManagerBase.processExpires is called again later. The application continues to work.
The java_ee_sdk-6u3-b05-jdk7-solaris-x86-ml.sh bundle is not installed if the JAVA_HOME or PATH environment variable is not set properly.
Do one of the following:
Add /usr/jdk/instances/jdk1.6.0/bin, the actual JDK installation location, to the PATH.
Add the directory for a stand-alone JDK installation to the PATH.
Set JAVA_HOME to /usr/jdk/instances/jdk1.6.0.
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.
If you attempt to create a non-persistent timer (through TimerService or the @Schedule annotation) and deploy it to a clustered environment, the timer is canceled before the first time it is run. GlassFish Server looks at the database to see if the timer is there, doesn't see it, and then cancels it. Non-persistent timers aren't stored in the database, so the canceling shouldn't happen.
Add the system property com.sun.ejb.timer.ReadDBBeforeTimeout=false to stop GlassFish Server from checking the database before running the timer.
Caution - This might have negative ramifications if the cluster also contains persistent timers. |
During High Availability testing on AIX, the Domain Admin Server (DAS) freezes and requires a complete restart.
An IBM patch can be downloaded from https://www-304.ibm.com/support/docview.wss?uid=isg1fixinfo117990.
Upgrading from ogs-3.1-windows-ml.exe to ogs-3.1.1-b05-windows-ml.exe in Windows 7 x86 may produce the error, Unsupported Upgrade Path.
Convert the domain.xml file to native encoding before upgrading. Follow these steps:
Back up the domain.xml file.
Run the following commands:
native2ascii domain.xml domain.xml.ascii native2ascii -reverse -encoding UTF-8 domain.xml.ascii domain.xml
Run the asupgrade command under c:\glassfish311\glassfish\bin\.
Run the following commands:
native2ascii -encoding UTF-8 domain.xml domain.xml.ascii native2ascii -reverse domain.xml.ascii domain.xml
Code that performs these steps fails with ORB and EJB container exceptions at the restart step:
Start embedded GlassFish Server.
Deploy a remote EJB application.
Undeploy the application.
Stop the server.
Restart the server.
Redeploy the application.
Perform these steps:
Start embedded GlassFish Server.
Deploy a remote EJB application.
Undeploy the application.
Stop the server using the dispose method.
Restart the host virtual machine (JVM).
Recreate the embedded GlassFish Server instance.
Redeploy the application.
Code that performs these steps fails at the redeploy step:
Start embedded GlassFish Server.
Deploy an application that uses the EJB Timer Service.
Undeploy the application.
Stop the server.
Restart the server.
Redeploy the application.
Perform these steps:
Start embedded GlassFish Server.
Deploy an application that uses the EJB Timer Service.
Undeploy the application.
Stop the server using the dispose method.
Restart the host virtual machine (JVM).
Recreate the embedded GlassFish Server instance.
Redeploy the application.
The list-secure-admin-principals and list-secure-admin-internal-users subcommands of asadmin both incorrectly prompt for a command operand.
Use the following commands instead:
asadmin get "secure-admin.secure-admin-principal.*" asadmin get "secure-admin.secure-admin-internal-user.*"
Changing log levels in the Administration Console causes logging to stop. This is because the level of the com.sun.enterprise.server.logging.GFFileHandler logger is changed to OFF.
Fix the com.sun.enterprise.server.logging.GFFileHandler logger level using the following command:
asadmin set-log-levels com.sun.enterprise.server.logging.GFFileHandler=ALL
Specify the --target option for a server instance other than the domain administration server (DAS).
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.
The list of patches in To Configure a Local Repository Server Inside a Closed Network in Oracle GlassFish Server 3.1 Administration Guide is outdated.
The correct list of patches should be:
|
A mismatch of ant.jar versions between GlassFish Server and NetBeans (or the junit classpath) can cause the embedded EJB container to fail with the following message:
SEVERE: Exception while loading the app : java.lang.IncompatibleClassChange Error: org.apache.tools.ant.listener.MailLogger and org.apache.tools.ant.listener.MailLogger$Values disagree on InnerClasses attribute com.google.common.collect.ComputationException: java.lang.IncompatibleClassChangeError: org.apache.tools.ant.listener.MailLogger and org.apache.tools.ant.listener.MailLogger$Values disagree on InnerClasses attribute at com.google.common.collect.ComputingConcurrentHashMap.compute(ComputingConcurrentHashMap.java:218)
Or the following warning:
"WARNING: multiple versions of ant detected in path for junit jar:file:/opt/netbeans-6.9.1/java/ant/lib/ant.jar!/org/apache/tools/ant/Project.class"
When running GlassFish Server in embedded mode, replace ant.jar (in as-install/modules) with the one from the junit classpath or NetBeans, or temporarily rename or remove this file. Restore this file to the original when running GlassFish Server in nonembedded mode.
The following topics are addressed here:
[OWSM] Interop Metro-WLS:NPE WSSECURTIYTOKEN NULL for WSSE:SECURITYTOKENREFERENCE (Issue 9716247)
[JDK_Issue] Performance degradation caused by invoking setSoLinger or setReuseAddress (Issue 7109)
[JDK_Issue] IO exception: invalid argument during longevity test (Issue 7529)
File permissions on domain /applications directory can cause NullProcessException (Issue 6545)
[Open Installer] Option -l to relocate log files ignored on Windows (Issue 10693)
Issues occur with ZIP distribution if UAC enabled on Windows Vista (Issue 10755)
[Open Installer] Start menus not displayed and then empty on Windows Vista (Issue 5087)
Standalone Update Tool fails with segmentation fault on Solaris (Issue 11222)
Windows startup menu shows single entry on multiple installation of Glassfish 3.1 (7002744)
New Grizzly integration required for http://java.net/jira/browse/GRIZZLY-970 (15909)
ReleaseNotes: document Restart Required issues (Umbrella issue 16040)
[UB]org.osgi.framework.BundleException during shutdown after upgrade (15441)
Update coordinates failure with enable-security-admin (7017384)
lazy-init attribute missing from admin console Edit IIOP Listener page (15975)
RMIConnectorStarter constructs invalid URLs with a literal IPv6 address (15937)
[UB]Release note security permissions required for CDI applications (15456)
build 40 : list-jmsdest for cluster1 not working, it just hangs
Create Resource Adapter Config is throwing an exception if JMS is already started (15571)
Domain.xml: setting protocol.http-listener-1.http.max-connections set in 1 or -1 (16025)
Caching JMS session in a session bean causes errors when invoked by a MDB when under load (15558)
Domain fails to stop after console loaded (with secure admin enabled) (15482)
Modifying keyfile path in a newly created config does not properly list the users (15429)
[BigApps] [STRESS] ~17 occurences of "EOFException" warnings coming from JMS (15424)
Mysql ping fails when additional properties are not deleted (14547)
If TS resource had been changed, tables are not created after server restart (13873)
GlassFish/Grizzly not able to accept new request if a remote client hangs (6963818)
restore-domain from a config only backup will corrupt the domain directory (7026114)
could not find Factory: javax.faces.context.FacesContextFactory (16061)
NullPointerException when accessing OSGi web application (15985)
GlassFish installer needs to prompt user to set MQ admin password (12305750)
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 11.1.1.4.0. See the Oracle WebLogic product page for more information.
When the setSoLinger method or the setReuseAddess method is invoked, performance is degraded and the following exception is thrown:
[#|2009-01-26T00:33:56.325-0800|WARNING|sun-appserver9.1| javax.enterprise.system.container.web|_ThreadID=17; _ThreadName=SelectorReaderThread-8084; _RequestID=11ae0030-c392-4217-8408-cfa7efe0a879;|setSoLinger exception java.net.SocketException: Invalid argument
This issue is caused by an issue with the JDK software. This issue is resolved in JDK version 7.
None.
For the complete report about this issue, see GLASSFISH–7109.
During an HTTP longevity test, the following exception is thrown 42 hours into the run:
[#|2009-04-05T17:41:26.537-0700|SEVERE|glassfish|javax.enterprise.system.core| _ThreadID=15;_ThreadName=Thread-1;|doSelect exception 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.
None.
For the complete report about this issue, see GLASSFISH–7529.
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.
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.
None.
For the complete report about this issue, see GLASSFISH–10693.
Some features will not work well on Windows 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.
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.
None.
For the complete report about this issue, see GLASSFISH–5087.
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.
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.
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.
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.
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.
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.
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.
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 3.1 Application Development Guide. The Java Optional Package Mechanism, which is documented in this guide, does what classpath-suffix used to do.
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.
There are two critical JRockit issues when running longevity tests (24x7) on GlassFish Server 3.1. The issues are documented at:
https://bug.oraclecorp.com/pls/bug/webbug_print.show?c_rptno=11070336
https://bug.oraclecorp.com/pls/bug/webbug_print.show?c_rptno=11070336
The GlassFish Server certification matrix has been updated and JRockit has been removed. However, the installer UI still has an image that mentions JRockit support as a new feature.
None JRockit is not supported on GlassFish Server 3.1.
There is a known security vulnerability with Grizzly when running Java Runtime Environment 6 versions prior to Update 24. See http://java.net/jira/browse/GRIZZLY-970 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 http://blogs.oracle.com/security/2011/02/security_alert_for_cve-2010-44.html.
For the complete report about this issue, see GLASSFISH-15909.
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 http://java.net/jira/secure/IssueNavigator.jspa?mode=hide&requestId=10358.
GLASSFISH-16100: Restart required for java mail session debug change, exception in server.log
GLASSFISH-16013: RestartRequired: 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
GLASSFISH-15987: Display Restart Required when a system-property which is referenced by a jvm-option is changed. This issue exists in GlassFish Server 3.1 but has been fixed in GlassFish Server 3.1.1.
Restart the DAS after performing any of the functions listed above.
For the complete report about this issue, see GLASSFISH-16040.
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.
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).
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.
None. This is a documentation error. Kerberos cipher suites are not supported in GlassFish Server 3.1.
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.
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="0.0.0.0" lazy-init="true"></iiop-listener>
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="0.0.0.0"></iiop-listener>
In this case, to enable lazy-init, you would add the following property to the iiop-listener element:
lazy-init="true"
For the complete report about this issue, see GLASSFISH-15975.
When using GlassFish Server 3.1 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>
Caution - This issue is planned to be fixed in either a 3.1 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.
During the final GlassFish Server 3.1 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 3.1-3.1.1 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 locales should refer to the Oracle GlassFish Server 3.1-3.1.1 Reference Manual for the latest subcommand usage instructions.
For the complete report about this issue, see GLASSFISH-15929.
It is necessary to grant additional permissions to CDI-enabled Java EE applications that are deployed in a GlassFish Server 3.1 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 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 3.1 Application Development Guide for instructions on modifying application permissions. See Enabling and Disabling the Security Manager in Oracle GlassFish Server 3.1 Application Development Guide for instructions on enabling and disabling security manager. For the complete report about this issue, see GLASSFISH-15456.
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 4.5 Release Notes.
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 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 Chapter 15, Administering the Object Request Broker (ORB), in Oracle GlassFish Server 3.1 Administration Guide. For the complete report about this issue, see GLASSFISH-15571.
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.
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 3.1 Performance Tuning Guide. For the complete report about this issue, see GLASSFISH-16025.
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.
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.
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.
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.
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 JDK requirements.
For the complete report about this issue, see GLASSFISH-15482.
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.
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.
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 3.1 Administration Guide. For the complete report about this issue, see GLASSFISH-14547.
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.
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:
-Dcom.sun.enterprise.web.connector.grizzly.linger=-1
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.
Create a temporary directory to hold the restored configuration files for the domain.
For example:
mkdir /tmp/domain1
Restore the domain.
asadmin restore-domain --backupdir /tmp/das-backups --domaindir /tmp domain1
Stop the domain.
Change to the domain directory that is actually being restored.
cd domain-dir
Rename the existing domain config directory.
For example:
mv config config-
Copy the domain configuration from the /tmp directory into the real domain config directory.
cp /tmp/domain1 config
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 http://java.net/jira/secure/attachment/44826/i_gf_15809-workaround.txt.
For the complete report about this issue, see GLASSFISH-15809.
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> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet>
For the complete report about this issue, see GLASSFISH-16061.
OSGi JSF applications appear to deploy correctly, but the first attempt to access the application through a Web browser generates a NullPointerException error. In addition, subsequent attempts to redeploy the application fail.
This issue has been corrected in GlassFish Server 3.1.1. If using GlassFish Server 3.1, the workaround is to omit the --type osgi option when deploying the application with the asadmin deploy subcommand.
For example, the following command will generate the NullPointerException:
asadmin> deploy --type osgi --contextroot foo-web /foo_apps/foo-web.war
The error is not generated when the --type osgi option is omitted:
asadmin> deploy --contextroot foo-web /foo_apps/foo-web.war
For the complete report about this issue, see GLASSFISH-15985.
GlassFish Server Message Queue (MQ) 4.5 and GlassFish Server 3.1 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 installer does not. Instead, in GlassFish Server 3.1 with MQ 4.5, 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:
|
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 4.5 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
Win. Deployment with contextroot: Application [] contains no valid components (13774)
Glassfish Installer does not update MQ config file (imqenv.conf) with values (15724)
Remote EJBs fail with ClassCastException in embeddable GlassFish (15775)
Column APPLICATIONID is missing from bundled SQL scripts for EJB timer table creation. (15986)
create-jvm-options subcommand options incorrectly parsed by asadmin (16037)
3.1 GlassFish installer takes longer to bootstrap Update Center than in 3.0.1 (16067)
On Windows the first time pkg.bat or updatetool.bat is run they may echo garbage (16094)
Admin GUI hangs on first access after installation on some Solaris Server Hardware. (16153)
Application info page: status not shown correctly and virtual servers changes not saved (16048)
Log Viewer: details garbled after navigating to earlier records, exception in server.log (16029)
Firefox 4.0 does not work for the Admin Console Targeting dialogs (16385)
@DSD defined in EJBs bundled in a .war is not available for JPA during prepare() phase (15865)
On Windows, under certain very specific conditions, deploying the same or different applications using the same app name can result in unexpected errors.
To encounter this problem all of the following conditions must be true:
User deploys an application with name appName.
One (or more) JAR files in the expanded applications/appName directory are locked as part of deployment or accessing the application, so that the JAR(s) are not removed during undeployment.
The same or another application is later deployed with the same name.
The new application does not contain the previously-locked JAR file in the same location.
Some code in GlassFish searches all JARs in the application for some reason (for example, annotation detection, persistence unit searching, sniffer work to identify the type of application).
GlassFish Server treats the leftover file as part of the second application, even though it is not. This can cause various errors, most notably "Application [] contains no valid components."
Avoid deploying different applications using the same app name.
If you need to redeploy an application but have removed a file from the app and that file remains in the applications/appName directory tree even though you redeploy the app, consider deploying the revised app using a different app name.
If you see this error, restart the DAS (use the asadmin stop-domain subcommand or stop the domain using the Administration Console) and then deploy or redeploy the app.
For the complete report about this issue, see GLASSFISH-13774.
A 403: Forbidden error is displayed when browsing to an application that contains an encrypted URL and is deployed on Oracle Web Server 7 on Windows 2008.
This is not a GlassFish Server problem, but is caused by a Web Server fix that disallows URIs with a ":" value.
Modify the obj.conf file for the Web Server, as follows:
Replace:
PathCheck fn="uri-clean"
With:
<Client type="~magnus-internal/lbplugin"> PathCheck fn="uri-clean" </Client>
For the complete report about this issue, see GLASSFISH-15709.
The Bean Deployment Archive (BDA) visibility graph does not correctly implement the CDI and Java EE 6 specifications. Beans in WEB-INF/lib are made available to beans in WEB-INF/classes, but the converse is not true; that is, beans in WEB-INF/classes cannot be injected into WEB-INF/lib injection points. In addition, beans in one JAR in WEB-INF/lib cannot be injected into beans in a different JAR in the same WEB-INF/lib. According to the CDI and EE6 Platform specifications, both of these scenarios should work. This issue occurs because of the way Weld handles cyclic references among BDAs.
This issue should be fixed in GlassFish Server 3.1.1. If using GlassFish Server 3.1, you can repackage the application such that either of the following conditions are met:
Beans in WEB-INF/classes are not used or injected into classes bundled in WEB-INF/lib/*.jar
All Beans are available as part of WEB-INF/classes; that is, collapse the bundled library in WEB-INF/lib/*.jar into WEB-INF/classes
For the complete report about this issue, see GLASSFISH-15721.
The GlassFish Server Installer does not update the MQ configuration file (imqenv.conf) with appropriate system values (for example, JDK_HOME directory). This would be useful when MQ is run independently from GlassFish Server.
Manually update the imqenv.conf file (located in the MQ_HOME/etc directory). The MQ executables will use the java that is in the user's PATH. The user can also specify another Java Runtime by setting IMQ_DEFAULT_JAVAHOME in the imqenv.conf file.
For example, on Unix:
IMQ_DEFAULT_JAVAHOME=/usr/jdk/jdk1.6.0
On Windows:
IMQ_DEFAULT_JAVAHOME=c:\path\to\jdk
For the complete report about this issue, see GLASSFISH-15724.
This is a Thread context class loader issue. GlassFish.start() sets the context class loader to an internal class loader and does not reset it after the call is complete. As a consequence, the user's classes can no longer be loaded using the context class loader in the thread that starts the server.
A possible workaround is to set the context class loader before looking up the remote EJB; for example:
GlassFish gf = GlassFishRuntime.bootstrap().newGlassFish(); gf.start(); gf.getDeployer().deploy(myapp); ClassLoader oldCl = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); new InitialContext().lookup(myEJB); } finally { Thread.currentThread().setContextClassLoader(oldCl); }
For the complete report about this issue, see GLASSFISH-15775.
When creating a new EJB timer in GlassFish Server 3.1, the bundled timer table creation scripts generate corresponding .sql files that are missing the APPLICATIONID column.
The actual table for the timer is created automatically by the timer service on first deployment. The generated .sql files are for documentation purposes only, so this issue does not affect the EJB timer or the timer service in any way.
None required. The .sql files generated by the timer creation scripts serve no direct functional purpose, but can be used as a reference point if you want to create a timer table yourself. To see the column definition as it should be, look at the corresponding .sql file for the actual timer table.
For the complete report about this issue, see GLASSFISH-15986.
The asadmin utility is incorrectly interpreting create-jvm-options subcommand options as asadmin utility options. As a result, attempts to create a JVM option, such as -Xrs, fail; for example:
asadmin> create-jvm-options -Xrs Non-boolean option: X, not allowed in argument: -Xrs Usage: asadmin [-H|--host <host(default:localhost)>] [-p|--port <port(default:4848)>] [-u|--user <user(default:admin)>] [-W|--passwordfile <passwordfile>] [-t|--terse[=<terse(default:false)>]] [-s|--secure[=<secure(default:false)>]] [-e|--echo[=<echo(default:false)>]] [-I|--interactive[=<interactive(default:true)>]] [-?|--help[=<help(default:false)>]] create-jvm-options [command-specific options] Command create-jvm-options failed.
The usage message appears to be in the style of a v2 usage message. In GlassFish Server 3.1, asadmin utility options are not provided in the usage message.
To workaround this problem, run the create-jvm-options subcommand in single mode specifying at least one asadmin utility option. For example:
dashost$ asadmin --host dashost create-jvm-options -Xrs Created 1 option(s) Command create-jvm-options executed successfully.
For the complete report about this issue, see GLASSFISH-16037.
Using Cygwin on Windows, the app client container (ACC) passes an extra empty-string argument to the client's main method. This might result in the app client throwing an index-out-of-range exception if the client does not guard itself against empty argument values.
If your client works with a variable number of arguments make sure that it protects itself against empty argument values.
Avoid using Cygwin on Windows for clients that cannot be made to guard against an empty argument value.
For the complete report about this issue, see GLASSFISH-16044.
The GlassFish Server 3.1 Update Center may take significantly longer to load the first time it is launched than it did in GlassFish Server 3.0.1. This is caused by a performance regression in Update Center, not in GlassFish Server itself. This performance regression is documented in JIRA issue UPDATECENTER2-2175.
None, although download and program loading times can be improved by bypassing any proxy servers.
You can verify that the Update Center package download process is proceeding by watching the file count in the glassfish3/.org.opensolaris,pkg/download/number directory.
For the complete report about this issue, see GLASSFISH-16067.
On Windows, if you do not install Update Center as part of the GlassFish Server product installation, the first time you run pkg.bat (or updatetool.bat) the scripts echo a large amount of garbage output before prompting you to continue with the Update Center installation. The Update Center installation works, but the large amount of initial garbage output may be confusing.
No workaround is necessary. The garbage output is harmless and can be safely ignored.
For the complete report about this issue, see GLASSFISH-16094.
After installing GlassFish Server 3.1 and starting the DAS for the first time on some Solaris Server hardware, the GlassFish Server Administration Console starts to load, but then the browser screen goes blank and the browser hangs indefinitely. The only way to continue is to kill the hung prtfru process.
The problem is that during the generation of the GlassFish Server registration page, if the SolarisSystemEnvironment.getSNViaPrtfruX() method is called, and the output from the prtfru -x command is significant (for example, a large server could output over 3000 lines/150Kbytes) then the page generation will hang.
For the complete report about this issue, see KM article 1299968.1 on the My Oracle Support site.
There are three possible workarounds for this problem:
Kill the prtfru process.
For example:
# ptree cat as-install-parent/glassfish/domains/domain-dir/config/pid` 20365 /usr/jdk/jdk1.6.0_23/bin/java -cp as-install-parent/glassfish/modules/glass 20385 /usr/sbin/prtfru # kill -9 20385
Prior to logging in to the DAS for the first time, make the as-install-parent/glassfish/lib/registration directory read-only. For example:
chmod -w as-install-parent/glassfish/lib/registration/
Note that this will result in the registration file not being generated, and the registration option will not be displayed.
Prior to logging in to the DAS for the first time, enter the following command:
touch as-install-parent/glassfish/lib/registration/registration.html
As with the second workaround, above, this will disable the registration option.
For the complete report about this issue, see GLASSFISH-16153.
Upgrade Tool fails when trying to parse the product version in the source domain.xml file when an Internet connection is not available. This problem only occurs when using Upgrade Tool to perform a side-by-side upgrade on 2.x domain without an Internet connection.
The workaround for this issue is as follows:
Copy the older source domain to be upgraded to the new target as-install/domains directory.
Rename the target domain1 directory, if one exists, before proceeding.
Re-run the upgrade.
asadmin> start-domain --upgrade domain-name
For the complete report about this issue, see GLASSFISH-16159.
The information page for a deployed application may display incorrect information in a DAS only configuration. Specifically:
The Enabled status checkbox is always unchecked regardless of whether the application is enabled or disabled.
Modifications to the list of virtual servers is not persisted in other Administration Console pages.
This issue only occurs on the DAS when no clusters or standalone instances have been configured.
The issue has been fixed and will be available in future product releases. In the meantime, the following workarounds are available:
To display the status for an application, look at the Applications table on the top-level Applications page rather than the Edit Application page for the individual application. The status is correctly displayed on the top-level Applications page, and the application status can also be modified from there.
To view or change the virtual server for a deployed application, use the asadmin get and set subcommands.
To view the status of an application, use the get subcommand.
asadmin> get server.application-ref.application-name
For example, to view the status of an application named hello:
asadmin> get server.application-ref.hello
To change the list of virtual servers for an application, use the set subcommand.
asadmin set server.application-ref.application-name.virtual-servers=virtual-server[,virtual-server,...]
For example, to specify a virtual server named myVS for an application named hello:
asadmin> set server.application-ref.hello.virtual-servers=myVS
Separate multiple virtual-server names with commas. For example:
asadmin> set server.application-ref.hello.virtual-servers=myVS,yourVS,herVS
For the complete report about this issue, see GLASSFISH-16048.
When viewing server log records, switching views between the DAS and another server instance may cause the view to become blank or garbled. The issue is caused by a missing logFile parameter in the URL for the detailed log screen.
Specify the name of the log file manually in the URL for the detailed log screen. For example, an incorrect URL may read:
http://localhost:4848/common/logViewer/logEntryDetail.jsf?instanceName=server& logLevel=INFO&logFile=&recNumber=10
If the name of the log file is server.log, you would add this as the logFile parameter in the URL:
http://localhost:4848/common/logViewer/logEntryDetail.jsf?instanceName=server& logLevel=INFO&logFile=server.log&recNumber=10
For the complete report about this issue, see GLASSFISH-16029.
When using the GlassFish Server Web profile distribution, the Clusters->Resources tab in the Administration Console displays a drop-down list of resources that you can create, some of which are not available for that distribution. If you try to create one of these unsupported resources when using the Web profile, an HTTP Status 404 error message will be displayed. Note that the resources are correctly displayed in the node tree on the left side of the Administration Console.
The GlassFish Server 3.1 Web profile distribution does not contain any of the JMS or MQ components. The following resources are only available in the Full profile distribution:
Destination Resources
Connection Factory
JavaMail
Custom Resources
External Resources
To work around this issue, refresh the exception screen by clicking the cluster node in the tree or by refreshing the browser.
Firefox 4.0 does not work for the Administration Console Targeting dialogs. All other Web pages display correctly.
“Targeting dialogs” refer to those dialogs in which two adjacent columns of options are displayed, one for “Available Targets” and the other for “Selected Targets.” A user can select the desired options and move them from one column to other.
For example, such a dialog can be displayed by navigating to the Resources->JDBC->JDBC Resources->resource-name->Target page and then clicking Manage Targets. The resulting Manage Resource Targets page will not be displayed correctly in Firefox 4.0. Specifically, the CSS page formatting is not rendered, leaving just plain text and no layout.
None. This is a rendering issue in Firefox 4.0. Other browsers and earlier versions of Firefox do not exhibit this behavior.
For the complete report about this issue, see GLASSFISH-16385.
The following application configuration results in a @DataSourceDefinition not found error:
A @DataSourceDefinition annotation is defined in an EJB that is bundled in a WAR file.
A JPA Persistence Unit is also in the WAR file, and that JPA depends on the @DataSourceDefinition exported by the EJB.
In this configuration, the @DataSourceDefinition is not available during prepare() phase during which the JPA creates its tables. The @DataSourceDefinition is available only after deployment.
A JPA can only perform lookups on Data Source Definitions (DSDs) for scoped applications ("java:app"). Because of this, the workaround for this issue is to define the @DataSourceDefinition in the web.xml, application.xml, or Servlet instead of defining it in the EJB.
For the complete report about this issue, see GLASSFISH-15865.