Applies to: Exchange Server 2010 SP3, Exchange Server 2010 SP2
Topic Last Modified: 2012-10-26
Servers that have the Microsoft Exchange Server 2010 Hub Transport server role or the Edge Transport server role installed use Extensible Storage Engine (ESE) database technology for certain transport server components. Formerly known as JET, ESE is a method that defines a low-level API to the underlying database structures in Exchange 2010. ESE is used for the following transport components:
- Message queue database A queue
is a temporary holding location for messages waiting to enter the
next stage of processing. Each queue represents a logical set of
messages that a transport server processes in a specific order. For
more information, see Understanding Transport
Queues.
- IP filter database The IP filter
database stores the IP Allow lists and IP Block lists that are part
of connection filtering. For more information, see Understanding Connection
Filtering.
The message queue database and the IP filter database are separate ESE databases. These databases don't share any resources. However, you can configure ESE database configuration options on the Hub Transport server or Edge Transport server that apply to all the ESE databases that exist on the server.
Overview of ESE Databases
ESE databases use log files to accept, track, and maintain data. To enhance performance, all transactions are written first to log files and memory, and then to the database file. The checkpoint file tracks the transaction log entries that have been committed to the database. During an ordinary shutdown of the Microsoft Exchange Transport service, uncommitted database changes found in the transaction logs are always committed to the database.
Circular logging is used for the message queue database and the IP filter database. This means that the history of committed transactions found in the transaction logs isn't maintained. Any transaction logs older than the current checkpoint are immediately and automatically deleted. Therefore, the transaction logs can't be replayed for message queue database recovery or IP filter database recovery from backup.
Understanding Storage Configuration
For best practice guidance about the storage configuration of ESE databases, see Understanding Storage Configuration.
Configuring Shared ESE Database Options on Transport Servers
The shared ESE database configuration options are available in the EdgeTransport.exe.config application configuration file located in the C:\Program Files\Microsoft\Exchange Server\V14\Bin directory. The EdgeTransport.exe.config file is an XML application configuration file associated with the EdgeTransport.exe file. EdgeTransport.exe and MSExchangeTransport.exe are the executable files used by the Microsoft Exchange Transport service. This service runs on every Hub Transport server or Edge Transport server. Changes saved to the EdgeTransport.exe.config file are applied after the Microsoft Exchange Transport service is restarted. If a configuration option is missing or is present and contains the default value, the default value is enforced.
This example shows the typical structure of the EdgeTransport.exe.config file.
Copy Code | |
---|---|
<configuration> <runtime> <gcServer enabled="true" /> </runtime> <appSettings> <add key="Configuration Option" value="Value" /> ... </appSettings> </configuration> |
You can add new configuration options or modify
existing configuration options in the
<appSettings>
section. Many configuration
options are unrelated to the shared ESE database options. Any
configuration options that don't involve the shared ESE database
options are outside the scope of this topic.
Note: |
---|
The parameter names in the <add key=../>
section are case sensitive. |
For information about the message queue database parameters available in the EdgeTransport.exe.config file, see Understanding Transport Queues.
The following table shows the shared ESE database configuration options available in the EdgeTransport.exe.config file.
Shared ESE database configuration options
Parameter name | Description |
---|---|
DatabaseCacheFlushStart |
This parameter enables the removal of cached database transactions from memory when the cache is overused. The value of this parameter represents the percentage of the cache that's unused. When the free database cache resources drop under the specified percentage, a background process writes the cached database transactions to the transaction log. The default value is 3. |
DatabaseCacheFlushStop |
This parameter suspends the removal of cached database transactions from memory when the cache utilization level returns to normal. The value of this parameter represents the percentage of the cache that's unused. When the free database cache resources increase to more than the specified percentage, the background process that writes the cached database transactions to the transaction log is suspended. The default value is 5. |
DatabaseCheckPointDepthMax |
This parameter controls the total allowed size of all uncommitted transaction logs that exist on the hard disk drive. The default value is 512MB. Setting the value of the DatabaseCheckPointDepthMax parameter too low can cause significant performance issues because uncommitted transactions are forcibly committed to the database instead of being written to transaction logs. We recommend that you don't modify the default value of the DatabaseCheckPointDepthMax parameter. |
DatabaseMaxCacheSize |
This parameter specifies the maximum size of the database cache in memory. The default value is 1GB. |
Remember that the message queue database and the IP filter database are isolated from one another. The ESE database files don't share database files, transaction logs, or caches. The shared configuration options apply to each database and its supporting infrastructure. For example, when you set the DatabaseMaxCacheSize parameter, you are also setting the maximum cache size for the message queue database and the IP filter database.