Sun ONE logo      Previous      Contents      Index      Next     

Sun ONE Application Server 7, Enterprise Edition Troubleshooting Guide

Chapter 3
Startup and Login Problems

This chapter addresses common problems that can occur when the Sun™ Open Net Environment (ONE) Application Server or Admin Server are starting, or when a user is logging in.

The following sections are contained in this chapter:


Server does not appear to be running.

When you visit the start page of the Application Server, the initial screen does not appear. Consider the following:

Is the Application Server running?

Use one of the following commands to determine if the Admin Server has been started:

Solution

If the Application Server is not running, start the initially-configured administrative domain by running the following command:

As the command completes, you should observe the following results:

If other problems occur, you can use the following command to stop both the Admin Server as well as the Application Server instance of the initially-configured domain, domain1:

As the command completes, you should observe the following results:

Now restart the domain as explained above.

Syntax on the asadmin command is contained in the Application Server man pages and the Sun ONE Application Server Administrator’s Guide.

During installation, did the initial server startup run successfully?

If the console window is still open, it should display a message like this:

where domain1 is the name of the default domain. This indicates that the default domain was started successfully.

If you have already closed the console window, you can check for messages in the Application Server log file here:

If startup was successful, you should see a message similar to the following at the end of the log file:

[INFO][...][..][date&time][Application server startup complete .]

Is the server available locally?

To verify that the server is running locally:

  1. Log on to the machine where the server is running.
  2. Access the local web page. For example
  3. http://localhost:80/ (the default port)

Situation 1: If the start page does not appear on the local machine, it is most likely that the application server isn't running or didn't start normally.

Solution 1

In addition to checking the server logs for any errors during startup, check the following:

Situation 2: If the start page appears locally but not on remote machines, there is a networking problem from the remote clients. For example, DNS might be set incorrectly (so the request is being sent to the wrong machine), the network configuration on the remote machine could be incorrect, a network router could be down, and so on.

Solution 2

This is probably not an Application Server issue. Check your network.

Was the server started at the expected port?

The server could be running at a different port number than the one you expect, either because it was intentionally installed there, or because another server was already running on the default port when the server was installed.

To determine which port number the server is actually using:

  1. Examine the server's configuration file here:
  2. domain_config_dir/domains/domain1/server/config/server.xml

  3. Find the http-listener element.
  4. Inspect the value of the port attribute.

Explanation of how the expected port number can change during installation—The server's default port number is 80, however, you can specify a different port number during installation. During installation, if the specified port number is already taken by another application when you start the server, the port number rolls forward to the next available number. For example, if a server was already running on the default port 80, the Application Server would be running on port number 81. If two servers were running, the port number would be 82, and so on.

If http-listener is running at a port that is in use, you may see a message similar to the following:

[21/Jan/2003:01:41:15] WARNING (10364): ADM0011: Could not reregister HttpListener with DomainRegistry.

Sun ONE Application Server and HADB port assignments must not conflict with other port assignments on the same machine. Default and recommended port assignments are as follows:

Solution 1

Kill any other process that is running under the same port, or change the port number of the http-listener as follows:

  1. Open the Administration interface (hostname:admin_port).
  2. Browse to the HTTP Server.
  3. Browse to the HTTP Listeners.
  4. The default listener is http-listener-1.

  5. Click that default listener and find the port number (default is 80).
  6. Change it to any unused port.
  7. Save the settings.
  8. You should no longer receive this warning.

Solution 2

Change to another port and be sure to enter the correct port number when invoking the server.

Is your proxy setting causing a problem?

You should be able to access the server directly from your local system (localhost) as follows (for the default port 80):

You may not be able to access your local system if your browser connects to the web through a proxy. (A proxy is a program that looks like a direct web connection, but which is actually a separate program that makes that connection for you.)

A typical error message situation is:

The requested item could not be loaded by the proxy.

Netscape Proxy's network connection was refused by the server: localhost:4848 The server may not be accepting connections or may be busy. Try connecting again later

Solution

To solve this problem, do one of the following:

Has an ungraceful shutdown occurred on a previously-running server?

If a crash has occurred, the server could be in an inconsistent state.

Solution

Use the asadmin stop-domain command to stop the Application Server, then restart the server using asadmin start-domain command.

Refer to "Is the Application Server running?" for guidelines.


Can't access the Admin Server.

The Admin Server provides the administration facilities for the Application Server (one Admin Server per domain). The Application, Server log file, at domains/domain1/admin-server/logs/server.log, may be helpful in determining the reason the Admin Server is not running.

If you cannot access the Admin Server, consider the following:

Has the Admin Server been started?

See "Is the Application Server running?".

Are you the user who installed the Application Server?

When the start-domain or stop-domain command fails with the error:

Could not start the domain.
You don’t have permission to access
<install_dir>/domains/domain1/admin-server/config

The error indicates that you are not logged on as the user who installed the system.

Solution

You have to start the domain's admin server using the same login name as the user who installed the app server. You can then start other server instances using AdminGUI, once the admin server has been started, but the admin server can only be started by the person who installed the server.

Is the Admin Server running at the expected port?

The default port number for the Admin Server is 4848. However, the server could be running at a different port number than the one you expect, either because it was intentionally installed there, or because another server was already running on the installation port when the server was started.

Solution

Refer to "Was the server started at the expected port?" for guidelines on checking the port your Admin Server is actually running on.

Be sure to enter the correct port number when invoking the Admin Server.


Can’t access a server application.

If you are unable to access a particular application, find the application’s context root in the deployed application’s application.xml file in domains/domain1/server1/applications/j2ee-apps.

Then consider the following:

Is the Application Server running?

The server must be running before an application can be accessed.

Solution

Use the asadmin command to determine if the application server is running:

asadmin list-components --user admin --password password server1

This command should produce a listing like the following:

hello1 <application>
dukesbook <application>
There are no standalone WAR modules
There are no standalone EJB modules
There are no connector modules

For more information, see "Server does not appear to be running.".

Is the application enabled?

Use the following command to see if the application is enabled:

asadmin show-component-status --user admin --password password dukesbook

where dukesbook is the application (component) name.

Was application deployment successful?

An application must be successfully deployed before it can be accessed.

Solution

To verify that deployment was successful, do the following:

  1. Check install_dir/domains/domain1/server/server.log for Admin Server. You may see entries similar to the following:
  2. [20/Jul/2003:11:41:41] INFO ( 1600): DPL5109: EJBC - START of EJBC for [stateless-converter]

    [20/Jul/2003:11:41:41] INFO ( 1600): CORE3282: stdout: Remote message: Processing beans ....

    [20/Jul/2003:11:41:42] INFO ( 1600): DPL5108: EJBC - Generated code for remote home and EJBObject implementations for [stateless-converter]

    [20/Jul/2003:11:41:42] INFO ( 1600): CORE3282: stdout: Remote message: Compiling wrapper code ....

    [20/Jul/2003:11:41:46] INFO ( 1600): CORE3282: stdout: Remote message: Compiling RMI-IIOP code ....

    [20/Jul/2003:11:41:55] INFO ( 1600): DPL5110: EJBC - END of EJBC for [stateless-converter]

    [20/Jul/2003:11:41:56] INFO ( 1600): Total Deployment Time: 17605 msec, Total EJB Compiler Module Time: 14100 msec, Portion spent EJB Compiling: 80%

    Breakdown of EJBC Module Time: Total Time for EJBC: 14100 msec, CMP Generation: 0 msec (0%), Java Compilation: 10 msec (0%), RMI Compilation: 13239 msec (93%),

    [20/Jul/2003:11:41:56] INFO ( 1600): ADM1041:Sent the event to instance:[ApplicationDeployEvent -- deploy stateless-converter]

    [20/Jul/2003:11:42:03] INFO ( 1600): ADM1042:Status of event to instance:[success]

  3. Check the file system hierarchy under your server (such as server1) and look for your new application directory under j2ee-apps. If it was a module you deployed, look under the j2ee-modules directory to see your new module directory.
  4. Check the instance's server.xml file in the /config directory for the instance. Look for an entry similar to the following for your application or module:
  5. <j2ee-application enabled="true" location="D:\Sun\studio5_se\appserver7\domains\domain1\server1\applications\j2ee- apps\stateless-converter_1" name="stateless-converter" virtual-servers="server1"/>


Forgot the user name or password.

If you do not remember the administrative user name that was supplied during installation, try these solutions in this order:

  1. Enter the user name admin. This is the default user name specified in the server configuration dialog during installation.
  2. If this doesn’t work, look in the following file:
  3. domain_config_dir/domain1/admin-server/config/admpw

    This file contains the administrator's user name followed by the encrypted form of the administrative user's password. Seeing the user name may jog your memory.

  4. If this doesn’t work, delete the administrative domain and recreate it with a new password.
  5. As a last resort, uninstall and reinstall the Application Server.


Forgot the admin Server port number.

If you do not remember the port number of the Admin Server, you can inspect the Admin Server configuration file to determine the HTTP server port number:

  1. Navigate to domain_config_dir/domain1/admin-server/config/ and open the server.xml file in a text editor.
  2. Look for the following element:
  3. http-listener id="http-listener-1" address="0.0.0.0" port="4848"...


Server won’t start (CGI error).

If the Application Server won’t start, you may receive the following error:

This indicates resource shortage. Consider the following:

Are limits on file descriptors adequate?

On UNIX, you can use the ulimit command to determine the number of available file descriptors or to set limits on the system’s available file descriptors. The ulimit command displays the limits for the current shell and its descendants.

For sh shell, the ulimit -a command lists all the current resource limits. The ulimit -n command lists the maximum file descriptors plus 1.

Are kernel parameters adequate?

Solution

On UNIX, increase the system resources by modifying the /etc/system file to include the following entries:

Reboot the system for the new kernel parameters to take effect.

After you have set the shell resources, the Application Server should start.


Restart operation fails

When an attempted restart fails, consider the following:

SSL/TLS are enabled

Restart does not work if SSL/TLS are enabled.

Solution

Stop and then start the instance.


JMS failed to start.

The JMS failed to start.


Tip

If your application does not require JMS functionality, disabling it can improve performance. To disable JMS, change the following settings in the server.xml file:

<jms-service port="7676" admin-user-name="admin" admin-password="admin" init-timeout-in-seconds="30" enabled="false">


Are you attempting to start the instance as a non-root user?

When attempting to start the application server instance as a non-root user, the command fails and the following message is displayed:

Could not start the instance

In the log file for the instance (server.log), the following error message occurs:

JMS5035: Timed out after 30000 milliseconds while trying to verify if the JMS service startup succeeded.

When started as root, the application server instance starts normally.

Solution

Verify the correct user owns the JMS broker instance by running the following command:

ls -l /opt/imq/var/instances/

For example, the broker files for server1 in domain1 will be in the domain1_server1 directory. If this directory is owned by root, the ownership of the broker files must be changed to the appropriate user. For example, the following command changes the ownership of these files to the UNIX user greg in the staff group:

chown -R greg:staff /opt/imq/var/instance/domain1_server1

Unless this change is made, it is not possible for the Application Server to access these files, so the JMS broker (and ultimately the Application Server) cannot start.

Do Solaris bundled and unbundled domains and instances have the same names?

If your machine has the Solaris 9 bundled version of the Application Server software installed, and you then install the unbundled version of the Application Server, the Message Queue broker for these application server installations will be shared.


Note

In general, only one or the other type of bundle should be used. It not necessary to install an unbundled Application Server if a bundled version is already available.


If you do not uniquely name your new domains and instances, you may receive the following errors when starting up the second instance with the same domain or instance name:

Solution

Give the (unbundled) domains and instances names that are different from the instances and domains in the bundled installation.

To avoid these errors, refer to the JMS Support chapter in the Application Server Administrator’s Guide for guidance.

Do the imq logs have out of memory errors?

If the imq logs show out of memory errors, system tuning is necessary.

Solution

1. Upgrade system memory.

2. Decrease the app server’s heapsize.

3. Add more swapspace.


Note

Adding more swap space will increase the number of applications that can run, which may adversely affect system performance, as more swapping will occur.


For more information on optimizing your system, consult the Performance and Tuning Guide.



Previous      Contents      Index      Next     


Copyright 2003 Sun Microsystems, Inc. All rights reserved.