Server crashes on start-up

To resolve or analyze a start-up crash:

  1. Set the JAGUAR_RANDOMSEED variable, which is known to resolve start-up crashes in some instances, especially if the server takes a long time to start. See Chapter 3, “Creating and Configuring Servers,” in the EAServer System Administration Guide for details.

  2. Make sure that the PATH and CLASSPATH variables are correctly set.

    Also verify which DLL or library versions were loaded, and class load locations. For Windows, see “ListDLLs”. For UNIX, use pmap or another command or tool appropriate for your platform.

  3. If operating in a cluster environment:

  4. Check the server log file. Besides reporting errors, the log file can also help determine how far along the start-up process was. The start-up tasks are:

    1. Load licensing files, check options

    2. Load network libraries for listeners

    3. Initialize JVM

    4. Initialize various data structures

    5. Load server ClassLoader

    6. Load JCM (Java Connection Management) caches, connectors, and resources

    7. Start services:

      • Repository, GC, JCM, and Naming ServletService

      • User services; for example, the message service

    Up to this point, the server is in Admin mode. If there are no problems, the server begins accepting regular client connections, as indicated by the console message “Accepting connections.” If a problem occurs, the server may remain in Admin mode as described in “Server starts in Admin mode”.

  5. Use the JagRepair server to:

  6. Set com.sybase.jaguar.server.jvm.verbose to true.

    This shows all JVM initialization details, listing each JAR file that is opened and each class file that is loaded.

    Try a different JVM version. If the problem persists, continue with the steps below.

  7. In the server start batch file, set ECHO to on. This provides more output and may help determine the point of failure.

  8. Gather crash information such as the load address. For Windows, see “ListDLLs”; for UNIX, use pmap or another command or tool appropriate for your platform.

    When the server crashes, the first step is to identify the crash address. You can obtain this from the console or log file. For example:

    jagsrv.exe Exception access violation (0xc0000005) 
       Address: 0x02af57c6 
    

    You can use the address to identify the crash area or the module being executed. When an executable is launched, it tends to use the same set of base addresses, as virtual addresses normally do not change. This helps determine the specific product or application to investigate. The address may show that the crash occurred outside of EAServer; for example, in a system module. If the crash occurred in EAServer or a Sybase module, the address may be helpful to Technical Support, and may point to a known issue.

  9. If EAServer crashes while running as a service, start EAServer in a console instead. A service typically runs under different resource constraints and permissions than a console.

  10. If the message service is configured, set cms.debug to true.