BizTalk 2009 Beta – Interview of Neal Walters and Yogi Veda
BizTalk 2009 Beta – Interview of Neal Walters and Yogi Veda
Yogi Veda and I took a look at BizTalk 2009 Beta installed on Windows 2008 and SQL 2008.
Properties in Visual Studio BizTalk Projects – BizTalk projects now are handled more like regular C# projects. This is where you specify the strong key file, the application name, etc…
Schemas and pipelines now have .cs code, as orchestrations have in BT2006:
When you look at map propertiies, you now see them in the properties window, instead of the pop-up box.
Windows 2008 and SQL 2008
Somewhat unrelated, the Windows 2008 Task Manger now allows you to start and stop services (such as BizTalk and SSO). But “Restart” not available.
SQL 2008 – when you right-click a table, you can no longer open the entire table, you can “Select Top 1000 rows” or “Edit the top 200 rows”:
Also check out our video discussion about BT2009 Beta:
BizTalk 2009 – Video Interview
This page shows the middle of two “butt-ugly” (and complex) BizTalk Maps.
BizTalk Mapper is a plug-in to Visual Studio that allows the BizTalk developer to map from one schema to another. ?It builds XSLT behind the scene, or the developer can do the entire map in XSLT or fragments of it in XSLT.
The developer places “Functoids” from the Toolbar onto the mapping grids (shown below), and connects them . ?See bottom of this blog for example functoids.
Some maps are super simple, but others are incredible complex. ?Documents such as EDI or Rosetta Net can contain as many as 1000 or 2000 elements in the schema that can be mapped. ?It can more complex when those elements are nested and looped (i.e. occur multiple times).
Here is an example of a simple map and part of the ToolBox with the functoids is shown on the left. ?This image also let’s you see the schema on the left (source) and the right (target). ?I couldn’t show the schema elements in the maps above because they were proprietary.
The categories of functoids are (each one has a different color code):
Here are some videos training that I did on BizTalk Maps (from “MrBizTalk” channel on YouTube.com).
Do you have some ugly maps. ?Send me your pictures to: firstname.lastname@example.org
and I’ll post them here!
Sorry, I don’t have the System.Exception right now, but it basically said that BizTalk did not receive a response from the Web Service, and the error was in System.Model…
System EventLog (not Application EventLog):
Event Type: Warning
Event Source: W3SVC
Event Category: None
Event ID: 1011
Time: 3:29:06 PM
A process serving application pool ‘DefaultAppPool’ suffered a fatal communication error with the World Wide Web Publishing Service. The process id was ‘19164’. The data field contains the error number.
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Googling on the code above 8007006D indicated that the application pool was crashing.
Eventually, we discovered that we needed to install .NET 3.5 SP1, and it resolved this problem.
This site provided some info, but turned out to be a waste of time for our specific scenario:
Blogs.MSDN.Com (David Wang)
What if you need to remove all the empty nodes in an XML document? It’ easy with this small subroutine. This might be useful to set fields to NULL when they have no value, especially when communicating between BizTalk and a WCF web service. You might often get serialization errors when, for example, a date/time field has an empty-string value. Better to pass no element to the web service (i.e. NULL) than a field with a bad value.
You can call the above code from a message assignment shape in an orchestration.
Just put the above code in a C# helper .DLL, make a reference to it from your orchestration, then you should be able to call it statically.
An SQL database field was defined as CHAR(1). We used LINQ to SQL to expose in a web service, which defined the field as a System.Nullable
Thus is a BizTalk map, we had to use the Character to ASCII functoid to conver the letter “C” to the number “67”, in order to get BizTalk to properly build XML that is passed to a web service. When passing the letter “C”, you get a deserialization error.
To see how to run the full server side trace and view the output, please see this article.
In my specific case, I was calling a WCF service that used LINQ to retrieve data from a database and return as a LIST of LINQ objects. When I ran 85 records, it would run, but when I ran 90 it would not, so I knew the issue was size related.
it turns out that the server side trace gave me the more specific error:
System.Runtime.Serialization.SerializationException: Maximum number of items that can be serialized or deserialized in an object graph is ‘65536’.
Note: this is after I already bumped up all the timeouts and the maxBufferPoolSize and the maxReceivedMessage size.
<dataContractSerializer maxItemsInObjectGraph=”500000″ />
<endpoint address=”http://my.address.com/Service” behaviorConfiguration=”NewBehavior”
binding=”basicHttpBinding” contract=”ITest” name=”foo” />
Sometimes, you might need to run a full WCF trace (on both the IIS web service, and the client).
The XML in this article will do that and discuss how to view it.
You can view the file in XML, but it can be a little ugly.
Microsoft has provided a free utility called SVCTraceViewer.exe.
To get this utility, unfortunatley you have to download the Windows developers toolkit.
After you install, it can be found in this directory:
“c:Program FilesMicrosoft SDKsWindowsv6.0ABinSvcTraceViewer.exe”
How to download SvcTraceViewer.exe
Unfortunately, you can not just download the utility standalone.
No, the only way (as far that I know of) to have it, is to install the .NET SDK. The latest version of this SDK is 6.1 and is called ‘Windows SDK for Windows Server 2008 and .NET Framework 3.5’.
This is a huge install. First you have to download a 1,29 GB .ISO on http://www.microsoft.com/downloads/details.aspx?FamilyID=e6e1c3df-a74f-4207-8586-711ebe331cdc&DisplayLang=en. After burning it to DVD or mounting it with a ISO mounting tool (like http://www.slysoft.com/en/virtual-clonedrive.html) or running UltraIso or something to turn it into regulary disk files, you can start the setup. To have SvcTraceViewer.exe you only need to select Developer Tools .NET Development Tools.
You can double click to run it, and it opens a Windows program.
You simply open the trace log file you captured above, and it formats it beautifully, with errors in red, and warnings in yellow. You can still see the full XML if you want (for example to copy it to clipboard, a MSDN Forum Post, or an email).