1. Scenario
Recently in my project, I came to a situation where we need to promote some properties for archiving outgoing messages. So we created a correlation type and correlation set. We have also implemented suspend – retry pattern to handle if any exception occurs.
Problem
For this, we initialize correlation set in both the send shape (one is for sending the message and another for archiving). While building the project, we are getting the error “Correlation set cannot be initialized more than once”. We thought that since we are initializing the same correlation set in more than one send shape, we are getting this problem. But after removing the correlation set from one send port, we are still getting the error.
Resolution
After further research, we came to know that we have to define the correlation set within the local scope in which the send ports are used and not in the global scope.The concept is very similar to .NET. In .NET, if we declare a local variable globally and initialize that variable within a loop, then for each iteration, it will get initialized. In Biz Talk initialization of correlation set means the field within the correlation set is promoted to context property. Here, we are using two send ports and both the send ports try to initialize the same correlation set. So we are always supposed to initialize the correlation set within the loop so that each time the loop ends, the memory allocated to it ends and it will initialize the property only once.
2. Scenario
In our project, we have orchestration ProcessInbound.odx orchestration version 1.0 up and running. One fine day, new requirements come and we are supposed to change/update the ProcessInbound.odx.
Problem
Our project manager asks to deliver the orchestration DLL in such a way that no message gets lost at the time of deployment and as soon as new orchestration gets deployed, all the messages are routed to this new orchestration.
Resolution
After updating the ProcessInbound(1.0)
, we first go to assembly of orchestration DLL and make the version number as 1.1. Next, we build the orchestration DLL and go to BizTalk admin add new version of Orchestration DLL. So there are two ProcessInbound
orchestration versions 1.0 and 1.1. Then, we unenlist the old version of ProcessInbound(1.0)
and start the orchestration ProcessInbound(1.1)
. The advantage is this since we have unenlist the old version of orchestration all the messages which are routed to ProcessInbound(1.0)
gets queued up and no new messages are routed to it. If some messages get suspended once we resume the suspended message and it will be routed to new orchestration ProcessInbound(1.1)
. After sometime, we check whether there is no suspended message or instance and then we manually delete the unenlist orchestration and remove the old assembly from resources.
3. Scenario
Sometimes, we face error while configuring BizTalk:
Resolution
- Start the Visual Studio command prompt
- Go to the ssosql.dll C:\Program Files\Common Files\Enterprise Single Sign-On
- regasm ssosql.dll
4. Scenario
Sometimes, while configuring BizTalk 2009, I found that the Enterprise Single Sign on is not able to start and SSO not get configured.
Resolution
It is because probably your machine is having .NET Framework 3.5 and 4.0 both. To resolve this problem, I suggest you download a patch from:
and install. Hopefully it will help.