Just a short note and apology to those that have used the contact form in the last few weeks. While we have been working to find a suitable method to stop spam we have disabled the email functionality altogether – which has affected the contact form as well. Messages sent through the contact form over the last couple of weeks may therefore not have reached us. Since enabling a new captcha, reCAPTCHA, spam has stopped and the email functionality is once again enabled. I can highly recommend it. If you feel you have not received a response to your message, please accept our apology and feel free to try again.
Category: Administration
Redeploying a schema assembly…
If I ask you upfront: Can I redeploy an assembly to BizTalk (that contains a schema) that is referenced by (and used in) another assembly? – What would you say?
Some of you might say yes, some might say no. And you’d both be right! It all depends on what it is being used by and how it’s deployed.
Redeploying a schema referenced by a map in another assembly
Yes. This will work – provided you specify overwrite when redeploying or updating the resource, and regardless if the resources are placed in the same or different applications. The behavior is the same in all relevant tools, whether it is Visual Studio, BizTalk Administration Console or the BtsTask tool. For the remainder of the discussion I’ll use BtsTask only, since it has the easiest (or at least most verbose) output to follow.
| Sidenote: If you don’t specify overwrite, you’ll get something like: Error: Failed to add resource(s). Resource (-Type=”System.BizTalk:BizTalkAssembly” -Luid=”SchemaProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0a220f093608cb3f”) already in store. 1) Use BTSTask’s overwrite flag or 2) Set redeploy flag to true in BizTalk Project or 3) Click overwrite all checkbox in Admin MMC to update if the resource exists in the specified target application “SchemaApplication”. Overwrite flag will be ignored if the resource is associated with another application. |
Redeploying a schema referenced by an orchestration in another assembly in the same application
Yes. This will work. It assumes that the orchestration is unenlisted (which may be a huge problem in some cases), or you will get an error. If it is however, and as long as you specify the overwrite flag, BtsTask will happily inform you of it’s progress telling you exactly what it’s doing – which is to find the referencing resources, save their binding information, removing them, then doing the same with the thing you want to redeploy, then deploying the thing you are deploying and applying it’s bindings, and finally deploying the referencing resources and applying their tucked away bindings.
The tools does all this for you, in a controlled manner under one transaction that can be rolled back if something fails. BtsTask output is here.
Redeploying a schema referenced by an orchestration in another assembly in another application
No. This is where the fun stops. You cannot do this with the out of the box tools. The Application boundary will stop you. To be frank: WTF!? For someone approaching BizTalk Server 2006/R2/2009 from a 2004 (single/no application) perspective this could invalidate their whole deployment strategy. BtsTask output is here.
In Summary
Why is this happening? If we use Reflector to disassemble BtsTask and the Deployment API’s it uses it’s apparent that the whole things is built around an Application and it’s around an Application that everything revolves. So… If you are faced with this kind of requirement for your deployment scenarios – the tools won’t do it for you – you have to do it yourself. Mimicking the steps taken by BtsTask, but without the dependency on Application, is my recommended approach. But the implementation of that is for another post…
Has anyone already done this and have or know of a tool developed for this purpose?
Update: The odd cases
I want to add that I make no claim to cover all scenarios in the above write up. I only wanted to highlight the Application boundary as one of the things that will have a big impact on redeploying schemas. We have for example come across scenarios such as when an orchestration within the same application is “specify later”-bound to a port, on which there are maps, for which there are no referential relationship with the orchestration assembly, though there are with the schema assembly being redeployed. This scenario may fail, depending on your luck, where BizTalk is unaware of the correct order to re-deploy these things. This may result in the orchestration (and the port) being re-added before the assembly containing the maps is in place. Which in itself will fail since an attempt to add a binding containing a port that has maps configured that are not deployed will of course not work. There are more scenarios, and it would be unfair to expect any tool to cover them all.
April post-swebug-event resources, part 1
Slides for last wednesdays session with Brian Loesgen and Alan Smith – Development & Administration Best Practices are available through the BizTalk User Group Sweden site here. Check the lower right corner downloads.
UPDATE: Video available here and here.
We used a customized version of the floatzam application and took some pictures of people as they arrived and had tweets, rss and flickr pictures appear on screen live during the period leading up to event starting. All good fun. Not too many saw it though.
I will updates this post when the videos are uploaded to channel9.
Meanwhile, here are some pictures from wednesdays and thursdays events.
Flickr:
http://www.flickr.com/photos/37233849@N02/
Twitpic.
http://twitpic.com/3emkg
http://twitpic.com/3cp62
http://twitpic.com/3elog
A BizTalk Developers approach to Dublin
Relax. Grab a beer (a Guiness perhaps). Dublin, the application server role extension to WAS/IIS, is to be released roughly three months after Visual Studio 2010, so somewhere around 1,5-2 years from now. There is still time to come to grips with it. Even so… Although purposefully and overly simplified from the technological aspect from the visual aspect Dublin looks like the BizTalk Admin Console. It acts the same. The terms used are the same. There the queries for messages, there are Active instances (Running or Ready to Run), there are Suspended instances – which you can resume or terminate, there is context based routing, it imports and exports applications easily etc. But Dublin is of course much more then a user interface. When you dive down into it, it seperates itself through a number of things. Read more at Charles Youngs post here. But BizTalk developers, don’t worry, you’ll quickly feel at home.
BizTalk database sizing statistics
In the hope that this might help someone who is tasked to estimate the size of BizTalk Server 2006 databases, I’m offering a few statistics.
These statistics comes from an engagement that uses very few orchestrations and more or less does messaging only – ie do all the work in pipeline components and/or maps. Just to give you a hint of the volumes we are talking about – here are some numbers from the beginning of May:
AvgRecvKB | AvgSndKB | Count | Month | Day |
812 | 7274 | 476 | 5 | 1 |
479 | 4111 | 1130 | 5 | 2 |
970 | 10877 | 444 | 5 | 3 |
680 | 10328 | 357 | 5 | 4 |
443 | 3288 | 1114 | 5 | 5 |
Now we have only been doing the volumes specified in the above table for roughly two months, before that is has been smaller but incrementally increasing (it would too drawn out to give the full story). I know that gives you a somewhat incomplete background, but that’s just how it is. Here are the sizes of the base BizTalk Server databases (all figures are in MB).
Database | Data | Log | Total | Free |
BAMPrimaryImport | 655 | 380 | 1034 | 637 |
BizTalkMgmtDb | 46 | 43 | 87 | 44 |
BizTalkMsgBoxDb | 253 | 556 | 807 | 758 |
SSODB | 13 | 13 | 25 | 15 |
I guess I should also mention that we have the BizTalk backup jobs doing full backups on a daily basis, as well as trasaction log backups every 20 minutes, and the DTA purge and archive setup for 12 live hours and 7 hard days. We have roughly about 300 receive ports, 1000 receive locations and 400 send ports and 20 or so orchestrations. Regular BizTalk Tracking hasn’t been globally turned off, but is at a basic minimum. A BAM Tracking component does the real tracking as far as monitoring goes.
Do you have any statistics that you could perhaps share with me?