Reputation: 2046
I have a simply value mapping functoid with a hard-coded string value in a Biztalk Transform which I need to change. I'd rather not re-deploy and regression test an entire orchestration just for this one value. Is there any way to change this on production without re-deploying the orchestration?
Upvotes: 0
Views: 139
Reputation: 565
You have two solutions :
1 - Like said before by @Vikas isolate map and deploy just this artefact
2 - You can and should rather put your value is a SSO Storage and retrieve it at runtime in your orchestration https://seroter.wordpress.com/2007/09/21/biztalk-sso-configuration-data-storage-tool/ so no need to redeploy at all
Upvotes: 1
Reputation: 21661
BizTalk best practices here dictate that different artifact types should be in different projects. This allows you to deploy just the Maps assembly, like so (after unenlisting any orchestration that uses maps directly):
btstask AddResource /A:<ApplicationName> /T:System.BizTalk:BizTalkAssembly /Ov /So:Maps.dll /Op:GacOnAdd,GacOnImport,GacOnInstall
When possible, put transforms on ports rather than in orchestrations. This helps alleviate the problem of having to unenlist orchestrations, and should perform better, but isn't always practical (sometimes an orchestration needs to decide which map, or use multiple maps, or ...). In a case like that, you can redeploy the maps assembly and restart your host instances without redeploying orchestrations.
Avoid hard coded values in maps and orchestrations. Point them to a static variable in a static C# utility class. The C# assembly can be redeployed without redeploying a map or orchestration (just GAC the C# assembly and restart your host instance). The C# assembly can also be directed to point to some other storage, such as SSO, a database, a WCF/Web service, etc.
Upvotes: 2
Reputation: 1510
You should put your maps in a separate assembly and while installing you just need to GAC the map assembly. Depending on the deployment model you use, it can vary how you GAC BizTalk assembly. But if you just separate your assemblies in this way, you can isolate the change.
Upvotes: 1