## The Service Component

### Table of Contents

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

### Introduction

A Service element represents the combination of one or more Connector components that share a single Engine component for processing incoming requests. One or more Service elements may be nested inside a Server element.

### Attributes

#### Common Attributes

All implementations of Service support the following attributes:

Attribute | Description
--- | ---
`className` | Java class name of the implementation to use. This class must implement the `org.apache.catalina.Service` interface. If no class name is specified, the standard implementation will be used.
`name` | The display name of this Service, which will be included in log messages if you utilize standard Catalina components. The name of each Service that is associated with a particular Server must be unique.

#### Standard Implementation

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

Attribute | Description
--- | ---
`gracefulStopAwaitMillis` | The time to wait, in milliseconds, when stopping the Service for the client connections to finish processing and close before the Service's container hierarchy is stopped. The wait only applies to Connectors configured with a `bindOnInit` value of `false` which is not the default. Any value of zero or less means there will be no wait. If not specified, the default value of zero will be used.

### Nested Components

The only components that may be nested inside a Service element are one or more Connector elements, followed by exactly one Engine element.

### Special Features

There are no special features associated with a Service.