## The Server Component

### Table of Contents

- Introduction
- Attributes
  1. Common Attributes
  2. Standard Implementation
- Nested Components
- Special Features

### Introduction

A Server element represents the entire Catalina servlet container. Therefore, it must be the single outermost element in the `conf/server.xml` configuration file. Its attributes represent the characteristics of the servlet container as a whole.

### Attributes

#### Common Attributes

All implementations of Server support the following attributes:

Attribute | Description
--- | ---
`className` | Java class name of the implementation to use. This class must implement the `org.apache.catalina.Server` interface. If no class name is specified, the standard implementation will be used.
`address` | The TCP/IP address on which this server waits for a shutdown command. If no address is specified, `localhost` is used.

`port`

The TCP/IP port number on which this server waits for a shutdown command. Set to `-1` to disable the shutdown port.

Note: Disabling the shutdown port works well when Tomcat is started using Apache Commons Daemon (running as a service on Windows or with jsvc on un*xes). It cannot be used when running Tomcat with the standard shell scripts though, as it will prevent shutdown.bat|.sh and catalina.bat|.sh from stopping it gracefully.

`portOffset` | The offset to apply to `port` and to the ports of any nested connectors. It must be a non-negative integer. If not specified, the default value of `0` is used.
`shutdown` | The command string that must be received via a TCP/IP connection to the specified port number, in order to shut down Tomcat.

`utilityThreads`

The number of threads this Server will use for various utility tasks, including recurring ones. The special value of 0 will result in the value of `Runtime.getRuntime().availableProcessors()` being used. Negative values will result in `Runtime.getRuntime().availableProcessors() + value` being used unless this is less than 1 in which case 1 thread will be used. The default value is 1.

#### Standard Implementation

The standard implementation of Server is org.apache.catalina.core.StandardServer. It supports the following additional attributes (in addition to the common attributes listed above):

Attribute | Description
--- | ---
`utilityThreadsAsDaemon` | Set the daemon flag value for the utility threads. The default value is `false`.
`periodicEventDelay` | This value represents the delay in seconds between periodic lifecycle event invocation of the lifecycle listeners configured on this Server. The value is in seconds, and a negative or zero value will disable the invocations. If not specified, the default value for this attribute is 10 seconds.

### Nested Components

The following components may be nested inside a Server element:

- Service - One or more service element.
- GlobalNamingResources - Configure the JNDI global resources for the server.

### Special Features

There are no special features associated with a Server.