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

= Preface

[[GSADG00003]][[gkamj]]
[[preface]]
== Preface

The GlassFish Server Open Source Edition Administration Guide provides
instructions for configuring and administering
GlassFish Server Open Source Edition.

This preface contains information about and conventions for the entire
GlassFish Server Open Source Edition (GlassFish Server) documentation set.

GlassFish Server 7 is developed through the GlassFish project
open-source community at https://github.com/eclipse-ee4j/glassfish.
The GlassFish project provides a structured process for developing the
GlassFish Server platform that makes the new features of the Jakarta EE
platform available faster, while maintaining the most important feature
of Jakarta EE: compatibility. It enables Java developers to access the
GlassFish Server source code and to contribute to the development of the
GlassFish Server.

The following topics are addressed here:

* link:#ghpbz[GlassFish Server Documentation Set]
* link:#giprl[Related Documentation]
* link:#fwbkx[Typographic Conventions]
* link:#fquvc[Symbol Conventions]
* link:#ghpfg[Default Paths and File Names]

[[GSADG00518]][[ghpbz]]

[[glassfish-server-documentation-set]]
=== Eclipse GlassFish Server Documentation Set

The GlassFish Server documentation set describes deployment planning and
system installation. For an introduction to GlassFish Server, 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/toc.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/toc.html#GSQSG[Quick Start Guide]
|Explains how to get started with the GlassFish Server product.

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

|link:../upgrade-guide/toc.html#GSUPG[Upgrade Guide]
|Explains how to upgrade to the latest version of GlassFish Server.
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/toc.html#GSPLG[Deployment Planning Guide]
|Explains how to build a production deployment of GlassFish Server that meets the requirements of
your system and enterprise.

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

|link:../security-guide/toc.html#GSSCG[Security Guide]
|Provides instructions for configuring and administering GlassFish Server security.

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

|link:../application-development-guide/toc.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 GlassFish Server.
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:../add-on-component-development-guide/toc.html#GSACG[Add-On Component Development Guide]
|Explains how to use published interfaces of GlassFish Server to develop add-on components
for GlassFish Server.
This document explains how to perform only those tasks that ensure that the add-on component
is suitable for GlassFish Server.

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

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

|link:../performance-tuning-guide/toc.html#GSPTG[Performance Tuning Guide]
|Explains how to optimize the performance of GlassFish Server.

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

|link:../error-messages-reference/toc.html#GSEMR[Error Message Reference]
|Describes error messages that you might encounter when using GlassFish Server.

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

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

|link:../../openmq/mq-tech-over/toc.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/toc.html#GMADG[Message Queue Administration Guide]
|Explains how to set up and manage a Message Queue messaging system.

|link:../../openmq/mq-dev-guide-jmx/toc.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/toc.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 GlassFish Server.

|link:../../openmq/mq-dev-guide-c/toc.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.
|===


[[GSADG00519]][[giprl]]

[[related-documentation]]
=== Related Documentation

The following tutorials explain how to develop Jakarta EE applications:

* https://github.com/eclipse-ee4j/jakartaee-firstcup-examples[
Your First Cup: An Introduction to the Jakarta EE Platform].
For beginning Jakarta EE programmers, this short tutorial explains the entire
process for developing a simple enterprise application.
The sample application is a web application that consists of a component that is
based on the Enterprise JavaBeans specification, a JAX-RS web service,
and a JavaServer Faces component for the web front end.

* https://eclipse-ee4j.github.io/jakartaee-tutorial[The Jakarta EE Tutorial].
This comprehensive tutorial explains how to use Jakarta EE platform technologies
and APIs to develop Jakarta EE applications.

Javadoc tool reference documentation for packages that are provided with
GlassFish Server is available as follows.

* The Jakarta EE specifications and API specification is
located at https://jakarta.ee/specifications/.

* The API specification for GlassFish Server 7, including Jakarta EE
platform packages and nonplatform packages that are specific to the
GlassFish Server product, is located at
https://glassfish.org/docs/.

For information about creating enterprise applications in the NetBeans
Integrated Development Environment (IDE), see the
https://netbeans.apache.org/kb/docs/java-ee.html[
NetBeans Documentation, Training & Support page].

For information about the Derby database for use with
the GlassFish Server, see the https://db.apache.org/derby/index.html[Derby page].

The Jakarta EE Samples project is a collection of sample applications that
demonstrate a broad range of Jakarta EE technologies. The Jakarta EE Samples
are bundled with the Jakarta EE Software Development Kit (SDK) and are also
available from the repository
(`https://github.com/eclipse-ee4j/glassfish-samples`).

[[GSADG00520]][[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
|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
|`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)
|Read Chapter 6 in the User's Guide.

A cache is a copy that is stored locally.

Do not save the file.
|===


[[GSADG00521]][[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.
|===


[[GSADG00522]][[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.

[%autowidth.stretch,options="header",]
|===
|Placeholder |Description |Default Value

|as-install
a|Represents the base installation directory for GlassFish Server.
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 GlassFish Server.
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
|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
|===

