MORE INFORMATION
The following is a list of typical event log entries logged by MTS, and a short explanation of these event log entries. They are organized by the type of underlying cause for the error. This is a sample of what you may see, and does not include all possible MTS event log entries.
Object Creation Problems
These errors indicate that component DLL did not create a component when asked to by MTS. The following are possible work arounds for this error:
- Verify if the component can be created outside of MTS (for example, OLE View or simple Visual Basic Client executable).
- Debug the DLL.
- If there is a process stability issue, then isolate the component DLL in its own package and simplify the component to determine the cause.
Eventlog Entry
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. Internal Check Failure on condition: m_lcBinds == 0 (Package: rmaobjects)(Microsoft Transaction Server Internals Information: File: d:\viper\src\runtime\mtxex\activity.cpp, Line: 287)
This error indicates that MTS was unable to obtain the Class Object (object creation object) from the component DLL. If the DLL was developed using C++, this could be a programming problem. If it's a Visual Basic DLL, this means the DLL has been corrupted and has a stability problem.
Eventlog Entry
The run-time environment caught an exception during a call into your component. This error caused the process to terminate. IClassFactory::CreateInstance (Package: Crash) (Microsoft Transaction Server Internals Information: File: i:\viper\src\runtime\cfw\cfw.cpp, Line: 473)
The object class factory (object creation object) has thrown an unhandled exception when asked to provide an object. If the object was written in C++, it means that a C++ object class in the component DLL performed an illegal operation in its constructor or in the Microsoft Active Template Library's (ATL)
FinalConstruct function the first time it is constructed. The return value to clients may be 0x800706be ('The remote procedure call failed').
Eventlog Entry
The run time environment caught an exception during a call into your component. This error caused the process to terminate. DllGetClassObject (Package: OMS) ( Microsoft Transaction Server Internal Information : File: D:\viper\src\runtime\cfw\cfw.cpp, Line: 273 ).
This indicates that the component DLL performed an illegal operation when MTS calls the
DllGetClassObject to obtain a class object (object creation object). The value that is returned to clients is 0x800706be (
RPC_S_CALL_FAILED, which means 'The remote procedure
call failed').
Eventlog Entry
The run time environment caught an exception during a call into your component. This error caused the process to terminate. InitialBind (Package: Crash) (ProgId: Crash.Crasher.1) (CLSID: {157732AE-16D7-11D4-8801-00C04FB9CD9A}) (Interface: IClassFactory) (IID: {00000001-0000-0000-C000-000000000046}) (Method: 3) (Microsoft Transaction Server Internals Information: File: i:\viper\src\runtime\context\ccontext.cpp, Line: 2098)
This error indicates that the component DLL performed an illegal operation while creating an object.
Eventlog Entry
Failed on creation from object context: CoGetClassObject (ProgId: xxxx.xxxx) (CLSID: {B57CF3F7-66D3-496A-9D3B-55AE65A952FB}) (Interface: IClassFactory) (IID: {00000001-0000-0000-C000-000000000046}) (Microsoft Transaction Server Internals Information: File: d:\viper\src\runtime\context\ccontext.cpp, Line: 1285)
This error indicates that the component DLL returned an error when it was asked by MTS to create an object.
If the object is being created by an Active Server Pages (ASP) page, the following KB may provide an explanation:
241057 PRB: Server Execution Failed when calling MTS COM Component from ASP
Eventlog Entry
Failed on creation within a server process. InitialBind (Package: Crash) (ProgId: Crash.Crasher.1) (CLSID: {157732AE-16D7-11D4-8801-00C04FB9CD9A}) (Interface: IClassFactory) (IID: {00000001-0000-0000-C000-000000000046}) (Method: 3) (Microsoft Transaction Server Internals Information: File: i:\viper\src\runtime\context\ccontext.cpp, Line: 2032)
This error occurs when an error is returned by the DLL when it creates an object. An error returned by the
FinalConstruct function of a C++ ATL component, or an error raised in the Class_Initialize event of a Visual Basic class can cause this.
Unhandled Exceptions
These errors occur when a component performs an illegal action, and does not handle the exception. MTS traps this error. When the proper symbols are installed, a call stack is available at the bottom of the event log description. Review the call stack to determine the cause of the exception.
Eventlog Entry
An object call caused an exception.
(IID:{51372AEF-CAE7-11CF-BE81-00AA00A2FA25}) (Method: 3)
(Microsoft Transaction Server Internals Information:
File: d:\viper\src\runtime\mtxex\activity.cpp, Line: 889)
(Exception: C0000005) (Address: 0x78001799)
This error occurs when a component registered in MTS performed an illegal action (often an access violation). MTS traps the exception, and then brings down the process.
Eventlog Entry
An object call caused an exception. (Package: Crash) (ProgId: Crash.Crasher.1) (CLSID: {157732AE-16D7-11D4-8801-00C04FB9CD9A}) (Interface: ICrasher) (IID: {157732AD-16D7-11D4-8801-00C04FB9CD9A}) (Method: 7) (Microsoft Transaction Server Internals Information: File: i:\viper\src\runtime\cw\cwlib.cpp, Line: 935) (Exception: C0000094) (Address: 0x01201cd1)
Crash + 0x1CD1
mtxex!ContextWrapper::OnCall(unsigned int,void * const,unsigned long * const) + 0x1C7
mtxex!CWList::VbStopDebugging(void) + 0x281C
RPCRT4!NdrStubCall2 + 0x4E0
RPCRT4!NdrClearOutParameters + 0x5B2
OLEAUT32!LHashValOfNameSysA + 0x5BDD
This error indicates that a component registered in MTS performed an illegal operation (an access violation) during a method call. MTS traps the exception, and then brings down the process. The Prog ID of the component is included in the event log, as are the name of the package, the interface, and the call stack.
Miscellaneous
Eventlog Entry
The run-time environment was unable to load an application component due to either an error obtaining its properties from the catalog, loading the DLL, or getting the procedure address of DllGetClassObject. This error caused the process to terminate. E:\Code\Crash\Debug\Crash.dll (Package: Crashing) (Microsoft Transaction Server Internals Information: File: i:\viper\src\runtime\cfw\ccomdll.cpp, Line: 161)
This error indicates that MTS was unable to load the DLL. DllMain may have either returned FALSE or, if the DLL was generated by Visual Basic, Sub Main may have raised an error.
Eventlog Entry
Unexpected object reference count. The object still had references after
the run-time environment released its last reference. Unbind (Package:
PSLk108 OSEP) (ProgId: Project1.Class1) (CLSID:
{EA6CD25E-2B12-11D3-8F30-0001FA328EF7}) (Interface: IUnknown) (IID:
{00000000-0000-0000-C000-000000000046}) (Method: 2) (Microsoft
Transaction Server Internals Information: File:
d:\viper\src\runtime\context\ccontext.cpp, Line: 2807)
This log means that an object did not return a "0" from
IUnkown.Release when the MTS context wrapper was released it. This is an informational message that indicates the possibility of a leak.
Eventlog Entry
The following information is part of the event: (IID:
{208B3651-2B48-11CF-BE10-00AA00A2FA25}) (Method: 7) (Microsoft Transaction
Server Internals Information: File: d:\viper\src\resdisp\mtxdm\cholder.cpp,
Line: 220) (Exception: C0000005) (Address: 0x041d1063)
ilxdisp + 0x1063
MtxDm!CHolder::SafeDispenserDriver::DestroyResource(unsigned long) + 0x3D
MtxDm!CHolder::ProcessDestroyList(class CRes *) + 0x39
MtxDm!CHolder::FreeResource(unsigned long) + 0x9A
When an error is trapped in the CHolder.cpp file, the cause is a faulty Microsoft Open Database Connectivity (ODBC) driver. The error is an access violation or some other illegal operation performed by the ODBC driver. To resolve this error, upgrade to the latest version of the ODBC driver. You may need to contact the driver vendor. The call stack at the bottom of the error message varies with the ODBC driver being used.
Eventlog Entry
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. CAspSecurity::CallSecurityCheck; CoImpersonateClient failed (hr: 0x800706e5). (Package: System) (Microsoft Transaction Server Internals Information: File: i:\viper\src\runtime\security\csecobj.cpp, Line: 1257)
This error indicates that there is a process corruption. A DLL in the process corrupts the process state. MTS checks it's internal state, and if it finds something unexpected, it logs an event and then terminates the process.
The description for Event ID ( 4097 ) in Source ( Transaction Server )
could not be found. It contains the following insertion string(s):
Internal Check Failure on condition: pThread != NULL
(Microsoft Transaction Server Internals Information:
File: d:\viper\src\runtime\mtxex\activity.cpp, Line: 639).
This error indicates that there is a process corruption.
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. Internal Check Failure on condition:
hr == S_OK (Package: MTS Test A) (Microsoft Transaction Server Internals Information: File: d:\viper\src\runtime\context\cuserprops.cpp, Line: 1019)
This error indicates that there is a process corruption.