type=page
status=published
title=GlassFish Server Upgrade Compatibility Issues
next=upgrading-legacy-installation.html
prev=preface.html
~~~~~~
GlassFish Server Upgrade Compatibility Issues
=============================================

[[GSUPG00002]][[abmaq]]


[[glassfish-server-upgrade-compatibility-issues]]
1 GlassFish Server Upgrade Compatibility Issues
-----------------------------------------------

This section describes some compatibility issues between GlassFish
Server 4.0 and earlier product releases. This section also describes
some compatibility issues that affect Java applications that run on
earlier product releases with which Oracle GlassFish Server 4.0 is
binary-compatible. When you upgrade to GlassFish Server 4.0, you must
address these issues.

The following topics are addressed here:

* link:#gjwpd[Binary-Compatible Releases For GlassFish Server 4.0]
* link:#gkric[New Default Installation Directory]
* link:#gklhr[Changes to Group Management Service Settings]
* link:#geyyk[Application Client Interoperability]
* link:#gktad[Node Agent Support]
* link:#gkrjm[HADB and `hadbm` Command Support]
* link:#abmbc[Command Line Interface: The `asadmin` Command]
* link:#gflnv[Applications That Use Java DB]
* link:#gjizi[Applications That Use Persistence]
* link:#gjiqj[HTTP Service to Network Service Changes]
* link:#gktkt[NSS Cryptographic Token Support]

[[gjwpd]][[GSUPG00028]][[binary-compatible-releases-for-glassfish-server-4.0]]

Binary-Compatible Releases For GlassFish Server 4.0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

GlassFish Server Open Source Edition 4.0 is binary-compatible with the
following earlier releases of the software:

* Sun GlassFish Enterprise Server v2.1.1 (Enterprise and Developer
Profiles)
* Sun GlassFish Enterprise Server v3
* GlassFish Server Open Source Edition 3.0.1
* GlassFish Server Open Source Edition 3.1
* GlassFish Server Open Source Edition 3.1.1

Java applications that run on these releases also work on GlassFish
Server Open Source Edition 4.0 except for the compatibility issues that
are listed in the remainder of this chapter.


[width="100%",cols="<100%",]
|=======================================================================
a|
Note:

The compatibility issues that are listed in the remainder of this
chapter do not affect Java applications that run on Sun GlassFish
Enterprise Server v3 and GlassFish Server 3.0.1. The differences between
GlassFish Server 4.0 and the Enterprise Server v3 releases do not affect
applications and data.

|=======================================================================


[[gkric]][[GSUPG00029]][[new-default-installation-directory]]

New Default Installation Directory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The default GlassFish Server 4.0 installation directories are as
follows:

Solaris, Linux, and Mac OS X systems::
[source,oac_no_warn]
----
user-home-directory/glassfish3
----
Windows systems::
[source,oac_no_warn]
----
SystemDrive\glassfish3
----

In GlassFish Server 3.0.1 and Enterprise Server v3, the default
installation root directory was `glassfishv3`.

[[gklhr]][[GSUPG00030]][[changes-to-group-management-service-settings]]

Changes to Group Management Service Settings
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The functionality of the Group Management Service (GMS) has not changed
since Sun GlassFish Enterprise Server v2.1.1, but the names of GMS
settings have been changed in the Administration Console to make them
more understandable. These changes are made automatically during the
upgrade process.

Changes to settings on the Edit Group Management Service page in the
Administration Console are summarized in the following table.

[[sthref3]][[gklho]]

Table 1-1 GMS Administration Console Settings Changes from 2.1.1 to 4.0

[width="100%",cols="<50%,<50%",options="header",]
|=================================================
|Old Setting Name |New Setting Name
|Protocol Maximum Trial |Maximum Missed Heartbeats
|Protocol Timeout |Heartbeat Frequency
|Ping Timeout |Group Discovery Timeout
|Verified Timeout |Failure Verification Wait Time
|=================================================


The Merge Protocol settings from Sun GlassFish Enterprise Server v2.1.1
are not supported and have been removed.

[[geyyk]][[GSUPG00031]][[application-client-interoperability]]

Application Client Interoperability
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The Java EE 6 platform specification imposes stricter requirements than
Java EE 5 did on which JAR files can be visible to various modules
within an EAR file. In particular, application clients must not have
access to EJB JAR files or other JAR files in the EAR file unless they
use a `Class-Path` header in the manifest file, or unless references use
the standard Java SE mechanisms (extensions, for example), or use the
Java EE `library-directory` mechanism. Deployed Java EE 5 applications
that are upgraded to GlassFish Server 4.0 will have the `compatibility`
property set to `v2` and will run without change on GlassFish Server
4.0. You may, however, want to consider modifying the applications to
conform to Java EE 6 requirements.

If your upgrade includes a deployed application with an application
client, you will need to retrieve the client stubs using GlassFish
Server 4.0 in order to run the client. Use the
`asadmin get-client-stubs` command.

If you try to run the application client before retrieving the client
stubs, you will see the following error message:

[source,oac_no_warn]
----
Invalid or corrupt jarfile jar-file-name
----

If you commonly distribute application clients to remote systems from
which users will run them, you must not only retrieve the client stubs,
but you must also run the `package-appclient` utility for GlassFish
Server 4.0 to upgrade the GlassFish Server system files. This utility
creates a JAR file, which you can then expand on the remote systems.

Application clients use EJBs, web services, or other enterprise
components that are in the application server (on the server side). The
application client and the application server must use the same version
and implementation of the RMI-IIOP protocol. GlassFish Server 4.0 does
not support communication between different versions of the protocol
implementation. You cannot run application clients with one version of
the application server runtime with a server that has a different
version. Most often, this would happen if you upgraded the server but
had not upgraded all the application client installations. If you run
the `package-appclient` utility, this issue will not arise.

You can use the Java Web Start support to distribute and launch the
application client. If the runtime on the server has changed since the
end-user last used the application client, Java Web Start automatically
retrieves the updated runtime. Java Web Start enables you to keep the
clients and servers synchronized and using the same runtime.

[[gktad]][[GSUPG00032]][[node-agent-support]]

Node Agent Support
~~~~~~~~~~~~~~~~~~

GlassFish Server 4.0 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 re-created. See
link:upgrading-legacy-installation.html#gfybw[Upgrading Clusters and Node
Agent Configurations] for more information.

[[gkrjm]][[GSUPG00033]][[hadb-and-hadbm-command-support]]

HADB and `hadbm` Command Support
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

Instead of HADB, GlassFish Server 4.0 supports high availability
clustering by means of in-memory session state replication and
ActiveCache for GlassFish. See "link:../ha-administration-guide/overview.html#GSHAG00002[High Availability in
GlassFish Server]" in GlassFish Server Open Source Edition High
Availability Administration Guide for more information.

[[abmbc]][[GSUPG00034]][[command-line-interface-the-asadmin-command]]

Command Line Interface: The `asadmin` Command
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The following sections describe changes to the command line utility
`asadmin`:

* link:#abmbd[Deprecated `asadmin` Subcommands]
* link:#abmbf[Deprecated, Unsupported, and Obsolete Options]

For more information about `asadmin` and its subcommands, see the
link:../reference-manual/toc.html#GSRFM[GlassFish Server Open Source Edition Reference Manual].

[[abmbd]][[GSUPG00053]][[deprecated-asadmin-subcommands]]

Deprecated `asadmin` Subcommands
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

In GlassFish Server 4.0, 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`

[[abmbf]][[GSUPG00054]][[deprecated-unsupported-and-obsolete-options]]

Deprecated, Unsupported, and Obsolete Options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Options in link:#gaeki[Table 1-2] are deprecated or no longer supported,
or are obsolete and are ignored.

[[sthref4]][[gaeki]]

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

[width="100%",cols="<33%,<67%",options="header",]
|=======================================================================
|Option |Affected Subcommands
|`--acceptlang` |Unsupported for the `create-virtual-server` subcommand.

|`--acls` |Unsupported for the `create-virtual-server` subcommand.

|`--adminpassword` |Unsupported for all relevant subcommands. Use
`--passwordfile` instead.

|`--autoapplyenabled` |Obsolete for the `create-http-lb` subcommand.

|`--autohadb` |Obsolete for the `create-cluster` subcommand.

|`--autohadboverride` |Obsolete for the `start-cluster` subcommand and
the `stop-cluster` subcommand

|`--blockingenabled` |Unsupported for the `create-http-listener`
subcommand.

|`--configfile` |Unsupported for the `create-virtual-server` subcommand.

|`--defaultobj` |Unsupported for the `create-virtual-server` subcommand.

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

|`--description` |Obsolete for the `restore-domain` subcommand.

|`--devicesize` |Obsolete for the `create-cluster` subcommand.

|`--haadminpassword` |Obsolete for the `create-cluster` subcommand.

|`--haadminpasswordfile` |Obsolete for the `create-cluster` subcommand.

|`--haagentport` |Obsolete for the `create-cluster` subcommand.

|`--haproperty` |Obsolete for the `create-cluster` subcommand.

|`--heartbeataddress` |Deprecated for the `create-cluster` subcommand.
Use `--multicastaddress` instead.

|`--heartbeatport` |Deprecated for the `create-cluster` subcommand. Use
`--multicastport` instead.

|`--hosts` |Obsolete for the `create-cluster` subcommand.

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

|`--mime` |Unsupported for the `create-virtual-server` subcommand.

|`--password` |Unsupported for all remote subcommands. Use
`--passwordfile` instead.

|`--path` |Unsupported for the `create-domain` subcommand. Use
`--domaindir` instead.

|`--portbase` |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`.

|`--resourcetype` |Unsupported for all relevant subcommands. Use
`--restype` instead.

|`--retrievefile` |Obsolete for the `export-http-lb-config` subcommand.

|`--setenv` |Obsolete for the `start-instance` subcommand.

|`--target` a|
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:

|=======================================================================


[[gflnv]][[GSUPG00035]][[applications-that-use-java-db]]

Applications That Use Java DB
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The directory location of Java DB in GlassFish Server 4.0 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 4.0. 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: +
[source,oac_no_warn]
----
asadmin start-database --dbhome c:\glassfish\databases
----
2.  After upgrade, start GlassFish Server 4.0.

[[gjizi]][[GSUPG00036]][[applications-that-use-persistence]]

Applications That Use Persistence
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

GlassFish Server 4.0 and 3.0.1, and Sun GlassFish Enterprise Server v3
use the persistence provider EclipseLink, while earlier versions used
TopLink Essentials.

An application that uses the container to create an `EntityManager` or
`EntityManagerFactory` and that used Toplink Essentials as its provider
will work in GlassFish Server 4.0. The container creates an
`EntityManager` if the application uses the `@PersistenceContext`
annotation to inject an `EntityManager`, as in the following example:

[source,oac_no_warn]
----
@PersistenceContext
EntityManager em;
----

The container creates an `EntityManagerFactory` if the application uses
the `@PersistenceUnit` annotation to inject an `EntityManagerFactory`,
as in the following example:

[source,oac_no_warn]
----
@PersistenceUnit
EntityManagerFactory emf;

EntityManager em = emf.createEntityManager();
----

When the application is loaded, GlassFish Server 4.0 will translate the
provider to EclipseLink and will also translate `toplink.*` properties
in the `persistence.xml` to corresponding EclipseLink properties. (The
actual `persistence.xml` file remains unchanged.)

Under certain circumstances, however, you may have to modify the
`persistence.xml` file or your code:

* If your application uses Java SE code to create the
`EntityManagerFactory`, you will need to change your `persistence.xml`
file for both the `provider` element and for any `toplink.*` properties
to use the EclipseLink equivalents. An application uses Java SE code if
it uses the `javax.persistence.Persistence` class to create the
`EntityManagerFactory`, as in the following example: +
[source,oac_no_warn]
----
EntityManagerFactory emf =
    javax.persistence.Persistence.createEntityManagerFactory("Order");
EntityManager em = emf.createEntityManager();
----
In this case, change the `provider` element to specify the following: +
[source,oac_no_warn]
----
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
----
* If the application itself contains any TopLink Essentials-specific
code and therefore contains casts to `oracle.toplink.*`, you must change
the code to cast to `org.eclipse.persistence.*`. You can use the package
renamer tool described on the
http://wiki.eclipse.org/EclipseLink/Examples/MigratingFromOracleTopLink#Rename_Packages[Eclipse
wiki]
(`http://wiki.eclipse.org/EclipseLink/Examples/MigratingFromOracleTopLink#Rename_Packages`)
to do this. This tool is not provided with GlassFish Server 4.0,
however, so you must obtain it from the EclipseLink project download
site.

[[gjiqj]][[GSUPG00037]][[http-service-to-network-service-changes]]

HTTP Service to Network Service Changes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In GlassFish Server 4.0, most HTTP Service settings are defined in the
Network Service configuration that was introduced in Sun GlassFish
Enterprise Server v3.

The changes are described in the following sections.

* link:#gipsa[Changes to Dotted Names]
* link:#giprg[Changes to `asadmin` Subcommands]
* link:#gipfo[Remapping of HTTP Service Attributes and Properties]
* link:#gipcg[New Network Service Elements and Attributes]

[[gipsa]][[GSUPG00055]][[changes-to-dotted-names]]

Changes to Dotted Names
^^^^^^^^^^^^^^^^^^^^^^^

The dotted name hierarchy for the HTTP Service configuration in
GlassFish Server 4.0 is shown below. Elements that are no longer
supported are `request-processing`, `keep-alive`, `connection-pool`,
`http-protocol`, `http-file-cache`, and `http-listener`. During the
upgrade process, these discontinued elements are remapped to the new
configuration automatically and then deleted.

[source,oac_no_warn]
----
config
    http-service
        access-log
        request-processing
        keep-alive
        connection-pool
        http-protocol
        http-file-cache
        http-listener
            ssl
            property
        virtual-server
            http-access-log
            property
        property
    thread-pools
        thread-pool
----

The dotted name hierarchy for the GlassFish Server 4.0 Network Service
and HTTP Service configurations is shown below. The `network-config`
element and all its children are new except for `ssl`.

[source,oac_no_warn]
----
config
    network-config
        transports
            selection-key-handler
            transport
        protocols
            protocol
                http
                    file-cache
                port-unification
                    protocol-finder
                protocol-chain-instance-handler
                    protocol-chain
                protocol-filter
                ssl
        network-listeners
            network-listener
    http-service
        access-log
        virtual-server
            http-access-log
            property
        property
    thread-pools
        thread-pool
----

The following example compares the commands for setting a listener port
for Sun GlassFish Enterprise Server v3 and GlassFish Server 4.0. Note
that the configuration for Enterprise Server v3 also applies to all
earlier Enterprise Server 2.x releases.

* Command for Sun GlassFish Enterprise Server v3 and earlier: +
[source,oac_no_warn]
----
asadmin set server-config.http-service.http-listener.http-1.listenerport=4321
----
* Command for GlassFish Server 4.0: +
[source,oac_no_warn]
----
asadmin set server-config.network-config.network-listeners.network-\
listener.http-1.listenerport=4321
----

[[giprg]][[GSUPG00056]][[changes-to-asadmin-subcommands]]

Changes to `asadmin` Subcommands
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

To accommodate the move of HTTP Service into the new Network Service
configuration, link:../reference-manual/asadmin.html#GSRFM00263[`asadmin`] subcommands are changed as
follows:

* The link:../reference-manual/create-ssl.html#GSRFM00058[`create-ssl`] subcommand has a new `--type`
parameter value, `network-listener`.
* The link:../reference-manual/create-virtual-server.html#GSRFM00062[`create-virtual-server`] SUBcommand has a new
parameter, `--networklisteners`.
* The link:../reference-manual/create-http-listener.html#GSRFM00030[`create-http-listener`] subcommand adds a
`network-listener` element to the domain configuration. The syntax and
options of this commands are unchanged.

[[gipfo]][[GSUPG00057]][[remapping-of-http-service-attributes-and-properties]]

Remapping of HTTP Service Attributes and Properties
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The following tables describe how attributes and properties in the HTTP
Service configuration for GlassFish Server 4.0 are remapped to
attributes in the Network Service configuration for older product
releases. If you use a configuration from a Sun GlassFish Enterprise
Server v2 or v3 release, this remapping happens automatically and then
discontinued elements are deleted.

[[sthref5]][[gipfy]]

Table 1-3 `com.sun.grizzly` Property Remapping

[width="100%",cols="<33%,<26%,<41%",options="header",]
|==================================================================
|`com.sun.grizzly` Property |New Owning Element |New Attribute Name
|`selector.timeout` |`transport` |`selector-poll-timeout-millis`
|`displayConfiguration` |`transport` |`display-configuration`
|`enableSnoop` |`transport` |`snoop-enabled`
|`readTimeout` |`transport` |`read-timeout-millis`
|`writeTimeout` |`transport` |`write-timeout-millis`
|==================================================================


[[sthref6]][[gipfn]]

Table 1-4 `connection-pool` Attribute Remapping

[width="100%",cols="<41%,<19%,<40%",options="header",]
|=======================================================================
|`connection-pool` Attribute |New Owning Element |New Attribute Name
|`queue-size-in-bytes` |`thread-pool` |`max-queue-size`

|`max-pending-count` |`transport` |`max-connections-count`

|`receive-buffer-size-in-` `bytes` |`http` |`request-body-buffer-size-`
`bytes`

|`send-buffer-size-in-bytes` |`http` |`send-buffer-size-bytes`
|=======================================================================


[[sthref7]][[gipcv]]

Table 1-5 `http-file-cache` Attribute Remapping

[width="100%",cols="<50%,<17%,<33%",options="header",]
|===================================================================
|`http-file-cache` Attribute |New Owning Element |New Attribute Name
|`file-caching-enabled` |`file-cache` |`enabled`
|`max-age-in-seconds` |`file-cache` |`max-age-seconds`
|`medium-file-space-in-bytes` |`file-cache` |`max-cache-size-bytes`
|`max-files-count` |`file-cache` |`max-files-count`
|`globally-enabled` |none |not supported
|`medium-file-size-limit-in-bytes` |none |not supported
|`small-file-size-limit-in-bytes` |none |not supported
|`small-file-space-in-bytes` |none |not supported
|`file-transmission-enabled` |none |not supported
|`hash-init-size` |none |not supported
|===================================================================


[[sthref8]][[gipev]]

Table 1-6 `http-listener` Attribute Remapping

[width="100%",cols="<37%,<27%,<36%",options="header",]
|=================================================================
|`http-listener` Attribute |New Owning Element |New Attribute Name
|`id` |`network-listener` |`name`
|`address` |`network-listener` |`address`
|`port` |`network-listener` |`port`
|`enabled` |`network-listener` |`enabled`
|`acceptor-threads` |`transport` |`acceptor-threads`
|`security-enabled` |`protocol` |`security-enabled`
|`default-virtual-server` |`http` |`default-virtual-server`
|`server-name` |`http` |`server-name`
|`redirect-port` |`http` |`redirect-port`
|`xpowered-by` |`http` |`xpowered-by`
|`external-port` |none |not supported
|`family` |none |not supported
|`blocking-enabled` |none |not supported
|=================================================================


[[sthref9]][[gipdo]]

Table 1-7 `http-listener` Property Remapping

[width="100%",cols="<43%,<15%,<42%",options="header",]
|=======================================================================
|`http-listener` Property |New Owning Element |New Attribute Name
|`maxKeepAliveRequests` |`http` |`max-connections`

|`authPassthroughEnabled` |`http` |`auth-pass-through-enabled`

|`compression` |`http` |`compression`

|`compressableMimeType` |`http` |`compressable-mime-type`

|`noCompressionUserAgents` |`http` |`no-compression-user-agents`

|`compressionMinSize` |`http` |`compression-min-size-bytes`

|`restrictedUserAgents` |`http` |`restricted-user-agents`

|`cometSupport` |`http` |`comet-support-enabled`

|`connectionUploadTimeout` |`http` |`connection-upload-timeout-`
`millis`

|`disableUploadTimeout` |`http` |`upload-timeout-enabled`

|`chunkingDisabled` |`http` |`chunking-enabled`

|`uriEncoding` |`http` |`uri-encoding`

|`traceEnabled` |`http` |`trace-enabled`

|`rcmSupport` |`http` |`rcm-support-enabled`

|`jkEnabled` |`network-` `listener` |`jk-enabled`

|`crlFile` |`ssl` |`crl-file`

|`trustAlgorithm` |`ssl` |`trust-algorithm`

|`trustMaxCertLength` |`ssl` |`trust-max-cert-length-bytes`

|`tcpNoDelay` |`transport` |`tcp-no-delay`

|`bufferSize` |`transport` |`buffer-size-bytes`

|`use-nio-direct-bytebuffer` |`transport` |`byte-buffer-type`

|`proxyHandler` |none |not supported

|`proxiedProtocols` |none |not supported

|`recycle-objects` |none |not supported

|`reader-threads` |none |not supported

|`acceptor-queue-length` |none |not supported

|`reader-queue-length` |none |not supported

|`connectionTimeout` |none |not supported

|`monitoring-cache-enabled` |none |not supported

|`monitoring-cache-refresh-in-` `millis` |none |not supported

|`ssl-cache-entries` |none |not supported

|`ssl3-session-timeout` |none |not supported

|`ssl-session-timeout` |none |not supported
|=======================================================================


[[sthref10]][[gipel]]

Table 1-8 `http-protocol` Attribute Remapping

[width="100%",cols="<34%,<33%,<33%",options="header",]
|=================================================================
|`http-protocol` Attribute |New Owning Element |New Attribute Name
|`version` |`http` |`version`
|`forced-response-type` |`http` |`forced-response-type`
|`default-response-type` |`http` |`default-response-type`
|`dns-lookup-enabled` |none |not supported
|`ssl-enabled` |none |not supported
|=================================================================


[[sthref11]][[gipfa]]

Table 1-9 `http-service` Property Remapping

[width="100%",cols="<34%,<33%,<33%",options="header",]
|=======================================================================
|`http-service` Property |New Owning Element |New Attribute or Property
Name
|`accessLoggingEnabled` |`http-service`, `virtual-server`
|`access-logging-enabled` attribute

|`ssl-cache-entries` |`http-service` |unchanged property

|`ssl3-session-timeout` |`http-service` |unchanged property

|`ssl-session-timeout` |`http-service` |unchanged property

|`proxyHandler` |`http-service` |unchanged property

|`connectionTimeout` |`http-service` |unchanged property

|all other properties |none |not supported
|=======================================================================


[[sthref12]][[gipea]]

Table 1-10 `keep-alive` Attribute Remapping

[width="100%",cols="<34%,<33%,<33%",options="header",]
|==============================================================
|`keep-alive` Attribute |New Owning Element |New Attribute Name
|`max-connections` |`http` |`max-connections`
|`timeout-in-seconds` |`http` |`timeout-seconds`
|`thread-count` |none |not supported
|==============================================================


[[sthref13]][[gipdh]]

Table 1-11 `request-processing` Attribute Remapping

[width="100%",cols="<43%,<18%,<39%",options="header",]
|======================================================================
|`request-processing` Attribute |New Owning Element |New Attribute Name
|`thread-count` |`thread-pool` |`max-thread-pool-size`
|`initial-thread-count` |`thread-pool` |`min-thread-pool-size`
|`header-buffer-length-in-bytes` |`http` |`header-buffer-length-bytes`
|`request-timeout-in-seconds` |`http` |`request-timeout-seconds`
|`thread-increment` |none |not supported
|======================================================================


[[sthref14]][[gipdv]]

Table 1-12 `ssl` Attribute Changes

[width="100%",cols="<34%,<22%,<44%",options="header",]
|=======================================================================
|Previous Attribute or Property |Previous Owning Element |New `ssl`
Attribute
|none |none |`key-store`

|none |none |`trust-store`

|`crlFile` property |`http-listener` |`crl-file`

|`trustAlgorithm` property |`http-listener` |`trust-algorithm`

|`trustMaxCertLength` property |`http-listener`
|`trust-max-cert-length-bytes`

|all other `ssl` attributes |`ssl` |unchanged
|=======================================================================


[[sthref15]][[gipcj]]

Table 1-13 `thread-pool` Attribute Changes

[width="100%",cols="<44%,<17%,<39%",options="header",]
|=======================================================================
|Previous Attribute |Previous Owning Element |New `thread-pool`
Attribute
|none |none |`classname`

|none |none |`max-queue-size`

|`thread-pool-id` |`thread-pool` |`name`

|`idle-thread-timeout-in-seconds` |`thread-pool`
|`idle-thread-timeout-seconds`

|`num-work-queues` |`thread-pool` |not supported

|all other `thread-pool` attributes |`thread-pool` |unchanged
|=======================================================================


[[sthref16]][[gipep]]

Table 1-14 `virtual-server` Attribute Changes

[width="100%",cols="<39%,<24%,<37%",options="header",]
|=======================================================================
|Previous Attribute or Property |Previous Owning Element |New
`virtual-server` Attribute
|`http-listeners` attribute |`virtual-server` |`network-listeners`

|`accessLoggingEnabled` property |`http-service`
|`access-logging-enabled`

|`sso-enabled` property |`virtual-server` |`sso-enabled`

|`ssoCookieSecure` property |`virtual-server` |`sso-cookie-secure`

|all other `virtual-server` attributes |`virtual-server` |unchanged

|all other `virtual-server` properties |`virtual-server` |unchanged,
still properties
|=======================================================================


[[gipcg]][[GSUPG00058]][[new-network-service-elements-and-attributes]]

New Network Service Elements and Attributes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The following tables describe the Network Service elements and
attributes that were introduced in Sun GlassFish Enterprise Server v3.
For attributes and properties remapped from discontinued elements to new
elements, see link:#gipfo[Remapping of HTTP Service Attributes and
Properties].

The new `file-cache` element has no new attributes. All of its
attributes are remapped from the `http-file-cache` element. For details,
see link:#gipcv[Table 1-5].

[[sthref17]][[gipds]]

Table 1-15 New `http` Attributes

[width="100%",cols="<28%,<32%,<40%",options="header",]
|=======================================================================
|Attribute |Default |Description
|`adapter` |`com.sun.grizzly.tcp. StaticResourcesAdapter` |(Optional)
Specifies the class name of the static resources adapter.

|`max-post-size-bytes` |`2097152` |(Optional) Specifies the maximum size
of `POST` actions.
|=======================================================================


For remapped `http` attributes, see link:#gipfn[Table 1-4],
link:#gipev[Table 1-6], link:#gipdo[Table 1-7], link:#gipel[Table 1-8],
link:#gipea[Table 1-10], and link:#gipdh[Table 1-11].

[[sthref18]][[gipey]]

Table 1-16 New `network-listener` Attributes

[width="100%",cols="<18%,<11%,<71%",options="header",]
|=======================================================================
|Attribute |Default |Description
|`protocol` |none |Specifies the `name` of the `protocol` associated
with this `network-listener`. Although this attribute is required, a
`protocol` is automatically created with the same `name` as the
`network-listener` when you use `asadmin create-http-listener` to create
a `network-listener`.

|`thread-pool` |none |(Optional) Specifies the `name` of the
`thread-pool` associated with this `network-listener`.

|`transport` |none |Specifies the `name` of the `transport` associated
with this `network-listener`. Although this attribute is required, the
default `transport` is used when you use `asadmin create-http-listener`
to create a `network-listener`.
|=======================================================================


For remapped `network-listener` attributes, see link:#gipev[Table 1-6].

[[sthref19]][[gipfg]]

Table 1-17 New `port-unification` Attributes

[width="100%",cols="<19%,<16%,<65%",options="header",]
|=======================================================================
|Attribute |Default |Description
|`name` |none |Specifies a unique name for the `port-unification`.

|`classname` |none |Specifies the class name of the `port-unification`
implementation.
|=======================================================================


[[sthref20]][[gipdj]]

Table 1-18 New `protocol` Attributes

[width="100%",cols="<18%,<17%,<65%",options="header",]
|=========================================================
|Attribute |Default |Description
|`name` |none |Specifies a unique name for the `protocol`.
|=========================================================


For remapped `protocol` attributes, see link:#gipev[Table 1-6].

[[sthref21]][[gipcr]]

Table 1-19 New `protocol-chain` Attributes

[width="100%",cols="<19%,<17%,<64%",options="header",]
|=======================================================================
|Attribute |Default |Description
|`name` |none |Specifies a unique name for the `protocol-chain`.

|`classname` |none |Specifies the class name of the `protocol-chain`
implementation.

|`type` |`STATELESS` |Specifies the type of protocol chain.
|=======================================================================


[[sthref22]][[gipfq]]

Table 1-20 New `protocol-chain-instance-handler` Attributes

[width="100%",cols="<19%,<17%,<64%",options="header",]
|=======================================================================
|Attribute |Default |Description
|`name` |none |Specifies a unique name for the
`protocol-chain-instance-handler`.

|`classname` |none |Specifies the class name of the
`protocol-chain-instance-handler` implementation.
|=======================================================================


[[sthref23]][[gipeq]]

Table 1-21 New `protocol-filter` Attributes

[width="100%",cols="<19%,<17%,<64%",options="header",]
|=======================================================================
|Attribute |Default |Description
|`name` |none |Specifies a unique name for the `protocol-filter`.

|`classname` |none |Specifies the class name of the `protocol-filter`
implementation.
|=======================================================================


[[sthref24]][[gipfd]]

Table 1-22 New `protocol-finder` Attributes

[width="100%",cols="<19%,<17%,<64%",options="header",]
|=======================================================================
|Attribute |Default |Description
|`name` |none |Specifies a unique name for the `protocol-finder`.

|`classname` |none |Specifies the class name of the `protocol-finder`
implementation.

|`protocol` |none |Specifies the `name` of the `protocol` associated
with this `protocol-finder`.
|=======================================================================


[[sthref25]][[gipft]]

Table 1-23 New `selection-key-handler` Attributes

[width="100%",cols="<19%,<16%,<65%",options="header",]
|=======================================================================
|Attribute |Default |Description
|`name` |none |Specifies a unique name for the `selection-key-handler`.

|`classname` |none |Specifies the class name of the
`selection-key-handler` implementation.
|=======================================================================


[[sthref26]][[gipfi]]

Table 1-24 New `ssl` Attributes

[width="100%",cols="<19%,<17%,<64%",options="header",]
|========================================================
|Attribute |Default |Description
|`key-store` |none |(Optional) Specifies a key store.
|`trust-store` |none |(Optional) Specifies a trust store.
|========================================================


For remapped `ssl` attributes, see link:#gipdv[Table 1-12].

[[sthref27]][[gipcc]]

Table 1-25 New `thread-pool` Attributes

[width="100%",cols="<21%,<32%,<47%",options="header",]
|=======================================================================
|Attribute |Default |Description
|`classname` |`com.sun.grizzly.http.StatsThreadPool` |(Optional)
Specifies the class name of the `thread-pool` implementation.

|`max-queue-size` |`-1` |(Optional) Specifies the maximum number of
messages that can be queued until threads are available to process them.
A value of `-1` specifies no limit.
|=======================================================================


For remapped `thread-pool` attributes, see link:#gipfn[Table 1-4],
link:#gipdh[Table 1-11], and link:#gipcj[Table 1-13].

[[sthref28]][[gipem]]

Table 1-26 New `transport` Attributes

[width="100%",cols="<35%,<27%,<38%",options="header",]
|=======================================================================
|Attribute |Default |Description
|`name` |none |Specifies a unique name for the `transport`.

|`classname` |`com.sun.grizzly. TCPSelectorHandler` |(Optional)
Specifies the class name of the `transport` implementation.

|`selection-key-handler` |none |(Optional) Specifies the `name` of the
`selection-key-handler` associated with this `transport`.

|`idle-key-timeout-seconds` |`30` |(Optional) Specifies the idle key
timeout.
|=======================================================================


For remapped `transport` attributes, see link:#gipfy[Table 1-3],
link:#gipfn[Table 1-4], link:#gipev[Table 1-6], and link:#gipdo[Table
1-7].

[[gktkt]][[GSUPG00038]][[nss-cryptographic-token-support]]

NSS Cryptographic Token Support
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

GlassFish Server 4.0 does not support Network Security Services (NSS)
cryptographic tokens. When upgrading to GlassFish Server 4.0 from
Enterprise Server v2.x, additional manual configuration steps must be
performed. These steps are explained later in this guide, in
link:upgrading-legacy-installation.html#gktnh[Upgrading Installations
That Use NSS Cryptographic Tokens].
