Transaction Log Parameters

Applies to: Windows | Windows Server

In this article
Transaction Log Parameters
Requirements
See Also

Transaction Log Parameters

This topic contains parameters that are used for transaction logs.

JET_paramBaseName
3

This parameter sets the three letter prefix used for many of the files used by the database engine. For example, the checkpoint file is called EDB.CHK by default because EDB is the default base name. The base name can be used to easily distinguish between sets of files that belong to different instances or to different applications.

Label Value

Default Value:

"edb"

Type:

String

Valid Range:

3 characters

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

Yes

Affects Reliability:

No

Affects Performance:

No

Affects Resources:

No

Availability:

All

JET_paramCircularLog
17

This parameter configures how transaction log files are managed by the database engine.

When circular logging is off, all transaction log files that are generated are retained on disk until they are no longer needed because a full backup of the database has been performed. In this mode, it is possible to restore from an older backup and play forward through all the retained transaction log files such that no data is lost as a result of the disaster that forced the restore. Regular full backups are required to prevent the disk from filling up with transaction log files.

When circular logging is on, only transaction log files that are younger than the current checkpoint are retained on disk. The benefit of this mode is that backups are not required to retire old transaction log files. The tradeoff is that a zero data loss restore is no longer possible.

Label Value

Default Value:

False

Type:

Boolean

Valid Range:

False, True

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

Yes

Affects Reliability:

Yes

Affects Performance:

No

Affects Resources:

Yes

Availability:

All

JET_paramCommitDefault
16

This parameter controls the default action taken when the outermost transaction is committed on a session. Any valid option that can be passed to JetCommitTransaction can also be made to be the default for all sessions in an instance and/or for a specific session. See JetCommitTransaction for more details on these options.

This parameter has an impact on the reliability and performance of transactions. Please see JetCommitTransaction for more details.

Label Value

Default Value:

0

Type:

JET_GRBIT (integer)

Valid Range:

A valid option for JetCommitTransaction

Scope:

Instance or Session

Set After JetCreateInstance:

Yes

Set after JetInit:

Yes

Affects Physical Layout:

No

Affects Reliability:

Yes

Affects Performance:

Yes

Affects Resources:

No

Availability:

All

JET_paramDeleteOldLogs
48

When this parameter is true and the transaction log files pointed to by the log file path (JET_paramLogFilePath) are all of an obsolete version then those transaction log files will be automatically deleted.

Windows 2000:  Care must be taken with the use of this parameter when upgrading a database from Windows NT to Windows 2000. If the database is not in a consistent state and the old log files are deleted then the contents of the database will be lost.

Label Value

Default Value:

Windows 2000:  False

Windows XP:  True

Type:

Boolean

Valid Range:

False, True

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

Yes

Affects Reliability:

Yes

Affects Performance:

No

Affects Resources:

No

Availability:

All

JET_paramIgnoreLogVersion
47

If this parameter is true then the database engine will not validate the transaction log file version number during JetInit.

Windows XP:  As of Windows XP, this parameter is obsolete and does not affect the operation of the database engine.

Label Value

Default Value:

False

Type:

Boolean

Valid Range:

False, True

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

No

Affects Reliability:

Yes

Affects Performance:

No

Affects Resources:

No

Availability:

All

JET_paramLegacyFileNames
136

This parameter provides backwards compatibility with the file naming conventions of earlier releases of the database engine.

The following options are currently supported:

JET_bitESE98FileNames

When this option is present then the database engine will use the following naming conventions for its files:

  • Transaction Log files will use .LOG for their file extension

  • Checkpoint files will use .CHK for their file extension

Label Value

Default Value:

JET_bitESE98FileNames

Type:

JET_GRBIT (integer)

Valid Range:

0, JET_bitESE98FileNames

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

Yes

Affects Reliability:

No

Affects Performance:

No

Affects Resources:

No

Availability:

Windows Vista and later releases

JET_paramLogBuffers
12

This parameter will configure the amount of memory used to cache log records before they are written to the transaction log file. The unit for this parameter is the sector size of the volume that holds the transaction log files. The sector size is almost always 512 bytes, so it is safe to assume that size for the unit.

This parameter has an impact on performance. When the database engine is under heavy update load, this buffer can become full very rapidly. A larger cache size for the transaction log file is critical for good update performance under such a high load condition. The default is known to be too small for this case.

Windows XP and Windows 2000:  On Windows XP and previous releases, it is not recommended to set this parameter to a number of buffers that is larger (in bytes) than half the size of a transaction log file.

Label Value

Default Value:

Windows 2000, Windows XP, and Windows Server 2003:  80

Windows Vista:  126

Type:

Integer

Valid Range:

Windows 2000, Windows XP, and Windows Server 2003:  80 – 2147483647

Windows Vista:  1 – 2147483647

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

No

Affects Reliability:

No

Affects Performance:

Yes

Affects Resources:

Yes

Availability:

All

JET_paramLogCheckpointPeriod
14

This parameter configures the database engine to take a checkpoint when the specified number of log file sectors has been generated.

Windows XP:  As of Windows XP, this parameter is obsolete and does not affect the operation of the database engine.

Label Value

Default Value:

1024

Type:

Integer

Valid Range:

0 – 2147483647

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

No

Affects Reliability:

Yes

Affects Performance:

Yes

Affects Resources:

No

Availability:

All

JET_paramLogFileCreateAsynch
69

When this parameter is set to true, the database engine will create the next transaction log file as the current transaction log file is consumed. The intent is to minimize the time spent switching from one transaction log file to the next under a heavy update load.

Label Value

Default Value:

True

Type:

Boolean

Valid Range:

False, True

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

Yes

Affects Reliability:

No

Affects Performance:

Yes

Affects Resources:

Yes

Availability:

Windows XP and later releases

JET_paramLogFilePath
2

This parameter indicates the relative or absolute file system path of the folder that will contain the transaction logs for the instance. The path must be terminated with a backslash character, which indicates that the target path is a folder. The transaction log files contain the information required to bring the database files to a consistent state after a crash. They are typically named EDB*.LOG. The contents of the transaction log files are just as important (if not more so) than the database files themselves. Every effort should be made to protect them.

There will also be additional reserve log files named RES1.LOG and RES2.LOG stored along with the ordinary log files. The contents of these files are not important as their only purpose is to reserve disk space to allow the engine to shut down gracefully in a low disk scenario. These will also be a temporary log file typically named EDBTMP.LOG in this same folder. The contents of this file are not important either. This file is a new log file being prepared for use.

The properties of the host volume of the transaction log files and their placement relative to the other files used by the database engine can dramatically impact performance.

Note  If a relative path is specified then it will be relative to the current working directory of the process that hosts the application that is using the database engine.

Label Value

Default Value:

"."

Type:

Folder Path (string)

Valid Range:

0 – 246 characters

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

Yes

Affects Reliability:

Yes

Affects Performance:

Yes

Affects Resources:

No

Availability:

All

JET_paramLogFileSize
11

This parameter will configure the size of the transaction log files. Each transaction log file is a fixed size. The size is equal to the setting of this system parameter in units of 1024 bytes.

This parameter has an impact on reliability. If the setting is too small then the maximum number of log files (1048575) will be reached much faster. When this happens, the instance must be shutdown cleanly, the existing log files must be deleted, and the instance must be restarted. This action will not only reduce the availability of the application but it will also invalidate any previous backups of the application's database.

This parameter has an impact on performance. If the setting is very large then JetInit will be slow because the database engine must read the youngest log file (at a minimum) when it initializes. If the setting is very large then it will also take longer to switch between log files. If the setting is very small then more log files will need to be created for a given number of updates which will add more overhead.

Label Value

Default Value:

5120

Type:

Integer

Valid Range:

Windows 2000, Windows XP, and Windows Server 2003:  128 – 32768

Windows Vista:  64 – 32768

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

Yes

Affects Reliability:

Yes

Affects Performance:

Yes

Affects Resources:

Yes

Availability:

All

JET_paramLogWaitingUserMax
15

This parameter attempts to optimize the flush of the log buffer caused by a durable commit by waiting for a specified number of sessions to wait for a durable commit prior to forcing a flush to occur in the hope that another transaction will share the flush.

Windows XP:  As of Windows XP, this parameter is obsolete and does not affect the operation of the database engine.

Label Value

Default Value:

3

Type:

Integer

Valid Range:

0 – 2147483647

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

No

Affects Reliability:

No

Affects Performance:

Yes

Affects Resources:

No

Availability:

All

JET_paramRecovery
34

This parameter is the master switch that controls crash recovery for an instance. If this parameter is set to "On" then ARIES style recovery will be used to bring all databases in the instance to a consistent state in the event of a process or machine crash. If this parameter is set to "Off" then all databases in the instance will be managed without the benefit of crash recovery. That is to say, that if the instance is not shut down cleanly using JetTerm prior to the process exiting or machine shutdown then the contents of all databases in that instance will be corrupted.

Disabling recovery is useful in special circumstances where it is known that the contents of a database are not useful in the event of a crash. Recovery should be enabled for all other cases.

Label Value

Default Value:

"On"

Type:

String

Valid Range:

0 – 259 characters

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

Yes

Affects Reliability:

Yes

Affects Performance:

Yes

Affects Resources:

Yes

Availability:

All

JET_paramSystemPath
0

This parameter indicates the relative or absolute file system path of the folder that will contain the checkpoint file for the instance. The path must be terminated with a backslash character, which indicates that the target path is a folder. The checkpoint file is a simple file maintained per instance that remembers the oldest transaction log file that must be replayed to bring all databases in that instance to a consistent state after a crash. The checkpoint file is typically named EDB.CHK.

Note  If a relative path is specified then it will be relative to the current working directory of the process that hosts the application that is using the database engine.

Label Value

Default Value:

"."

Type:

Folder Path (string)

Valid Range:

0 – 246 characters

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

Yes

Affects Reliability:

No

Affects Performance:

No

Affects Resources:

No

Availability:

All

JET_paramWaitLogFlush
13

This parameter attempts to optimize the flush of the log buffer caused by a durable commit by waiting for a specified time period prior to forcing a flush to occur in the hope that another transaction will share the flush.

Windows XP:  As of Windows XP, this parameter is obsolete and does not affect the operation of the database engine.

Label Value

Default Value:

0

Type:

Integer

Valid Range:

0 – 2147483647

Scope:

Instance or Session

Set After JetCreateInstance:

Yes

Set after JetInit:

Yes

Affects Physical Layout:

No

Affects Reliability:

No

Affects Performance:

Yes

Affects Resources:

No

Availability:

All

JET_paramLegacyFileNames
136

This parameter is used to specify the file naming compatibility features to maintain with the Windows Server 2003 and previous file naming scheme. For more information about the different files and their naming see Extensible Storage Engine Files.

The JET_bitESE98FileNames ensures the file extension used on the transaction log files and the checkpoint file are the same as that used in Windows Server 2003. Note if upgrading from Windows Server 2003, this bit still need not be specified, as the engine will automatically upgrade the file extensions if JET_paramCircularLog is set to true, or maintain the older log extension if JET_paramCircularLog is false.

Note  To set a bit, the value should first be retrieved, and then "or" in the desired compatibility bit.

Label Value

Default Value:

JET_bitESE98FileNames

Type:

JET_GRBIT (integer)

Valid Range:

JET_bitESE98FileNames

Scope:

Instance

Set After JetCreateInstance:

Yes

Set after JetInit:

No

Affects Physical Layout:

Yes

Affects Reliability:

No

Affects Performance:

No

Affects Resources:

No

Availability:

Starting with Windows Server 2008 and Windows Vista

Requirements

Requirement Value

Client

Requires Windows Vista, Windows XP, or Windows 2000 Professional.

Server

Requires Windows Server 2008, Windows Server 2003, or Windows 2000 Server.

Header

Declared in Esent.h.

See Also

Extensible Storage Engine Files
JetCommitTransaction
JetCreateInstance
JetInit
JetTerm