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 {productName} 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 {productName} 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 {productName} 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
{productName} 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
{productName} 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 {productName} 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 {productName} 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[{productName} Add-On
Component Development Guide] for complete details.

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

==== How Do I Add Containers?

{productName} has a highly modular architecture that enables you to
add new types of containers that handle many application types, not just
Jakarta EE. {productName} defines a service provider interface (SPI),
which container developers implement. The {productName} 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 {productName} 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
{productName} 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 {productName} 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 {productName} 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
{productName} 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
{productName}]" in {productName}
Administration Guide.

[NOTE]
====
Update Tool differs from Upgrade Tool, which is used to migrate the
configuration and deployed applications from an earlier version of
{productName} to the current version. For more information about
Upgrade Tool and upgrading, see the link:../upgrade-guide/toc.html#GSUPG[{productName} 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.
