Application servers are typically deployed in complex operating environments and involve many technologies, products, and tools. Understanding and diagnosing problems in enterprise software with many components performing many tasks can be a challenge. This section describes how to get started , and contains the following topics:
Sometimes the most obvious solutions are overlooked. As you begin your investigation, try the following steps first.
Ensure that your system meets the requirements listed in Hardware and Software Requirements in Sun GlassFish Enterprise Server v3 Release Notes. Problems are likely to arise if you attempt to install on a platform that is not supported or on a system that in some other way does not meet release requirements. Also see Known Issues in Sun GlassFish Enterprise Server v3 Release Notes for known issues related to installation.
Enterprise Server v3 requires JDKTM release 6. The minimum (and certified) version of the JDK that is required for Enterprise Server depends on the operating system:
For supported operating systems except Mac OS, the minimum required version is 1.6.0_17.
For the Mac OS X operating system, the minimum required version is 1.6.0_15.
If necessary, download and install the required JDK software.
On Solaris, Linux, and Windows systems, JDK software is available from the Java SE downloads page.
For Mac OS X systems, Enterprise Server uses the JDK that is part of the Macintosh operating system. If necessary, obtain the required JDK version from the Mac OS X Updates site.
Also ensure that the JAVA_HOME environment variable on your system points to the JDK installation directory and not the Java Runtime Environment (JRE) software.
Set JAVA_HOME and $JAVA_HOME/bin in the PATH to point to the supported JDK version.
Your problem might be related to a known issue for the release. Refer to the Sun GlassFish Enterprise Server v3 Release Notes for the latest information regarding known issues and possible workarounds. Also search the GlassFish Issue Tracker at https://glassfish.dev.java.net/servlets/ProjectIssues.
Enterprise Server includes complete product documentation. Search the documentation to see if your problem is addressed. Documentation is available at http://docs.sun.com/coll/1343.9. See Enterprise Server Documentation Set for the books in the documentation set and a description of their contents. Also see the Administration Console online help for detailed information about performing administrative tasks using the graphical interface.
The following books will be especially helpful for troubleshooting:
Sun GlassFish Enterprise Server v3 Release Notes, which provides the latest information regarding known issues and possible workarounds.
Sun GlassFish Enterprise Server v3 Error Message Reference, which lists error messages you might encounter when using Enterprise Server.
Use the product documentation to learn more about Enterprise Server v3. The more you know about the product the easier it might be to figure out why something isn't working.
Lists and forums are extremely helpful resources, and are accessed as follows:
GlassFish mailing lists (start with users@glassfish.dev.java.net and search the archives): http://glassfish.dev.java.net/servlets/ProjectMailingListList
GlassFish user forum: http://forums.java.net/jive/forum.jspa?forumID=56
Other GlassFish forums: http://forums.java.net/jive/category.jspa?categoryID=58
SunSolveSM is Sun's informational and patch database service with a browseable directory of all publicly available Sun Microsystems support documents. SunSolve is available at http://sunsolve.sun.com. Additional resources are also available for customers with support contracts.
Troubleshooting and analysis require information. The more information you have the easier it is to classify a problem and search for its solution. Detailed information will also be necessary should you need to contact others for support, either through a community mailing list or through more formal Sun support channels.
For general information about gathering data, also refer to Sun Gathering Debug Data for Sun Java System Application Server. The document pertains to previous versions of Enterprise Server but much of the information is generic enough that it might still be helpful.
As you continue your investigation, consider the following questions.
What do the logs show? What kind of error message are you getting? For more information about logs, see Examining Log Files. Logs are a good place to start your troubleshooting.
What are you trying to do when the problem occurs and how are you doing it? What is the sequence of events?
Does the problem occur every time you perform the same type of operation, or does it seem random? Can you reproduce the issue?
Have other events or problems occurred that could possibly be related, such as web sessions closing early, exceptions being thrown in your own application logic, components not being correctly deployed or undeployed?
What version of Enterprise Server are you using? What operating system and version? What JDK version? Many problems are caused simply because system requirements for the release are not met. Refer to the Sun GlassFish Enterprise Server v3 Release Notes for the latest information regarding system requirements, and make sure your system meets those requirements.
What resources does your system have, such as memory, disk, and swap space? If system memory is an issue, look for ways to optimize your configuration and consider taking other actions such as adding memory or decreasing system load.
Have any patches been applied? If so, what are the product and operating system patch numbers?
What other products and technologies are installed and being used in the installation?
How many application servers, web servers, and directory servers are installed? What are the products and versions?
How is the web server connected to Enterprise Server? On the same system?
How is Enterprise Server connected to the directory server?
What JDBC driver is being used to access the database?
What are your settings?
On which port is Enterprise Server v3 configured — the default or something else?
What defaults were changed during installation and what are the values?
What other settings were changed from the defaults and what are their values?
What are the parameters related to JVM heap, stack, and garbage collection set to?
What are the JVM options?
What is the permgen size? OutOfMemoryError:PermGen space errors are common and indicate that you need to increase the permanent generation space available.
Is SSL enabled?
What are your network settings (proxy, firewall, and so on)? What happens if you disable your firewall and attempt the task?
What is different that could have provoked the problem or triggered the event? Was something new added or changed? Have any new applications been deployed? If changes have been made recently, consider backing them out and seeing what happens — does the problem still occur?
Was the feature or functionality working correctly at one time? If so, what changed or happened between then and now?
Is this working on another system? If so, what is different about that environment?
Logging is one of your most important troubleshooting tools. It is the process by which Enterprise Server captures data about events that occur during server operation, such as configuration errors, security failures, or server malfunction. This data is recorded in a log file, and is usually your first source of information when Enterprise Server problems occur. The primary purpose of log files is to provide troubleshooting information. Analyzing the log files can help determine the health of the server and identify problem areas.
By default all Enterprise Server log information is captured in the server.log file, typically located in domain-dir/logs. You can view logging information by using the Administration Console or the asadmin utility. You can also open the server.log file in a text editor and search for the module that you are interested in.
For information about using the Administration Console log viewer and logging functions, see the Administration Console online help. For information about viewing logging information from the command line, see Viewing Log Information in Sun GlassFish Enterprise Server v3 Administration Guide.
Logging is configured by editing the logging.properties file, located by default in the same directory as the domain.xml file, typically domain-dir/config. Logging can also be configured using the Administration Console.
Log levels such as SEVERE, WARNING, INFO, CONFIG, and others can be set to provide different types and amounts of information. The default setting is INFO. Each Enterprise Server module has its own logger, and each logger has its own namespace. Log levels can be set globally for all loggers, or individually for module-specific loggers.
For complete details about logging see Chapter 7, Administering the Logging Service, in Sun GlassFish Enterprise Server v3 Administration Guide.
Monitoring is another helpful tool. It is the process of reviewing the statistics of a system to improve performance or solve problems. By monitoring the state of various components and services deployed in Enterprise Server you can identify performance bottlenecks, predict failures, perform root cause analysis, and ensure that everything is functioning as expected. For more information about monitoring, including JConsole information, see Chapter 8, Administering the Monitoring Service, in Sun GlassFish Enterprise Server v3 Administration Guide.