If EAServer runs for a while, then stops responding to requests, first follow the debugging suggestions described in “Server crashes”. If these do not solve the problem:
Check whether the issue exists only with specific types of requests (listeners, connections, and so on) or with everything (EAServer is not responding at all). If it is specific, continue with step 2; otherwise, go to step 4.
Check listeners, including IIOP, TDS, and HTTP as follows:
Use the Management Console to connect to the IIOP listener port. A successful connection means that IIOP is working.
If you cannot connect, check to see whether the maximum number of IIOP or total sessions have been reached. If not, obtain a stack trace.
Check the HTTP listener port at http://machine_name:8000 for default documentation. If the document is visible, HTTP is working. If you cannot view the default documentation:
Check whether the maximum HTTP or total sessions have been reached.
Turn on HTTP request logging.
If you are using a Web server redirector, set verbose logging in the configuration file.
Check the HTTP request log, HTTP error log, and the server log.
Check the data source:
Use the Management Console to ping the data source. If ping fails, use isql (or a vendor-supplied tool for a non-Sybase database) to try a simple SQL request outside EAServer.
Use a database monitoring tool to investigate what is happening on the database server side. Check locks held.
In the Management Console, look at the server’s DataSource tab. Verify that you have not reached the maximum number of connections for the data source. Check the number of connections: active, pooled, forced, peak, and so on.
If you are trying to connect to Adaptive Server Enterprise, check that the log file is not full; this can cause EAServer to hang. Trace the connection using the Ribo utility to verify that the last SQL request passed. For information about using Ribo, see the jConnect for JDBC Installation Guide.
If you are making a JDBC connection, turn on the JCM debug flag to identify any SQL requests that may be causing the problem; try connecting through isql (or a vendor-supplied tool for a non-Sybase database) to check the response time.
Check whether a specific component or Web application may be responsible:
Try another component.
Review component properties. Is the component shared? Are variables set unexpectedly?
Review the component code to look for:
A non-threadsafe sleep call
Synchronization for static variables
Proper release of resources
Try using the Apache Tomcat servlet engine to host your Web components, delegating EJB requests to EAServer. See white paper #1016589: Using EAServer 4.0 with Apache Tomcat 3.3 for details.
If there is no response from any facility, including HTTP and IIOP listeners, connection caches, or components:
Verify whether EAServer maximums are being reached; specifically, check if IIOP client sessions are at their maximum, or if the maximum thread limit (IIOP + HTTP) is reached.
Check whether other tasks are running, and whether operating system peaks are being hit.
Get a stack trace or dump. You must first kill the java process, run the core image, or generate the dump using a debugger. See Chapter 6, “Advanced Topics” for more information.