Imagine a scenario where you want to create 1400 receive locations; to make life simpler, you’d probably want to use WMI or the BizTalk Explorer OM.
Not much of an issue there, however what happens when you try an run some custom C# code that creates the receive locations (and therefore references the Microsoft.BizTalk.ExplorerOM assembly) from within an orchestration [expression shape] that executes as a 64-bit process?
You get the following error XLANG/S error:
Event Type: Error
Event Source: XLANG/s
Event Category: None
Event ID: 10034
Date: 14/08/2007
Time: 19:22:49
User: N/A
Computer: WINBT01
Description:
Uncaught exception (see the ‘inner exception’ below) has suspended an instance of service ‘Demo.Integration.CustomerLink.Orchestrations.UserAdministration(108ace24-3b9d-e084-c9ea-f342878676e6)’.
The service instance will remain suspended until administratively resumed or terminated.
If resumed the instance will continue from its last persisted state and may re-throw the same unexpected exception.
InstanceId: 95ae9c6b-9af4-468b-9a3c-6398d7fba629
Shape name: CreateFileReceiveLocationExpression
ShapeId: 3695bc5d-cec3-4c9b-b2ca-84e0917a7bc1
Exception thrown from: segment 1, progress 22
Inner exception: Explorer OM is not supported in a 64bit process.Exception type: BtsException
Source: Microsoft.BizTalk.ExplorerOM
Target Site: Void .ctor()
The following is a stack trace that identifies the location where the exception occuredat Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer..ctor()
at Demo.Integration.CustomerLink.FileReceiveLocation.Create(String user)
at Demo.Integration.CustomerLink.Orchestrations.UserAdministration.segment1(StopConditions stopOn)
at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception& exp)
Hmmm, that’s a bit odd, especially given that both the custom and Explorer OM assemblies are compiled to MSIL (not a target platform), which should suggest that when invoked from the 64-bit orchestration the JIT-Compiler will compile both to run a 64-bit process:
Hey Nick,
We have run into the same situation when deploying an app to a 64-bit environment. Did you have any luck getting around this? So far it does not look like setting the “32-bit only” flag is trivial, since we already have a host instance, and also we would not be leveraging the 64-bit platform.
Did you find an good replacements for ExplorerOM functionality for a 64-bit system?
Regards,
Allen
I am curious what the work around is on 64 bit environment if we are using the ExplorerOM. I need to be able to stop and start BizTalk applications programatically and the Sample App - ApplicationManager - that is provided in the Samples of the BizTalk 2006 R2 SDK does not work on 64 bit environment. Changing the Application to run under a 32 bit host is not an option.
Matt,
I agree that changing the Application to run under a 32 bit host is a pain and not something that should really be done - I no longer have a 64-bit environment on which to test, but I would be interested to see whether WMI has the same problems?
Alternatively, Microsoft are now accepting bug reports through its Connect website - I think this should be raised as a bug as its unacceptable in my opinion.
Nick.