PRB: XLANG Schedule That Is Marked as "Treat the XLANG Schedule as a COM+ Component" Fails Activation from BizTalk Messaging (825064)
The information in this article applies to:
- Microsoft BizTalk Server 2002
SYMPTOMSIf an XLANG schedule is marked as Treat the XLANG schedule
as a COM+ component, activation fails in BizTalk Messaging and you receive the
following error message: Distributed transaction completed.
Either enlist this session in a new transaction or the NULL
transaction. CAUSEWhen you bind a BizTalk Messaging Port to an XLANG schedule,
the Orchestration Activation Component (OAC) passes documents to the schedule. The OAC writes the document that
the BizTalk Messaging engine was processing to a private Microsoft Messaging queue,
and then instantiates the schedule that is bound to the Messaging Port. The OAC instantiates the schedule that is bound to the Messaging Port under the context of a Microsoft Distributed Transaction Controller (MSDTC)
transaction.
If the XLANG schedule that is instantiated is marked as
Treat the XLANG schedule as a COM+ component, it will also
be instantiated under the context of an MSDTC transaction. In this scenario, a race condition may occur. In this race condition, the XLANG schedule tries to
enlist in the transaction that the OAC initiated, although the OAC
transaction has already been committed or aborted.WORKAROUNDTo prevent the XLANG schedule
from trying to enlist in the transaction that the OAC initiates when
the OAC instantiates the XLANG schedule, follow these steps: - In the XLANG
schedule, right-click the Begin shape, and then click Properties.
- Change the setting of Transaction model to Treat the XLANG schedule as a COM+ component.
- Change the setting of Transaction activation to Requires New.
STATUS This
behavior is by design.
| Modification Type: | Major | Last Reviewed: | 2/3/2004 |
|---|
| Keywords: | kberrmsg kbprb KB825064 kbAudDeveloper |
|---|
|