Microsoft KB Archive/291365

= INFO: MTS/COM+ Events 4104 and 4194 =

Article ID: 291365

Article Last Modified on 12/5/2007

-

APPLIES TO


 * Microsoft Transaction Services 2.0
 * Microsoft COM+ 1.0
 * Microsoft COM+ 1.5

-



This article was previously published under Q291365



SUMMARY
When a component that is installed into Microsoft Transaction Server (MTS) throws a fatal exception that is not handled, such as an Access Violation or Division by Zero, the following event (or similar) is logged in the Application event log:

Event Type: Error

Event Source: Transaction Server

Event Category: Context Wrapper

Event ID: 4104

Description: An object call caused an exception.  (Microsoft Transaction Server Internals Information: File: )

(Exception: )

(Address: )

In COM+ under Microsoft Windows 2000 and Microsoft Windows XP, the event may appear as follows:

Event Type: Error

Event Source: COM+

Event Category: SVC

Event ID: 4194

Description: The system has called a custom component and that component has failed and generated an exception. This indicates a problem with the custom component. Notify the developer of this component that a failure has occurred and provide them with the information below.



The serious nature of this error has caused the process to terminate.

Exception:

Address:

Call Stack:



MORE INFORMATION
MTS and COM+ log this error because a component method caused an unhandled exception. The additional information may include some combination of the ProgID, CLSID, package name, interface name, interface ID (IID), and a number of the method that caused the unhandled exception. The exception code indicates what type of exception occurred. Common exception codes are c0000005 for an Access Violation or c0000094 for Division by Zero.

The function call stack (if present) gives the best indication as to exactly how the exception occurred. The function at the bottom of the stack was called first, and the one on the top was called most recently. If you generated debug symbols for your component dynamic-link library (DLL) when you compiled it, the call stack should display the function names from your custom component. Otherwise, the call stack displays the DLL name and the memory offset within the DLL where the exception occurred.

The best way to troubleshoot this error is to make sure that you have the debug symbols for your custom component. If you do not, set the appropriate Project settings to generate symbols, and then recompile your DLL. The &quot;References&quot; section includes information about how to generate debug symbols for a Visual Basic component. You should also install the debug symbols for Windows. Then, the next time the exception occurs, the Event log error returns a call stack that includes useful information.

If you cannot determine the cause of the exception in your code, please contact Microsoft Product Support for assistance. Before you call, please download the Debugging Tools for Windows from the following Microsoft Web site:

http://www.microsoft.com/whdc/devtools/ddk/default.mspx

Then, follow the instructions in Microsoft Knowledge Base article 286350 to use AutodumpPlus, which dumps the MTS or COM+ process when the exception occurs. The Support Professional can then provide an FTP site where you can upload the process dump(s) for examination.

For a complete list of Microsoft Product Support Services phone numbers and information about support costs, see the following Microsoft Web site:

http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

