by community-syndication | Mar 11, 2009 | BizTalk Community Blogs via Syndication
If you are writing a WCF LOB adapter that can be consumed through BizTalk, you need to be aware of certain issues that can manifest because of the way BizTalk interacts with WCF adapters. Some of these can have performance and scalability impact and hence you should consider them when designing/configuring the adapter.
Processing in IConnection/IConnectionFactory instance – When using SSO, for each message, BizTalk will end up creating a new IConnectionFactory and a new IConnection instance. If your adapter is doing a lot of processing in either of those instances, it can cause significant performance impact. So you will need to think of alternatives – possibly doing the processing upfront and caching.
Caching of LOB artifacts on IConnection instance – Typically you will have some LOB artifacts that will comprise the context associated with an IConnection instance. If your adapter is using WCF LOB Adapter SDK’s connection pooling, in the non SSO scenario, the IConnection instances will be closed only when the idle connection timeout expires. So you need to think about freeing up the LOB resources that comprise your connection context. If you make idle connection timeout too small, it would impact performance since LOB connection creation will incur an overhead and if you keep it at a large value then you will be holding on to LOB artifacts for a longer time than you really need to, possible scalability/performance impact.
Writing/promoting properties to BizTalk message context – When the adapter receives a WCF message from BizTalk, it will have all the properties comprising the BizTalk message context. For messages that originate from the adapter, if you want to have properties either written/promoted to BizTalk message context, you can look at http://technet.microsoft.com/en-us/library/bb246105.aspx on how to go about doing that.
Transaction overhead – BizTalk will by default start a transaction and send the message/process the response in that transaction scope. This can cause a significant overhead particularly if say the LOB doesn’t support transactions. In BizTalk 2009, there is an option on the Send port that lets you configure whether transactions should be enabled or not.
by community-syndication | Mar 11, 2009 | BizTalk Community Blogs via Syndication
I wanted a way to not show the MS-DOS prompt while I was working and the Event Log Emailer was running. So I found two methods to have the Event Log Emailer or any MS-DOS prompt not show up while a batch is executing.
Method 1: To have an MS-DOS Batch file run in a minimized window Create a shortcut to the Batch file. Right-click the shortcut and click properties. In the properties dialogue, find the program tab and choose run “minimized” in the pull-down box. Run the Batch file from the shortcut.
Method 2: To have an MS-DOS Batch file run in a hidden window: In these circumstances, there is no MS-DOS window, nor any corresponding Taskbar button, so the Batch Code should begin @ECHO OFF and end with CLS and/or EXIT, or the process may stall invisibly.
For example, if the Batch file to be run in a hidden window is named C:\WORK\MYBATCH.BAT, create the following .VBS file:
CreateObject(“Wscript.Shell”).Run “C:\WORK\MYBATCH.BAT”,0
Requires Windows Script Host installed. Double-click or otherwise execute the .VBS file, for example, with the START command: start MyFile.VBS to run the Batch file invisibly.
by community-syndication | Mar 11, 2009 | BizTalk Community Blogs via Syndication
That is all 🙂
RESTDESIGN.pdf
(998.26 KB)
Check out my new book on REST.
by community-syndication | Mar 11, 2009 | BizTalk Community Blogs via Syndication
Hello,
Let me discuss about a new feature that I introduced in version 10.11 that I released recently (http://blogs.technet.com/jpierauc/pages/msgboxviewer.aspx) :
MBV 10.11 (in GUI tool) allow you now to unselect some “mandatory” queries and prevent them to execute so, and select only some of them.
Maybe this feature can surprise you first if we consider these queries as “mandatory” but I found in fact the need to be able to select sometimes only few important queries to have very quickly result of a report, like the Jobs one, or the MsgBox Integrity one, or the MsgBox or DTA Tables size, or only send ports, etc..
if we are now able to disable some mandatory queries, there can not considered anymore as mandatory 😉 so I decided also to rename the “Mandatory queries” list to “Important Queries” in the interface.
Let me explain now how to unselect some important queries (so previously named “Mandatory”) :
There is now a global option in MBV named ”Can unselect some important queries” that you have to turn to “True” (it is “False” by default) in the global properties grid.
When you set it to “True” and display the Important Queries List, you will notice then check boxes in this list and also two butons Check All /Uncheck ALL , and you will be able so to select/unselect also these queries.
Notice that by default the behaviour is same than in previous versions: no check boxes are visible in this first Queries list,
so by default this feature is invisible !
Be careful however :
Topology Report and Warnings Report can be impacted if you unselect some specific important queries as some optional queries need for example some information returned by some important queries so you can have some errors or incomplete Topology and Warning reports depending of which important queries you have unselected.
So my recommendation is to use this feature only if you are interested by some specific query reports that you want to monitor
Let me kow your comments/questions on this feature !
JP

by community-syndication | Mar 11, 2009 | BizTalk Community Blogs via Syndication
[Source: http://geekswithblogs.net/EltonStoneman]
I was debugging a particularly nasty problem and found myself wanting to edit the manifest of a compiled .NET assembly, to change the version number of the assemblies it was referencing. Not necessarily best practice, but in this case it would enable me to confirm the exact issue without a two-hour build-and-deploy cycle. Turns out that nasty hacks like this are very straightforward:
- Run ILDASM, open the assembly and choose FileDump to extract the IL
-
Open the IL file in Visual Studio and edit the manifest – in this case, the version numbers of the referenced assemblies are easily found at the top of the file:
// Metadata version: v2.0.50727
.assembly extern mscorlib
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 2:0:0:0
}
.assembly extern x.y.z
{
.publickeytoken = (E4 21 0D 54 23 66 A2 B4 ) // . .D’f..
.ver 1:0:9:12
}
- Save the IL and reassemble it with ILASM – if the assembly was signed, re-sign it using ilasm /DLL x.y.z.il /KEY=x.y.z.snk
- Ensure the new assembly has the same name as the original, and it will operate as an exact replacement, only now its dependencies will be for the modified versions.
Simon McEnlly’s article on CodeProject describes going further with the manifest to change the visibility of methods, and generally modifying and rebuilding assemblies where you don’t have the source code. Note that if the assembly is signed and you don’t have the strong name key to re-sign it, the modified assembly will warn about being tampered with and won’t load.
by community-syndication | Mar 11, 2009 | BizTalk Community Blogs via Syndication
Hello,
Following a recent discussion I had with a US colleague about that, I would like to share with you below the few steps to follow to be able to run only some specific queries in the Console version of MBV – BTSDBCOLLECT.EXE.
As you maybe already know it :
– BtsDbCollect.exe will execute by default – w/o arguments – all important queries + most of the optional ones
– BtsDbCollect.exe /ALL will execute ALL queries
Now, if you want BtsDbCollect to run only a subset of queries, follow these steps :
1) Run the GUI version of MBV – MsgBoxViewer.exe – and select only the queries you want in the interface.
You can even unselect some important queries – previously named “Mandatory“ – : set the global option “Can Unselect some important queries” to “True” and then unselect the important queries you want via the checkboxes – see my mail below for more details on this new feature.
2) Close the tool
3) copy the resulting file “MBVSettings.xml” in the same folder than BtsDbCollect.exe
4) If needed, change this settings file the 3 properties specifying the correct path for the output files, ex:
<HTMLandXMLFolder>C:\JP\MyProjects\BtsDBCollect</HTMLandXMLFolder>
<HistoryLogFilePath>C:\JP\MyProjects\BtsDBCollect\MsgBoxViewer_History.log</HistoryLogFilePath>
<StatusLogFilePath>C:\JP\MyProjects\BtsDBCollect\MsgBoxViewer_Status.log</StatusLogFilePath>
6) And that’s it ! Each time you will execute BtsDbcollect.exe, it will use this Settings XML file and so will execute only the queries you chose before
Let me know if you have any questions
JP

by community-syndication | Mar 11, 2009 | BizTalk Community Blogs via Syndication
I’m in Arizona currently, specifically Phoenix, and last night I had the chance to speak at the AZ.NET User Group thanks to the wonderful folks at INETA. I promised the folks there that the slides would be posted last night, so I’m only about 8 hours late. The talk was an Introduction to Windows Communication Foundation, and the demos focused on showing a simple service being setup from nothing to running.
You can download the slides here, or the final code here.
by community-syndication | Mar 11, 2009 | BizTalk Community Blogs via Syndication
Today I’m releasing a small component that addresses an interesting problem I’ve never come across before – a null response from a web-service.
The web-service in question is provided by a third-party and unfortunately cannot be changed. Their WSDL defines the root response element with a maxOccurs=1 and a minOccurs=0, which allows for a null response […]
by community-syndication | Mar 11, 2009 | BizTalk Community Blogs via Syndication
If you’re in the Melb area – we’ve got a great offer coming your way
We want to show your technical teams how to get the most out of your existing SharePoint
(WSS or MOSS) implementations.
4 Days – Open to Microsoft Partners and Customers
This is an Official Microsoft Event.
Check out all the details here – https://www.microsoft.com.au/events/register/home.aspx?levent=344938&linvitation
Now is your chance to take advantage of these times and make the technology at your
finger tips work for you!
by community-syndication | Mar 11, 2009 | BizTalk Community Blogs via Syndication
This Friday I will be presenting a session about WCF extensibility at SDWest . I plan to go deep into a lot of the WCF internals aspects such as the channels, client-dispatcher runtime, metadata, hosting, instancing, etc. My goal is to give you as much…(read more)