Article ID: 332188
Article Last Modified on 6/6/2007
APPLIES TO
- Microsoft BizTalk Server 2002 Standard Edition
- Microsoft BizTalk Server 2000 Standard Edition
- Microsoft Windows Server 2003, Standard Edition (32-bit x86)
- Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
- Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
- Microsoft Windows Server 2003, Web Edition
- Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
- Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
This article was previously published under Q332188
SYMPTOMS
A BizTalk Mapper database lookup functoid that works correctly when you test the map from Test Map on the Tools menu fails when it is called from a BizTalk channel. An error message similar to the following is generated in the BizTalk Server Application log:
This problem also occurs when a BizTalk Mapper scripting functoid calls a Microsoft COM+ application, and the COM+ application accesses a database transactionally.
CAUSE
This problem occurs if the database lookup functoid or scripting functoid cannot enlist in the transaction that is spawned by the BizTalk Messaging engine when the channel is called.
All database calls that are made from a BizTalk map must enlist in the transaction that is spawned by the BizTalk Messaging engine when a document is processed or the Messaging engine does not process the document and sends the document to the suspended queue.
RESOLUTION
To resolve this problem, follow these steps:
- Start the Component Services Microsoft Management Console (MMC) snap-in. To do this, click Start, point to Programs, point to Administrative Tools, and then click Component Services.
- Expand Computers, expand My Computer, and then expand COM+ Applications.
- Right-click the BizTalk Server Internal Utilities COM+ application, and then click Properties.
- Click the Advanced tab.
- On the Advanced tab, click to clear the Disable changes check box, and then click OK.
- Expand the BizTalk Server Internal Utilities COM+ application, expand Components, right-click BizTalk.InterchangeStateEngineTx.1, and then click Properties.
- Click the Transactions tab.
- On the Transactions tab, click Serialized in the Transaction Isolation Level box, and then click OK.
- Expand the COM+ application, expand Components, right-click the component you want, and then click Properties.
- Click the Transactions tab.
- On the Transactions tab, click Required in the Transaction Support box, click Serialized in the Transaction Isolation Level box, and then click OK.
- Shut down any COM+ applications for which you have changed the transaction isolation level, and then stop and restart the BizTalk Messaging Service. To shut down a COM+ application, right-click the COM+ application, and then click Shut down.
Note If the Shut down command is not available, the COM+ application is not running. Therefore, you do not have to shut down the COM+ application.
STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed in the "Applies to" section.
MORE INFORMATION
Steps to reproduce the problem
- Add a database lookup functoid to a BizTalk map, and then configure the database lookup functoid to query a remote SQL Server database.
- Verify that you can successfully run the database lookup functoid from Test Map on the Tools menu of the BizTalk Mapper.
- Call the map from a BizTalk Server channel to verify that you can run the database lookup functoid from the channel successfully.
- Stop the MSDTC service on the remote computer running SQL Server that the database lookup functoid is querying.
- Call the map from a BizTalk Server channel again.
REFERENCES
For more information about the "Failed to Enlist on calling object's transaction" error, click the following article number to view the article in the Microsoft Knowledge Base:
191168 Error "-2147168246 (8004d00a)" failed to enlist on calling object's transaction
For more information about the transaction isolation level of BizTalk Server 2002 COM+ components, click the following article number to view the article in the Microsoft Knowledge Base:
834439 Recommended transaction isolation level of BizTalk Server 2002 COM+ components
Keywords: kbprb KB332188