type=page
status=published
title=Preface
next=overview.html
prev=title.html
~~~~~~

= Preface

[[GSHAG00001]][[pref]]


[[preface]]
== Preface

[NOTE]
====
This documentation is part of the Java Enterprise Edition contribution
to the Eclipse Foundation and is not intended for use in relation to
Java Enterprise Edition or Orace GlassFish. The documentation is in the
process of being revised to reflect the new Jakarta EE branding.
Additional changes will be made as requirements and procedures evolve
for Jakarta EE. Where applicable, references to Jakarta EE or Java
Enterprise Edition should be considered references to Jakarta EE.

Please see the Title page for additional license information.
====

This book describes the high-availability features in {productName},
including converged load balancing, HTTP load balancing, clusters,
session persistence and failover.


[NOTE]
====
The main thrust of the {productName} 7 release
is to provide an application server for developers to explore and begin
exploiting the new and updated technologies in the Jakarta EE 10 platform.
Thus, the clustering, standalone instance and high availability features
of {productName} were not a focus of this release. These features are
included in the release, but they may not function properly with some of
the new features added in support of the Jakarta EE 10 platform.
====


This preface contains information about and conventions for the entire
{productName} ({productName}) documentation
set.

{productName} 7 is developed through the GlassFish project
open-source community at `http://glassfish.java.net/`. The GlassFish
project provides a structured process for developing the {productName} platform that makes the new features of the Jakarta EE platform
available faster, while maintaining the most important feature of Java
EE: compatibility. It enables Java developers to access the {productName} source code and to contribute to the development of the {productName}. The GlassFish project is designed to encourage communication
between Oracle engineers and the community.

[[GSHAG00163]][[gksfg]]


[[oracle-glassfish-server-documentation-set]]
=== {productName} Documentation Set

The {productName} documentation set describes deployment planning and
system installation. For an introduction to {productName}, refer to
the books in the order in which they are listed in the following table.

[width="100%",cols="<30%,<70%",options="header",]
|===
|Book Title |Description
|link:release-notes.html#GSRLN[Release Notes] |Provides late-breaking information about
the software and the documentation and includes a comprehensive,
table-based summary of the supported hardware, operating system, Java
Development Kit (JDK), and database drivers.

|link:quick-start-guide.html#GSQSG[Quick Start Guide] |Explains how to get started with the
{productName} product.

|link:installation-guide.html#GSING[Installation Guide] |Explains how to install the software
and its components.

|link:upgrade-guide.html#GSUPG[Upgrade Guide] |Explains how to upgrade to the latest
version of {productName}. This guide also describes differences
between adjacent product releases and configuration options that can
result in incompatibility with the product specifications.

|link:deployment-planning-guide.html#GSPLG[Deployment Planning Guide] |Explains how to build a
production deployment of {productName} that meets the requirements of
your system and enterprise.

|link:administration-guide.html#GSADG[Administration Guide] |Explains how to configure, monitor,
and manage {productName} subsystems and components from the command
line by using the link:reference-manual/asadmin.html#GSRFM00263[`asadmin`] utility. Instructions for
performing these tasks from the Administration Console are provided in
the Administration Console online help.

|link:security-guide.html#GSSCG[Security Guide] |Provides instructions for configuring and
administering {productName} security.

|link:application-deployment-guide.html#GSDPG[Application Deployment Guide] |Explains how to assemble and
deploy applications to the {productName} and provides information
about deployment descriptors.

|link:application-development-guide.html#GSDVG[Application Development Guide] |Explains how to create and
implement Java Platform, Enterprise Edition (Jakarta EE platform)
applications that are intended to run on the {productName}. These
applications follow the open Java standards model for Jakarta EE components
and application programmer interfaces (APIs). This guide provides
information about developer tools, security, and debugging.

|link:embedded-server-guide.html#GSESG[Embedded Server Guide] |Explains how to run applications in
embedded {productName} and to develop applications in which {productName} is embedded.

|link:ha-administration-guide.html#GSHAG[High Availability Administration Guide] |Explains how to
configure {productName} to provide higher availability and
scalability through failover and load balancing.

|link:performance-tuning-guide.html#GSPTG[Performance Tuning Guide] |Explains how to optimize the
performance of {productName}.

|link:troubleshooting-guide.html#GSTSG[Troubleshooting Guide] |Describes common problems that you
might encounter when using {productName} and explains how to solve
them.

|link:error-messages-reference.html#GSEMR[Error Message Reference] |Describes error messages that you
might encounter when using {productName}.

|link:reference-manual.html#GSRFM[Reference Manual] |Provides reference information in man
page format for {productName} administration commands, utility
commands, and related concepts.

|link:../openmq/mq-release-notes.html#GMRLN[Message Queue Release Notes] |Describes new features,
compatibility issues, and existing bugs for Open Message Queue.

|link:../openmq/mq-tech-over.html#GMTOV[Message Queue Technical Overview] |Provides an introduction
to the technology, concepts, architecture, capabilities, and features of
the Message Queue messaging service.

|link:../openmq/mq-admin-guide.html#GMADG[Message Queue Administration Guide] |Explains how to set up
and manage a Message Queue messaging system.

|link:../openmq/mq-dev-guide-jmx.html#GMJMG[Message Queue Developer's Guide for JMX Clients] |Describes
the application programming interface in Message Queue for
programmatically configuring and monitoring Message Queue resources in
conformance with the Java Management Extensions (JMX).

|link:../openmq/mq-dev-guide-java.html#GMJVG[Message Queue Developer's Guide for Java Clients] |Provides
information about concepts and procedures for developing Java messaging
applications (Java clients) that work with {productName}.

|link:../openmq/mq-dev-guide-c.html#GMCCG[Message Queue Developer's Guide for C Clients] |Provides
programming and reference information for developers working with
Message Queue who want to use the C language binding to the Message
Queue messaging service to send, receive, and process Message Queue
messages.
|===


[[GSHAG00165]][[fwbkx]]


[[typographic-conventions]]
=== Typographic Conventions

The following table describes the typographic changes that are used in
this book.

[width="100%",cols="<14%,<37%,<49%",options="header",]
|===
|Typeface |Meaning |Example
|`AaBbCc123` |The names of commands, files, and directories, and
onscreen computer output a|
Edit your `.login` file.

Use `ls` `a` to list all files.

`machine_name% you have mail.`

|`AaBbCc123` |What you type, contrasted with onscreen computer output a|
`machine_name%` `su`

`Password:`

|AaBbCc123 |A placeholder to be replaced with a real name or value |The
command to remove a file is `rm` filename.

|AaBbCc123 |Book titles, new terms, and terms to be emphasized (note
that some emphasized items appear bold online) a|
Read Chapter 6 in the User's Guide.

A cache is a copy that is stored locally.

Do not save the file.

|===


[[GSHAG00166]][[fquvc]]


[[symbol-conventions]]
=== Symbol Conventions

The following table explains symbols that might be used in this book.

[width="100%",cols="<10%,<26%,<28%,<36%",options="header",]
|===
|Symbol |Description |Example |Meaning
|`[ ]` |Contains optional arguments and command options. |`ls [-l]` |The
`-l` option is not required.

|`{ \| }` |Contains a set of choices for a required command option.
|`-d {y\|n}` |The `-d` option requires that you use either the `y`
argument or the `n` argument.

|`${ }` |Indicates a variable reference. |`${com.sun.javaRoot}`
|References the value of the `com.sun.javaRoot` variable.

|- |Joins simultaneous multiple keystrokes. |Control-A |Press the
Control key while you press the A key.

|+ + |Joins consecutive multiple keystrokes. |Ctrl+A+N |Press the
Control key, release it, and then press the subsequent keys.

|> |Indicates menu item selection in a graphical user interface. |File >
New > Templates |From the File menu, choose New. From the New submenu,
choose Templates.
|===


[[GSHAG00164]][[ghpfg]]


[[default-paths-and-file-names]]
=== Default Paths and File Names

The following table describes the default paths and file names that are
used in this book.

[width="100%",cols="<14%,<34%,<52%",options="header",]
|===
|Placeholder |Description |Default Value
|as-install
a|Represents the base installation directory for {productName}.

In configuration files, as-install is represented as follows:

`${com.sun.aas.installRoot}`

a|Installations on the Oracle Solaris operating system, Linux operating
system, and Mac OS operating system:

user's-home-directory``/glassfish7/glassfish``

Installations on the Windows operating system:

SystemDrive``:\glassfish7\glassfish``

|as-install-parent
|Represents the parent of the base installation directory for {productName}.
a|Installations on the Oracle Solaris operating system, Linux operating
system, and Mac operating system:

user's-home-directory``/glassfish7``

Installations on the Windows operating system:

SystemDrive``:\glassfish7``

|domain-root-dir
|Represents the directory in which a domain is created by default.
|as-install``/domains/``

|domain-dir
a|Represents the directory in which a domain's configuration is stored.

In configuration files, domain-dir is represented as follows:

`${com.sun.aas.instanceRoot}`
|domain-root-dir``/``domain-name

|instance-dir
|Represents the directory for a server instance.
|domain-dir``/``instance-name
|===
