Integration Experts – Dipesh Avlani

BizTalk Server, WCF, WF and Cloud computing…

Posts Tagged ‘biztalk’

BAM_AN packages not executing by SQL jobs

Posted by DipeshA on January 25, 2013

I recently hit an issue with the BAM_AN packages executed through a SQL job  failing with the following message.

Object reference not set to an instance of an object.

at…. UpdateDataSourceAndGetAnnotation(String cubeName, String asServerName, String asDatabaseName, String ssServername, String ssDatabaseName)  

The reason was the account under which my SQL jobs were running did not have access to the Analysis Services. Solution was to right click on the root node –> properties and add the account under the security tab and it started working.

Posted in BAM, General | Tagged: , , | Leave a Comment »

Welcome BizTalk 2013 beta

Posted by DipeshA on November 9, 2012

Microsoft recently released the beta release of BizTalk Server 2013. The first good news is that the initial name (BizTalk 2010 R2) has changed to BizTalk 2013, indicating it will be a major release, providing longer support to our customers!

The beta contains the following capabilities:
Integration with Windows Azure Service Bus – these are mainly out-of-the-box adapters for Windows Azure Service Bus (both messaging & relay)
Support for REST – seeing the web- & device-world move to a REST-oriented approach, it is a very good thing to see support for REST in BizTalk 2013. And this is not only for consuming, but also for exposing RESTful services!
SFTP adapter – this has been a request for years and it’s with great relief that a true SFTP adapter will be part of BizTalk 2013
ESB Toolkit – The ESB toolkit has been one of the most unclear parts of BizTalk since its inception. From guidance over toolkit and now ending up as part of the product. The configuration experience is much better, which is already good.
Dependency tracking – the administration console now shows the dependencies between artifacts
Other changes – enhanced SharePoint adapter, improvements in send ports…
Host Integration Server- that comes with the BizTalk license, also has some improvements in the following areas: DB2 integration, TI management, Support for MQ v7.5 & v7.1

Download Link:

 http://www.microsoft.com/en-us/download/details.aspx?id=35553

What first looked like a pure platform update (aligning with SQL Server 2012, Windows Server 2012, .NET 4.5) now has changed to a big upgrade with a lot of enhancements to the product.

Posted in Azure, BizTalk 2013, BizTalk Azure | Tagged: , , | Leave a Comment »

Determining Process IDs of multiple BizTalk Host Instances

Posted by DipeshA on September 21, 2012

For debugging, it is neccessary to attach the BizTalk host instance process to Visual Studio. However, if you have multple host instances, you cant tell which one is which.

I have found a PS script which gives you the process Ids of multiple host instances.
32Bit Hosts:
TASKLIST /FI “USERNAME ne NT AUTHORITYSYSTEM” /FI “IMAGENAME eq BTSNTSvc.exe” /SVC

64Bit Hosts:
TASKLIST /FI “USERNAME ne NT AUTHORITYSYSTEM” /FI “IMAGENAME eq BTSNTSvc64.exe” /SVC

Posted in BizTalk 2006/2009, BizTalk 2010, BizTalk 2010 R2 | Tagged: , | 3 Comments »

Creating a BizTalk 2010 R2 VM on Azure

Posted by DipeshA on August 31, 2012

If you have been wondering how to create a Biztalk VM on Azure, there is a very good article recently posted on The BizTalk Server Team Blog. Check it out here.

This post will walk you through the steps involved to create a virtual machine running BizTalk Server 2010 R2 (CTP) in the cloud.

Posted in BizTalk 2010 R2, BizTalk Azure | Tagged: , , | Leave a Comment »

BizTalk Server 2010 R2 (TAP) Available

Posted by DipeshA on August 15, 2012

The latest version of BizTalk is available (CTP). This Technology Adoption Program (TAP) is for BizTalk Server 2010 R2, the 8th BizTalk Server release from Microsoft.
BizTalk Server 2010 R2 delivers enhancements in the following feature categories:
  • Electronic Data Interchange
    • Updated standards support
    • IaaS offering
  • Messaging
    • Ordered delivery enhancements
    • HL7 standards update
  • Enhanced Visual Studio 2012, SQL Service 2012, Systems Center 2012 experience
  • Support for SQL Server 2012 High Availability
  • Integration with Windows Azure Service Bus and Workflow
  • Addition of REST adaptor for integrating with Restful endpoints
  • BizTalk Server Cloud IaaS offering for development and test scenarios

You can signup if you interested in being a part of this release.

Posted in BizTalk 2010 R2, General | Tagged: , , , | Leave a Comment »

SignalR & BizTalk

Posted by DipeshA on July 26, 2012

For those who have never heard about SignalR, it is an async .net library for building real-time web applications. This sounds so interesting that it can actually open another dimension for applications requiring realtime updates via BizTalk.

SignalR helps pushing data from the server to the client (not just browser clients). SignalR makes it dead easy and handles all the heavy lifting for you.

There is a very interesting article by Kent Weare which talks about SignalR and how it can be used with BizTalk.

http://kentweare.blogspot.com.au/2012/07/part-1-biztalk-signalr.html

Posted in BizTalk 2006/2009, General | Tagged: , | Leave a Comment »

Retry pattern and Suspend shape – the gotchas!

Posted by DipeshA on June 28, 2012

I have just come out a frustration moment with BizTalk where it was behaving differently when compared to a similar environment. I have a retry pattern in one of my orchestrations and a suspend shape within the catch block. See screenshot below:

One would hope that when the administrator resubmits the suspended message, it would continue from the point it left of (that is continue in the loop). However, what I saw was, the orchestration would go into the “active” state indefinately.  Also, when trying to terminate this active instance, the terminate job would show as pending and the service wouldnt terminate unless the host was restarted.

Further investigation revealed that the suspended orchestration has no related message (or context). See screenshot below.

To eliminate any false positives, I deployed the same app on our test environment and saw that there was a message linked to the suspended orchestration.

This is where I was stumped!

After hours of pondering, I thought of the famous MBV! I ran some analysis via the MBV and I found this in the report:

The value “Missing Restart Msg in the Spool table…” was the light at the end of the tunnel. I quickly ran the Terminator tool to clean the messagebox.

Once done, I ran the MBV analysis again and all critical warnings were gone in relation to “Control Messages”.

I then tried my test again and saw the messages were now linked to suspended orchestrations….

On resubmitting, I would see the message continue from where it left off…

Hope this helps someone having similar issues.

Posted in BizTalk 2006/2009, BizTalk 2010, General | Tagged: , , | Leave a Comment »

Tracing and Tracking ESB events

Posted by DipeshA on May 28, 2012

Many a times one may feel the need to trace ESB events when using itineraries. This will enable you to see how a message is getting processed by the ESB itinerary resolver and if something is going wrong there. The process of enabling this switch is quite simple and it involves the following:

Tracing

1) Open the BizTalk Configuration file, ie BTSNTSVC.exe.config

2) Add the following section (if one does not exist)  and save the file:

<system.diagnostics>

<sources>

<source name=”BizTalk ESB Toolkit 2.0″ />

</sources>

<switches>

<add name=”BizTalkESBToolkit20″ value=”4″ />

</switches>

<trace autoflush=”true” indentsize=”4″ >

<listeners >

<add name=”myListener”   type=”System.Diagnostics.EventLogTraceListener” initializeData=”BizTalk ESB Toolkit 2.0″ />

</listeners>

</trace>

</system.diagnostics>

Note: 
Add a Trace listener. If you don't already have a trace listener configured, add 1 of the many Trace listeners that come out of the box with the .Net framework: (Default, EventLog, TextWriter, Console, Text, etc.)
When using the EventLogTraceListener, the initializeData attribute must be set to the source of the Tracing Event. 
In this case it is the "BizTalk ESB Toolkit 2.0" source.

3) Restart the BizTalk Host Instance.

4) You will now see information and error events in the event viewer. Also if you have debugview running, you will see code traces there.

Tracking

After enabling tracing, you might still feel the need for tracking. That is, what went where? Every Itinerary Service has a property called ‘Tracking Enabled’ which you’ve got to set it to ‘True’ during the design phase. This sets the stage for tracking an Itinerary Service. Set this property for every single service in an Itinerary as this is false by default. Only those services whose ‘Tracking Enabled’ property is set to true will show up in the database.

Ok, tracking is set to true and my itinerary is deployed. Where do I see this tracing information?

When a service in an itinerary is set for tracking, it is recorded in the BAMPrimaryImport database in the table bam_ItineraryServiceActivity_Completed. the column itineraryBeginTime should be used to sort the results by datetime.

This table gives a snapshot view of the trajectory of the message and if each stage in its path was completed or pending.

Posted in BizTalk 2006/2009, ESB Toolkit, General | Tagged: , , , , | Leave a Comment »

WCF-SQL Adapter and permissions

Posted by DipeshA on April 16, 2012

If you are using a WCF SQL adapter in your solution, it is imperitive to set permissions on the stored procedures you call from within BizTalk. However, if you havent set permissions, the error message can be a little misleading.

The adapter failed to transmit message going to send port “WcfSendPort_SqlAdapterBinding_TypedProcedures_MyDB” with URL “mssql://MYSRVSQ01//MyDB?”. It will be retransmitted after the retry interval specified for this Send Port. Details:”Microsoft.ServiceModel.Channels.Common.MetadataException: Object [dbo].[uspInsertRecords] of type StoredProcedure does not exist

The above message can be quite confusing especially when the stored procedure does exist in your database. The above basically means the BT host account does not have execute permissions on the stored procedure being called. You need to restart the BT host instance after setting permissions.

Now, lets see what happens when I have a working solution (my permissions are set) and I revoke the execute permission on the same stored proc (remember, I havent restarted the BT host after revoking the permission). I now see this error message:

The adapter failed to transmit message going to send port “WcfSendPort_SqlAdapterBinding_TypedProcedures_MyDB” with URL “mssql://MYSRVSQ01//MyDB?”. It will be retransmitted after the retry interval specified for this Send Port. Details:”System.Data.SqlClient.SqlException: The EXECUTE permission was denied on the object ‘uspInsertRecords’, database ‘MyDB’, schema ‘dbo’.

This seems to be a much more clear message, isint it? However, if you restart the BT host and try processing your file again, you will see the first error.

Posted in BizTalk 2006/2009, BizTalk 2010 | Tagged: , , | 1 Comment »

Restoring BizTalk Databases (Disaster Recovery)

Posted by DipeshA on October 19, 2011

I found an interesting article on msdn which explains the backup and restore strategies for BizTalk databases. Setting this up is fairly straight forward but requires a fair knownledge of BizTalk Server and SQL Server 2008.

BizTalk Server makes available a SQL Server job (Backup BizTalk Server) that you can use to back up all of the databases in your BizTalk Server source system, except for some databases used by Business Activity Monitoring (BAM). The source system is the server or group of servers that contain live data. Because BAM databases have different backup and restore requirements, these databases are backed up and restored using other methods.

The following BizTalk databases are backed up by the sql job:

  • BAMPrimaryImport
  • BAMAlertsApplication
  • BAMAlertsNSMain
  • BizTalkDTADb
  • BizTalkMgmtDb
  • BizTalkMsgBoxDb
  • BizTalkRuleEngineDb
  • SSODB

Backing up the BizTalk Server databases and restoring them involves the following steps:

1. Configuring the Backup BizTalk Server job

This is the first step required to be performed before you can back up the BizTalk Server databases. You must first configure the Backup BizTalk Server job on the source system, which directs backups to be automatically written to a folder where they can then be used to restore the databases on the destination system. The destination system is the server or group of servers that will be used to restore the database backups produced by the source system. For more information about this step, see link.

2. Configuring the destination system for log shipping

You must also configure the destination system for log shipping, which provides standby server capabilities and reduces downtime in the event of a system failure. For more information about this step, see link.

The result of this step is three new SQL Server agent jobs as described under:

  • BTS Log Shipping Get Backup History
    The BizTalk Server Log Shipping Get Backup History job moves backup history records from the source to the destination. It is scheduled by default to run every minute. This job runs as frequently as possible in order to move history records from the source to the destination. In the event of a system failure to the source system, the server that you identified as the destination system will continue to process the history records that have already been imported.
  • BTS Server Log Shipping Restore Databases
    The BizTalk Server Log Shipping Restore Databases job restores backup files for the given databases for the source to the destination server. It is scheduled by default to run every minute. This job runs continuously without completing as long as there are backup files to restore. As an extra precaution, you can run this job an additional time to ensure that it is complete.
  • BTS Log Shipping Restore To Mark
    The BizTalk Server Log Shipping Restore To Mark job restores all of the databases to a mark in the last log backup. This ensures that all of the databases are in a transactionally consistent state. In addition, this job re-creates all of the SQL Server Agent jobs on the destination system that had been on the source system.

3. Restoring the databases

When a hardware failure occurs, you can restore your databases by using the backups and logs sent to your destination system. For more information about this step, see link.

After completing this step, your BizTalk Server should be restored and running. If you are using the Rules Engine, after restoring the databases, you must restart the Rule Engine Update Service on every server in the BizTalk Server group.

Posted in BizTalk 2006/2009, BizTalk 2010 | Tagged: , | Leave a Comment »

 
Follow

Get every new post delivered to your Inbox.