ESE log buffers that are set too low can cause the Microsoft Exchange Information Store service to stop responding (328466)



The information in this article applies to:

  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange 2000 Server

This article was previously published under Q328466

SUMMARY

If a Microsoft Exchange 2000 Server or Microsoft Exchange Server 2003 Information Store service appears to stop responding (hang), you can use either the Adplus or the Userdump command-line utility to create a User.dmp file. For example, you can use the adplus command with the following syntax:

adplus.vbs -pn store.exe -hang

When you are debugging the User.dmp file in the store, if there are many threads that are similar to the following data, the JET log buffers value may be set to a value that is too low:

0:294> kb
ChildEBP RetAddr  Args to Child
6f93f7e4 77e867b0 00000000 6f93f7fc fffffdfa ntdll!_ZwDelayExecution+0xb
6f93f804 001f8783 00000001 00000000 002d80a7 KERNEL32!SleepEx+0x32
6f93f810 002d80a7 33ed42e0 3601e6d8 3601e6c0 ESE!UtilSleep+0x16
6f93f848 001c075c 3601e6d8 00000001 3601e6c0 ESE!ErrLGIDeferBeginTransaction+0xea
6f93f8a8 001c04b8 3601e710 3601e790 6f93f920 ESE!ErrLGReplace+0x8f
6f93f95c 001c0182 3601e790 00000800 028fd660 ESE!ErrNDReplace+0x1ed
6f93f9d0 001c2279 00000800 3601e6c0 00000000 ESE!ErrBTReplace+0x181
6f93fa0c 001c248f 00000800 00000000 00000000 ESE!ErrDIRReplace+0xec
6f93fca0 001c21ef 00000000 00000000 1db2cb50 ESE!ErrRECIReplace+0x4b3
6f93fcc4 001c210c 33e00740 33ed42e0 3601e6c0 ESE!ErrIsamUpdate+0xd7
6f93fcf4 001c209f 00000000 00000000 00000000 ESE!JetUpdateEx+0x43
6f93fd40 00419ad2 00800082 0080036e 00000000 ESE!JetUpdate+0x62
6f93fd74 004be2b8 00000001 00000000 00000000 store!JTAB_BASE__EcUpdate+0xdd
6f93fdcc 004747ef 00000000 00000001 00000000 store!LOGON__EcUpdateMailboxTable+0x45b
6f93fdf4 0047471e 12336890 00474eb1 00000001 store!LOGON__~LOGON+0xf0
6f93fdfc 00474eb1 00000001 1224c3e0 06e53fc8 store!LOGON__`scalar deleting destructor'+0x8
6f93fe14 00474e47 3c944288 06e53fc8 6f93feb8 store!EcReleaseLogonOp+0x6a
6f93fe28 00474dcd 3c944288 6f93fe48 004cdc36 store!SESS__ReleaseLogons+0x3c 
6f93fe34 004cdc36 0012c050 00502369 77d4ef2f store!SESS__Free+0x9
6f93fe3c 00502369 77d4ef2f 05da5b40 00000014 store!DestroyCxh+0x26
					

The JET threads that are in this "Delay Execution" state are in a tight while loop that repeatedly sleeps every 1 millisecond as long as the "errLGNotSynchronous" error condition is true.

MORE INFORMATION

Extensible Storage Engine (ESE) uses a set of log buffers to hold information in memory before it writes to the transaction logs. For large servers that are running Exchange 2000 Service Pack 1 (SP1) or Exchange 2000 Service Pack 2 (SP2), the default value of 84 is too low. This can cause excessive disk I/Os to the transaction log drive. You will see a significant decrease in performance if the server is under load or if users are sending large messages.

The Performance Monitor counter Database (Information Store Instance)\Log Record Stalls/sec indicates the number of log records that cannot be added to the log buffers per second because the log buffers are full. If either of the following results is true for Log Record Stalls/sec, you may have to configure the log buffers setting:
  • Average value is more than 10 per second.
  • Spikes (maximum values) are higher than 100 per second.
To correctly set the msExchESEParamLogBuffers value, use the following information:
  • For Exchange 2000, Exchange 2000 SP1, Exchange 2000 SP2, or Exchange 2000 SP3, set the value to 512.
  • For the original release version of Exchange 2003, Exchange 2003 SP1, or Exchange 2003 SP2, set the value to 9000.

    Important If you previously set the msExchESEParamLogBuffers value to 9000 for an earlier version of Exchange, make sure that you manually change the value after you apply Exchange 2000 SP3. The msExchESEParamLogBuffers value is not automatically changed when you install Exchange Server 2000 SP3 or Exchange Server 2003.
This parameter is stored in Active Directory for Exchange 2000 and Exchange 2003. Therefore, you must use ADSI Edit to view and change this value. To set the value of msExchESEParamLogBuffers to a higher value, follow these steps.

Warning If you use the ADSI Edit snap-in, the LDP utility, or any other LDAP version 3 client, and you incorrectly modify the attributes of Active Directory objects, you can cause serious problems. These problems may require you to reinstall Microsoft Windows 2000 Server, Microsoft Windows Server 2003, Microsoft Exchange 2000 Server, Microsoft Exchange Server 2003, or both Windows and Exchange. Microsoft cannot guarantee that problems that occur if you incorrectly modify Active Directory object attributes can be solved. Modify these attributes at your own risk.
  1. Start ADSI Edit.
  2. Double-click the Configuration container, expand CN=Services, expand CN=Microsoft Exchange, and then expand CN=ExchangeOrganizationName.
  3. Expand CN=Administrative Groups, expand CN=AdministrativeGroupName, and then expand CN=Servers.
  4. Expand CN=ExchangeServerName, expand CN=InformationStore, right-click CN=Storage Group Name, and then click Properties.
  5. In the Select a property to view box, click msExchESEParamLogBuffers.
  6. In the Edit Attribute box, type the appropriate value (based on your version of Exchange) for msExchESEParamLogBuffers, and then click Set.

    For computers that are running Exchange 2000, Exchange 2000 SP1, Exchange 2000 SP2, or Exchange 2000 SP3, set this value to 512. For computers that are running the original release version of Exchange 2003 or Exchange 2003 SP1, set this value to 9000.
  7. Click Apply, and then click OK.
You must restart the Microsoft Exchange Information Store service for the change to take effect.

REFERENCES

For more information about Exchange 2003 performance troubleshooting, see the Troubleshooting Microsoft Exchange Server 2003 Performance guide. To view this guide, visit the following Microsoft Web site:

Modification Type:MajorLast Reviewed:11/2/2005
Keywords:kbhowto KB328466 kbAudITPRO