type=page
status=published
title=Frequently Asked Questions
prev=specific-issues.html
~~~~~~

= Frequently Asked Questions

[[GSTSG00006]][[abgkd]]


[[frequently-asked-questions]]
== 3 Frequently Asked Questions

This chapter lists a few of the Frequently Asked Questions (FAQs)
related to Oracle GlassFish Server 7. For the latest FAQs, see the
GlassFish wiki at
`http://wikis.sun.com/display/GlassFish/GlassFishFAQIndex`.

This chapter contains the following:

* link:#ghynj[Administration FAQs]
* link:#ghyaf[Application FAQs]
* link:#ghyak[Eclipse FAQs]
* link:#ghybv[Extensibility FAQs]
* link:#ghybi[Java Persistence FAQs]
* link:#ghybd[Update Tool FAQs]

[[ghynj]][[GSTSG00071]][[administration-faqs]]

=== Administration FAQs

[[ghvhr]][[GSTSG00252]][[which-asadmin-commands-are-supported]]

==== Which `asadmin` Commands are Supported?

Use `asadmin` `list-commands` to determine which commands are supported
and available for use. For related information, see
"link:../administration-guide/asadmin-subcommands.html#GSADG00023[Subcommands for the asadmin Utility]" in GlassFish
Server Open Source Edition Administration Guide.

[[ghyaf]][[GSTSG00072]][[application-faqs]]

=== Application FAQs

[[ghybu]][[GSTSG00253]][[how-do-i-debug-applications]]

==== How Do I Debug Applications?

See "link:../application-development-guide/debugging-apps.html#GSDVG00004[Debugging Applications]" in GlassFish Server Open
Source Edition Application Development Guide.

[[ghybh]][[GSTSG00254]][[how-do-i-change-application-permissions]]

==== How Do I Change Application Permissions?

See "link:../application-development-guide/securing-apps.html#GSDVG00372[Changing Permissions for an Application]" in
Eclipse GlassFish Server Application Development Guide.

[[ghybt]][[GSTSG00255]][[what-are-the-restrictions-and-optimizations-for-session-beans]]

==== What Are the Restrictions and Optimizations for Session Beans?

See "link:../application-development-guide/ejb.html#GSDVG00427[Session Bean Restrictions and Optimizations]" in
Eclipse GlassFish Server Application Development Guide.

[[ghyak]][[GSTSG00073]][[eclipse-faqs]]

=== Eclipse FAQs

[[ghvmc]][[GSTSG00256]][[where-can-i-find-more-information-about-eclipse-and-glassfish-server-integration]]

==== Where Can I Find More Information About Eclipse and GlassFish Server Integration?

Eclipse is a development environment that provides a framework, tools,
and runtime for deploying and managing software. The GlassFish plugin
for Eclipse provides important changes to better support GlassFish
Server and to provide optimal redeployment of web applications. For more
information, see the GlassFish Plugins page:
`http://glassfishplugins.java.net`.

[[ghybv]][[GSTSG00074]][[extensibility-faqs]]

=== Extensibility FAQs

[[ghyaw]][[GSTSG00257]][[how-do-i-develop-add-on-components]]

==== How Do I Develop Add-On Components?

See the link:../add-on-component-development-guide/toc.html#GSACG[Eclipse GlassFish Server Add-On
Component Development Guide] for complete details.

[[ghvhg]][[GSTSG00258]][[how-do-i-add-containers]]

==== How Do I Add Containers?

GlassFish Server has a highly modular architecture that enables you to
add new types of containers that handle many application types, not just
Jakarta EE. GlassFish Server defines a service provider interface (SPI),
which container developers implement. The GlassFish Server framework
then invokes the container's implementation of the SPI to detect,
deploy, and manage applications of the new type.

For more information, see "link:../add-on-component-development-guide/adding-container-capabilities.html#GSACG00007[Adding Container
Capabilities]" in Eclipse GlassFish Server Add-On Component
Development Guide.

[[ghvgv]][[GSTSG00259]][[how-do-i-extend-the-administration-console]]

==== How Do I Extend the Administration Console?

See "link:../add-on-component-development-guide/extending-the-admin-console.html#GSACG00003[Extending the Administration Console]" in
Eclipse GlassFish Server Add-On Component Development Guide.

[[ghybi]][[GSTSG00075]][[java-persistence-faqs]]

=== Java Persistence FAQs

[[ghvnl]][[GSTSG00260]][[what-are-the-restrictions-and-optimizations-for-the-java-persistence-api]]

==== What Are the Restrictions and Optimizations for the Java Persistence API?

See "link:../application-development-guide/jpa.html#GSDVG00139[Restrictions and Optimizations]" in GlassFish
Server Open Source Edition Application Development Guide.

[[ghybd]][[GSTSG00076]][[update-tool-faqs]]

=== Update Tool FAQs

[[ghvly]][[GSTSG00261]][[how-do-i-use-update-tool-to-extend-my-glassfish-server-installation]]

==== How Do I Use Update Tool to Extend My GlassFish Server Installation?

Enterprise Server provides an administrative tool called Update Tool
that enables you to install updates and add-on components to your
existing Enterprise Server installation.

Update Tool can be accessed as a standalone graphical tool from the
command line (using the `updatetool` command from
as-install-parent`/bin`), or as a browser-based graphical tool from the
Administration Console (using the Update Tool node). For more
information about Update Tool, see "link:../administration-guide/toc.html#GSADG00701[Update Tool]" in
Eclipse GlassFish Server Administration Guide.

[NOTE]
====
To update or remove installed components, you must use the standalone
graphical Update Tool, not the Administration Console Update Tool.
====

A command-line interface is also available for Update Tool. This
interface uses the `pkg` command and enables you to perform most of the
tasks provided by the standalone graphical version. For more information
about the `pkg` command, see "link:../administration-guide/toc.html#GSADG00014[Extending and Updating
GlassFish Server]" in Eclipse GlassFish Server
Administration Guide.

[NOTE]
====
Update Tool differs from Upgrade Tool, which is used to migrate the
configuration and deployed applications from an earlier version of
GlassFish Server to the current version. For more information about
Upgrade Tool and upgrading, see the link:../upgrade-guide/toc.html#GSUPG[GlassFish Server Open
Source Edition Upgrade Guide].
====

[[gjjoq]][[GSTSG00262]][[how-do-i-turn-off-the-notifier]]

==== How Do I Turn Off the Notifier?

Update Tool provides automatic notifications of available updates after
installation. These notifications can be turned off if desired.

[[gjjox]][[GSTSG00028]][[to-turn-off-the-notifier]]

===== To Turn Off the Notifier

1. Launch the standalone graphical tool using the `updatetool` command:
+
[source]
----
as-install-parent/bin/updatetool
----
2. Click Preferences.
3. Click the Updates tab.
4. Deselect Automatically Check for Updates and click OK.
