INFO: MTS/COM+ Event ID: 4097 (286365)



The information in this article applies to:

  • Microsoft Transaction Server 2.0
  • Microsoft COM+ 1.0

This article was previously published under Q286365

SUMMARY

When Microsoft Transaction Server or Microsoft COM+ encounters a fatal exception, such as an access violation, one of the following errors may be logged in the Application Event Log:

Under COM+ (in Microsoft Windows 2000)
Event Type: Error
Event Source: COM+
Event ID: 4097
Description:
The run-time environment has detected an inconsistency in its internal state. Please contact Microsoft Product Support Services to report this error. <more detailed error information>
Under MTS (in Microsoft Windows NT 4.0):
Event Type: Error
Event Source: Transaction Server
Event ID: 4097
Description:
The run-time environment has detected an inconsistency in its internal state and has terminated the process. Please contact Microsoft Product Support Services to report this error. <more detailed error information>

MORE INFORMATION

This error indicates that the internal error handling for MTS or COM+, which is known as Failfast, caught a potentially fatal exception. There are a wide variety of causes, and the event description includes specific error information about the nature and cause of the exception.

For example, if a component generates a fatal exception, MTS or COM+ handles that exception to make sure that it does not adversely affect the rest of the system's operation. However, because it is unlikely that the exception left the memory space of the hosting process in a consistent state (and there is no way to be sure whether it did), Failfast terminates the process that hosted the component that caused the exception.

It is also possible for a database driver to cause this error. MTS loads dynamic-link library files (DLLs) to interface with database drivers; if the driver cannot be loaded for some reason, MTS may Failfast.

How to Troubleshoot Event ID 4097

Use the following steps to troubleshoot the Event ID 4097 error message:
  • If your custom components access a database, upgrade to the latest version of the Microsoft Data Access Components (MDAC). You can download the latest version of MDAC from the following Microsoft Web site:
  • If your components access a third-party database system (such as Oracle, Sybase, or DB2), make sure that you have the newest version of the database client drivers that are compatible with MTS and COM+. For more information on using these database systems, see the "References" section.
  • Use OLEView.exe to verify that your custom components can be instantiated. To do this, follow these steps:
    1. Run OLEView.exe. Under All Objects, locate the ProgID of your component.
    2. Click the plus sign (+) next to the ProgID to create an instance of your component.
    3. If it succeeds, the ProgID turns to bold type and expands to display the component interfaces.
  • Re-apply the current service pack for Windows NT or 2000. Windows NT 4.0 users should apply Service Pack 6a, if possible.
  • If your components are written in Microsoft Visual Basic, verify that they were compiled with the Unattended Execution and Retained in Memory check boxes selected in the Project Properties dialog box. If they were not, set these options, as well as Binary Compatibility, in the Visual Basic Project Properties dialog box, and recompile the DLL(s).
  • Upgrade the server to the latest version of the Visual Basic run-time files. For information on how to obtain the latest version of the Visual Basic run-time files, see the "References" section.
  • Include robust error handling in your component code. Robust error handling both improves the stability of your components and provides rich error information for debugging.
If you encounter this error message, and none of the preceding steps resolves the problem, please contact Microsoft Product Support for assistance. For a complete list of Microsoft Product Support Services phone numbers and information about support costs, please go to the following address on the World Wide Web:

REFERENCES

For additional information, click the following article numbers to view the articles in the Microsoft Knowledge Base:

262187 Interpret the Microsoft Transaction Server events in the event log

269797 How to create error handlers in Visual Basic COM components

193893 Using Oracle with Microsoft Transaction Server and COM+

232831 Use the Merant 3.5 ODBC driver to work in production environments with IIS and MTS

197208 IBM DB2 driver available for use with MTS

290887 VBRun60sp6.exe installs Visual Basic 6.0 SP6 run-time files

264957 Visual Basic DLL has memory leaks and crashes in COM+ if 'Retain in Memory' is not set

241896 Threading issues with Visual Basic 6.0 ActiveX components


Modification Type:MajorLast Reviewed:5/27/2004
Keywords:kberrmsg kbinfo KB286365