*shock* an update!
Well, Owen has been bugging me to blog… so just to keep him quiet, here’s something random…
If you want to hook up on the XBox 360 then here’s my Gamercard!
Well, Owen has been bugging me to blog… so just to keep him quiet, here’s something random…
If you want to hook up on the XBox 360 then here’s my Gamercard!

Since Isaac is publishing post after post I thought it is time for me to also post something.
I developed a useful tool, called the Biztalk Host Manager (BTSHostManager), which we use in our development team to be able to quickly stop, start and especially restart BTS host instances.
Because all our developers found it a helpful tool we thought we would make it available for download.
Some features:
– It monitors background service state change of host instances (not by default, use options to enable) .
– It works for Biztalk 2004 and 2006.
– A seperate Biztalk 2006 version (compiled against 2.0 framework) will be available soon.
– This is not the final release version. We are still testing it, so please mail me any bugs you find.
Trying to automate the process of creating Send Handlers in BizTalk 2006? You may be trying to use the class MSBTS_SendHandler, as shown in the snippet of code below. However, the class to be used in BizTalk 2006 is now MSBTS_SendHandler2 as the old one does not support creation of multiple send handlers, a constraint in BizTalk 2004.
‘ Explicit declaration of variables
Option Explicit
‘ wbemChangeFlagEnum Setting
const UPDATE_ONLY = 1
const CREATE_ONLY = 2
‘ Retrieve the arguments passed
‘Dim objArgs: Set objArgs = WScript.Arguments
‘ Connects to local server WMI Provider BizTalk namespace
Dim objLocator : Set objLocator = Createobject (“wbemScripting.SWbemLocator”)
Dim objService : Set objService = objLocator.ConnectServer(“.”, “root/MicrosoftBizTalkServer”)
‘ Get WMI class MSBTS_ReceiveHandler
Dim objSendHandler : Set objSendHandler = objService.Get (“MSBTS_SendHandler“)
Dim objSH : Set objSH = objSendHandler.SpawnInstance_
objSH.AdapterName = “FILE”
objSH.HostName = “FILE_SendHost”
On Error Resume Next
‘ Create instance
objSH.Put_(CREATE_ONLY)
CheckWMIError
On Error Goto 0
Just a quick post to point out that if you are configuring a BizTalk 2006 server and your group name length is over a certain amount of characters (around about 50 I think), then don’t browse for the group, instead manually edit the group name within the text box. Otherwise you will find that the group name is truncated. This has been fixed for the RC build, so will only be an issue for the current beta 2 build.
Today I released the completed version of the BizTalk Performance Tester (BTSPerfTester). This application is intended to provide developers with an easily implemented and predictable method of determining the maximum sustainable throughput of their BizTalk solutions.
The documentation is included here on the site, and is included in MS-Word format in the download.
The first beta […]
The BizTalk load generation utility, originally released by Microsoft several months ago, was quickly removed from their downloads page for enhancement. The enhanced version is now available for download here.
This tool can work in tandem with the BizTalk Performance Tester to simulate real-world load in your testing enviroment and test your BizTalk solution performance.
You can also access this from my original blog,
http://vamsibiztalk.blogspot.com/2006/01/list-of-various-bam-questions.html
I have created the list of problems or questions we might encounter with BAM, some of them are my own experiences and some I have gathered from different sources and bundled up in one forum,
This article explains some of the questions posted on the BAM, thought would be useful for everyone whose working on BAM, any comments are welcome:
Error 1:
While configuring the databases used by Windows SharePoint Services, might receive the following error,
Line 1: Incorrect syntax near ‘COLLATE’. (Error code: 170).
Solution: Provide the SQL Server Access rights to the BTSService, to do this go to security, logins and add the BTSService (User) which is member of administrator, and add to the all the server roles.
Error 2:
templatepick.aspx – page not found
When you create a new top level site under a parent site in sharepoint, it brings up the page saying it has been created successfully, when we click on the sites URL to specifiy the template it should display the default template selection wizard, but instead we might receive a page not found error.
Solution: If you want to delete the following sub site under sites, click on Documents and Lists, under Sites, delete the above site and recreate it, still problem occurs delete the root sites and recreate.
Error 3:
The “WSSLib” adapter is suspending an outbound message going to destination URL:”http://localhost/sites/SomeException/Exceptions”. Details:”The request failed with HTTP status 404: Not Found.”.
Solution: This means that you haven’t put the WSSWebServices.dll in to the C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\ISAPI\BIN folder and WSSDocLibService.asmx in to the C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\ISAPI folder, hence it was not able to find these files, so the following exception occurred.
Note: Kindly check your internal path using the IIS manager,WebSites/_vti_bin, right click and view the properties, capture the local path located under virtual directory tab you should be able to find the folder path location.
Error 4:
When ever we click on ‘Upgrade a server or virtual server’ in SharePoint site, we might get the annoying help file,
“To upgrade your server to Microsoft Windows SharePoint Services, run Setupsts.exe. Running Setupsts.exe upgrades your server and the default virtual server. If you have additional virtual servers to upgrade, you can upgrade each virtual server individually by using the upgrade operation with the Stsadm.exe command-line tool.”
Solution: Prohibit the FrontPage from the IIS and remove it from add/remove program, then reset the IIS.
Try to open the site again and this time, You should see the following response, Virtual Server Successfully Extended, This would allow us to browse to the next level in the sites,
You can open the home page for your new Web site in your browser by using a link on the confirmation page. You can continue to extend other virtual servers or configure Self-Service Site Creation so users can create their own sites.
Error 5:
“1057 while trying to query service SPTimer.”
Solution:
Make sure you enter the user name as “domain\user name” or “machine name\user name;” otherwise, you get the following error: “System Error 1057 while trying to query service SPTimer,
Installing SharePoint:
Solution:
To Install Install Windows SharePoint Services without installing MSDE,
basically need to do the following,
C:\Program Files\STS2Setup_1033>setupsts.exe remotesql=yes
for more info, Kindly go to the following sites
http://weblogs.asp.net/jan/archive/2004/02/03/66544.aspx
http://www.microsoft.com/resources/documentation/wss/2/all/adminguide/en-us/stsc01.mspx
http://www.codeguru.com/Csharp/.NET/net_asp/miscellaneous/article.php/c8569/
Recently I found myself in a situation where I needed to evaluate a set of complex conditions that I could not use the Business Rules Engine for. The BizTalk mapper was able to achieve the conditionality by chaining a series of about 21 functoids together but this became very unmanageable especially since I was combining false statements to see if both were false, then returning a true to an “And” functoid (&) which evaluated another branch as true and passed a result to the node in the destination schema, you get the idea.
An easier way is to plug in XSLT. There are disadvantages to doing this, the main one being its maintainability and transparency but when faced with the daunting set of functoids described above, it looked a decent option.
The XSLT function that I used was the <xsl:choose> statement, inside the statement was a set of conditions which, if true, would return a value/values to the destination schema. In the last part of the statement was the <xsl:otherwise> condition which could set values if the conditions presented were not valid and you had a default you wanted to present in that event.
<xsl:variable name=”var:vAnnuity” select=”count(/*[local-name()=’InternalSupport’ and namespace-uri()=’http://internal_support’]/*[local-name()=’LoanPartItems’ and namespace-uri()=” and Method=’Annuity’])” />
<xsl:variable name=”var:vLinear” select=”count(/*[local-name()=’InternalSupport’ and namespace-uri()=’http://internal_support’]/*[local-name()=’LoanPartItems’ and namespace-uri()=” and Method=’Linear’])” />
<xsl:variable name=”var:vTotalCount” select=”count(/*[local-name()=’InternalSupport’ and namespace-uri()=’http://internal_support’]/*[local-name()=’PartItems’ and namespace-uri()=”])” />
<xsl:variable name=”var:vHasValidEndowment” select=”count(/*[local-name()=’InternalSupport’ and namespace-uri()=’http://internal_support’]/*[local-name()=’LoanPartItems’ and namespace-uri()=” and isValid =’true’])” />
<xsl:variable name=”var:vHasValidId” select=”count(/*[local-name()=’InternalSupport’ and namespace-uri()=’http://internal_support’]/*[local-name()=’Ready’ and HasValidId =’true’])” />
<xsl:element name=”LeningSoort”>
<xsl:choose>
<xsl:when test=”$var:vAnnuity = $var:vTotalCount”>
<xsl:value-of select=”1″ />
</xsl:when>
<xsl:when test=”$var:vLinear = $var:vTotalCount”>
<xsl:value-of select=”2″ />
</xsl:when>
<xsl:when test=”($var:vHasValidEndowment = $var:vTotalCount) and ($var:vHasValidId = $var:vTotalCount)”>
<xsl:value-of select=”3″ />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select=”4″ />
</xsl:otherwise>
</xsl:choose>
</xsl:element>
Of course each specific case requires different XSLT, but this should provide a framework of how to do this within a functoid.
To set up the XSLT:
Create XSLT similar to the one above which meets your needs
Drop a scripting functoid on your map
Connect the output parameter to the node you want to create
Note: do no include any input parameters, the XSLT is setup already to look them up
Open the scripting functoid’s, click the () inside “Configure Functoid Script”
Under “Script type” choose “Inline XSLT”
Paste your XSLT snippet in the text box