BizTalk server 2010 R2

8. December 2011

Finally, the cat is out of the bag.

Next release of BizTalk server, is just the usual platform upgrade with some minor additions.

Details : http://blogs.msdn.com/b/biztalk_server_team_blog/archive/2011/12/08/biztalk-server-2010-r2.aspx

 


Michael Høtoft  

BizTalk Server

Automatic testing of WCF Receive and send ports

28. November 2011

We are using the Powershell BizTalk Adapter when deploying our BizTalk solution.

And since we depend on a lot of external services and expose som WCF-services as well, we might as well do a quick test to see if the respond properly. Even a simple check to see if the URL responds with HTTP 200-OK will catch a lot of configuration and setup related errors.

The following script will iterate through all WCF receive and send port and try a simpe HTTP get. Perfect as the last step of any BizTalk deployment :-)


function GetStatusCodeFromURL
{
    param([string]$serviceName,[string]$url)

    try
    {
        Write-Host "$serviceName => " -NoNewline
       
        $req=[system.Net.HttpWebRequest]::Create($url);
        $res = $req.getresponse();
        $stat = $res.statuscode;
        $res.Close();
               
        if ($stat -eq "OK")
        {
            Write-Host "$stat" -ForegroundColor:Green
        }
        else
        {
            Write-Host "$stat" -ForegroundColor:Red
        }
       
    }
    catch [System.Exception]
    {
        $exceptionMessage = $url + ": " + $_.Exception.Message
        Write-Host $exceptionMessage -ForegroundColor:Red       
    }
   
}

Write-Host "Testing HTTP send- and receiveports" -ForegroundColor:Green

## All receive locations
foreach ($bizApplication in Get-ChildItem "BizTalk:\Applications" | Where-Object {$_.Status -ne "NotApplicable"})
{
    $bizApplicationName = $bizApplication.Name

    foreach ($bizReceiveLocation in Get-ChildItem "BizTalk:\Applications\$bizApplicationName\Receive Locations" | Where-Object {$_.Address.EndsWith(".svc")})
    {
        $desc = $bizApplicationName + ": " + $bizReceiveLocation.Name
        GetStatusCodeFromURL $desc "http://localhost" + $bizReceiveLocation.Address
    }

    foreach ($bizSendPort in Get-ChildItem "BizTalk:\Applications\$bizApplicationName\Send Ports" | Where-Object {$_.IsTwoWay -eq $true})
    {
        $desc = $bizApplicationName + ": " + $bizSendPort.Name
        GetStatusCodeFromURL $desc $bizSendPort.PrimaryTransportAddress
    }
   
}


Christian Staerk  

BizTalk Server, Sharepoint Server

List of BizTalk updates

24. November 2011

Sandro created a nice and neat list of BizTalk updates.

http://sandroaspbiztalkblog.wordpress.com/2011/11/22/biztalk-server-list-of-service-packs-and-cumulative-updates-available/


Thx Sandro ;)


Michael Høtoft  

BizTalk Server

Using powershell to query shared ressources

11. November 2011

While testing settings in a development enviroment, i needed a simple way to reflect and discover shared runtime ressources, with powershell of cause!

[System.Reflection.Assembly]::LoadWithPartialName(“Microsoft.Solutions.BTARN.Shared”)

$runtimeValue = [Microsoft.Solutions.BTARN.Shared.RuntimeGlobal]::DataDbConnectionString

Write-Host $runtimeValue

easy  ;)

 


Michael Høtoft  

Sharepoint Server

Mutiple BizTalk Server databases on the same shared sql instans is not a good idea

9. November 2011

Recently (with more and more development enviroments beeing virtualized) I have experienced a tendency to share the underlying servers on a SQL server cluster. In a shared instans.

This does work in some basic BizTalk scenarios. But I have recenltlyy experienced an issue where the unique name on BAM dts packagesand the underlying deployment could not be shared. Similar to this issue : http://social.msdn.microsoft.com/forums/en-US/biztalkediandas2/thread/0e5b3380-601c-44cb-b599-91b699d557b4. This might only be an issue for EDI solutions, but we expect to see it with the rosettanet adapter too. 

So as a general reminder of development better practice : ISOLATE DEVELOPMENT. Even when the operations guys(or girls) are trying to make there life easier with more shared ressources.


Michael Høtoft  

BizTalk Server

IIS 32 bit mode

9. November 2011

Tyring to install sharepoint services 3.0 for a BizTalk 2009 BAM feature, I ran into an error regarding IIS running in 32 bit emulation mode. To change this use the following command:

CScript "%SystemDrive%\InetPub\AdminScripts\adsutil.vbs" set w3svc/AppPools/Enable32bitAppOnWin64 0

And perform an iisreset.


Michael Høtoft  

BizTalk Server, Sharepoint Server

Troubleshooting BizTalk throttling

25. October 2011

We had some issues with slow message processing on a BizTalk server due to throttling and I was just about to write a long blog post about this, when I stumbled upon this blog-entry :-)

This is a great post detailing which performance counters to use and how to determine if throttling occurs and what the cause (state) is.

http://blogs.msdn.com/b/biztalkcpr/archive/2009/05/27/throttling.aspx


Christian Staerk  

BizTalk Server

BizTalk MsgBoxViewer tool

25. October 2011

This is a great tool to use when you are inspecting a BizTalk Server installation.

Simply run it, and it will generate a HTML-report with a detailed summary of the entire setup. Additionaly it will also check for a large number of problems including if nescessary hotfixes have been applied, sql-jobs not running, throttling etc. etc.

The latest version can be found here:

http://blogs.technet.com/b/jpierauc/


Christian Staerk  

BizTalk Server

Determine which ports are not bound to orchestrations

6. October 2011

We have multiple versions of our BizTalk applications running simultaneously and when constantly upgrading, you end up with a bunch of receive- and sendports that are no longer used by any orchestrations and should be cleaned up.

As a help to determine which ports that are candidates for deletion, you can use the SQL below.

Note: Any direct bound ports and ports that only rely on a filter will also show up here.

/******                 

******  Script to determine which send- and receiveports are not bound
******  to any orchestrations

******/

 

select 'Sendport: ' + nvcName as [ ]

from BizTalkMgmtDb..bts_sendport SP

left outer join BizTalkMgmtDb..bts_orchestration_port_binding OPB

            on SP.nID = OPB.nSendPortID

where OPB.nSendPortID is null

 

union

 

select 'ReceivePort: ' + nvcName

from BizTalkMgmtDb..bts_receiveport RP

left outer join BizTalkMgmtDb..bts_orchestration_port_binding OPB

            on RP.nID = OPB.nReceivePortID

where OPB.nReceivePortID is null

 

order by 1


Christian Staerk  

BizTalk Server

Using .Net SDK Tools in pre- and postbuild events in VS

6. October 2011

Sometimes you need to call gacutil or other SDK tools from build-events and in order to do this, they need to be added to the path.

Not exactly rocket science, but I always forget the macro and for future reference the following line will do the trick:

call "$(DevEnvDir)..\..\VC\vcvarsall.bat" x86


Christian Staerk  

Visual Studio 2010, .Net