BizTalk Scheduled Task Adapter is now officially available for BizTalk Server 2013 R2

After many requests and many postponements, due to my unavailability and free time to take these tasks, BizTalk Scheduled Task Adapter is finally officially available (version 5.0) and optimized for BizTalk Server 2013 R2!

You can download this new version of the adapter in BizTalk Scheduled Task Adapter CodePlex project page:

The BizTalk Scheduled Task Adapter is an in-process receive adapter that executes a prescribed task on a daily, weekly or monthly schedule. The adapter is configured entirely within BizTalk, all configurations are stored within the SSODB and can be exported and imported via binding files.
The schedule capabilities are similar to those available with the Windows Scheduled Task Service.

In this new version and despite additional custom tasks can be created and I’m planning on adding more, we still have the same four simple tasks present in previous editions:

  • XmlStringStreamProvider – generates a BizTalk message from a configured XML string
  • FileStreamProvider – generates a BizTalk message from the contents of a file
  • HttpDownload – generates a BizTalk message from data downloaded from a website
  • SQLStreamProvider – generates a BizTalk message from the contents of a SQL Query (similar to the old SQL adapter)

BizTalk Scheduled Task Adapter Release 5.0 for BizTalk Server 2013 R2

Requirements

The Scheduled Task Adapter v5.0 is optimized and designed to be used with BizTalk Server 2013 R2 (Compiled in .NET Framework 4.5).

V5.0 Changelog

  • Compiled in Visual Studio 2013 and .NET Framework 4.5.
  • Optimized for BizTalk Server 2013 R2.
  • Support for 32 and 64 bit Host Instances.
  • Bug fixes
    • Bug: Issues multiple messages for timespan with more than 60 seconds – Solved
BizTalk Server 2013 R2 BizTalk Scheduled Task Adapter v5.0 timespan
  • Bug: XmlStringStreamProvider task page properties not showing XML Text Editor Box – Solved
  • Bug: FileStreamProvider task page properties not showing Open File Dialog Box – Solved
  • Bug: SQLStreamProvider task page properties not showing Data Link properties Box to easily configure the SQL Connection string – Solved
  • Bug: Find task window showing all task components disabled – Solved
BizTalk Server 2013 R2 BizTalk Scheduled Task Adapter v5.0

Release History

This adapter is available since BizTalk Server 2004.

  • Release 5.0: release on February 18, 2015, by Sandro Pereira, this adapter was tested to work on BizTalk Server 2013 R2. Compiled in .NET Framework 4.5
  • Release 4.0: release on June 12, 2012, by Sandro Pereira, this adapter was tested to work on BizTalk Server 2010. Compiled in .NET Framework 4.0
  • Release 3.0: release on Aug 10, 2010, by Greg Forsythe, this adapter was tested to work on BizTalk Server 2009. Compiled in .NET Framework 2.0
  • Release 2.0: last release on Apr 20, 2008, by Greg Forsythe, this adapter works with BizTalk Server 2006 and BizTalk Server 2006 R2. Compiled in .NET Framework 2.0
  • Release 1.02: last release on Apr 20, 2008, by Greg Forsythe, this adapter works with BizTalk Server 2004, BizTalk Server 2006 and BizTalk Server 2006 R2. Compiled in .NET Framework 1.1

Download

BizTalk Scheduled Task Adapter for BizTalk Server 2016 available on GitHubBizTalk Scheduled Task Adapter for BizTalk Server available on GitHub
Microsoft | GitHub

Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.

25 thoughts on “BizTalk Scheduled Task Adapter is now officially available for BizTalk Server 2013 R2”

  1. Hi Sandro,

    I’m curious; how do you handle the synchronization when you have multiple host instances using the same adapter? I’ve thought about writing such an adapter myself, but found it difficult to guarantee that only one message is being generated at a time…

    Johannes

  2. I did a quick code check of the source code; I could not find any code that indicates such a feature. That would limit the use of the adapter to a single host instance on a well defined machine. With regards to resiliency such a feature would be really helpful, and is also the main reason we do not use such an Adapter in our Environment.

    1. Check Greg Forsythe explanation at: http://biztalkscheduledtask.codeplex.com/discussions/405013

      “You cannot use this adapter on multiple instances of the same Host, just like the FTP adapter. The reason being, a receive location is operational on all running host instances. So the receive location will fire once for every running host instance.
      If you have three servers all running instances of the same host with a schedule task receive location running in this host you will get 3 messages published at the same time.

      You can use the adapter on instances of different hosts. Here the receive location is tied to a particular host, i.e. receivelocation1 on host1 and receivelocation2 on host2

      The only way to overcome this behaviour is for a receive location to synchronise itself with all running instances. Given that the instances will be running on different servers they cannot communicate directly with each other. The easiest way would be for the receive locations to communicate via a database table. And only the first instance hitting this table would fire – not sure of the exact mechanism, maybe a trigger that errors if the scheduled time is the same.”

      Alternatively you can use BizTalk Scheduled Task Adapter on Failover cluster

      1. Indeed, the synchronization via database table was the main reason I didn’t start with the implementation, because there’s no “native” place to actually put this table. Creating a database with one table and one database row just for the purpose of synchronization was a path I did not want to follow. We do no produce a Trigger on a time Basis with an external Software (whose main purpose is running Batches at defined Points in time).

        Thanks anyway for explaining this to me.

        Johannes

  3. Hi Sandro

    I have v5 of the BizTalk scheduled task adapter installed to test and live servers. It is configured to run with the following class – triggered every 2 minutes

    ScheduledTaskAdapter.TaskComponents.FileStreamProvider, ScheduledTaskAdapter.TaskComponents, Version=4.0.0.0, Culture=neutral, PublicKeyToken=aa9f2dd0f13442dc

    It is pointing at a local xml file

    It works fine on the test environment but on the live environment the receive location shuts down after the first poll and the followed error is logged:

    The receive location “RcvScheduledTask_Loc” with URL “schedule://TimeSpan/GetEmail” is shutting down. Details:”Unable to cast object of type ‘ScheduledTaskAdapter.TaskComponents.FileStreamProvider’ to type ‘ScheduledTaskAdapter.TaskComponents.IScheduledTaskStreamProvider’.”.

    Any ideas where I’m going wrong please?

    Thanks,

    Rob.

    1. I have now found the cause of this problem – all my fault, again!

      Within the binding for receive location look for

      \\
      Here you should find a element. Problem was I’d forgotten to update the version. After the update the content should read:

      ScheduledTaskAdapter.TaskComponents.FileStreamProvider, ScheduledTaskAdapter.TaskComponents, Version=5.0.0.3, Culture=neutral, PublicKeyToken=aa9f2dd0f13442dc
      This problem was being masked on the Test server because v4 of the scheduled task adapter assemblies were still present in the GAC – along with the v5 assemblies

  4. Hi All,

    I have an requirement where I want to read multiple files from location and perform this schedule task activity based on input of files,…

    I am trying to change the GetStream Method so that it can return stream array to adapter .. but it is getting failed with below error.. at receive port

    task is shutting down. Details:”Unable to cast object of type ‘ScheduledTaskAdapter.TaskComponents.FileStreamProvider’ to type ‘ScheduledTaskAdapter.TaskComponents.IScheduledTaskStreamProvider’.”.

    I have changed method as below

    public Stream[] GetStream(object parameter)
    {
    string inputPath = Convert.ToString(parameter);
    string[] totalFiles = Directory.GetFiles(inputPath);
    Stream[] myStream = new Stream[totalFiles.Length];
    for (int i = 0; i < totalFiles.Length; i++)
    {
    myStream[i]= new FileStream(totalFiles[i], FileMode.Open, FileAccess.Read);
    }

    return myStream;

    }

    Thanks,
    Amit Patel

  5. I am running version 5.0 on a BT 2013 environment and have several tasks scheduled to run at certain times throughout the day. For several days they run at the exact scheduled time but after a few days, they run 10 minutes late and continue to do so until the host instance is restarted. Has anyone seen this issue?

      1. Sandro,

        Thanks for the quick response. I am using that version (5.0.4) and still having the problem.

        Any other advice?

        Thanks,
        Jeff

  6. Hi Sandro, Is it planned to release a “ServiceBus” task to publish a message in a ServiceBus Queue / Topics ?

  7. Hi Sandro, we are using your schedule adapter 5.0 and it has been working fine since 1 year, we use it to run the schedule at timespan of 30 mins and 1 hour, from last 2 weeks I have started getting the double trigger issue, and which is causing a real problem in our prod environment. can you please let us know the fix for it

  8. Hello,

    Im having trouble with the
    BizTalk ScheduledTask Adapter 6.0 for BizTalk 2016. The .dlls are in the GAC,
    and everything looks fine. But my receive Method gives me the following ERROR:

    “The receive location “Receive_Currency_loc” with URL “schedule://Daily/NorgesBanksDailyCurrencyFile”
    is shutting down. Details:”Unable to cast object of type
    ‘ScheduledTaskAdapter.TaskComponents.HttpDownload’ to type
    ‘ScheduledTaskAdapter.TaskComponents.IScheduledTaskStreamProvider’.”.

    I have searched, but cannot
    find anything about this ERROR. Do you have any suggestions?

    Brg

    Eva

  9. Hi Sandro, I’m migrating the BizTalk project from BizTalk server 2010 to 2013 R2 version . I installed Scheduled task adapter 5.0 version to support BizTalk 2013 R2 . When I try to add the Receive port and configure the schedule task, I’m receiving an error as “Invalid assembly qualified name” for the added reference compiled using Visual studio 2013 source code But the same works fine without any issue in BizTalk 2010 and schedule task adapter 4.0. Please let me know if any reason for the error as “Invalid assembly qualified name error ” . Thanks

  10. Hi Sandro, first of all, thank you so much for all your contributions to the Biztalk community, I personaly appreciatte it a lot.
    I would like to know if you have released a new version that supports WebApi calls scheduled from Receive Locations? If not, let me know if I can help you out to develop it (I pretty sure you don’t need help lol) thanks for all man.

    Greetings.

  11. Hi Sandro, we are using your schedule adapter 5.0.4 , we use it to run the schedule at timespan of 1 hour,we have started getting the double trigger issue, can you please let us know the fix for this issue.

  12. Facing issues when using “SQL stream provider” in BizTalk 2016. Installed the latest version of schedule adapter. Configured connection string as per the old “SQL” adapter mentioned in above screenshot.

    Error message : 1
    Keyword: not supported : ‘provider’
    Error message : 2
    format of the initialization string does not conform to specification starting at index 0

    connection string syntax used:
    Provider=;Integrated securtiy=;Persist Security info=;Initial Catalog =; Datasource=;

  13. is there any way to get 4.0 dll version.. i am not able to get it anywhere in the internet.

    i need the task scheduler 4.0 version…

Leave a Reply

Your email address will not be published. Required fields are marked *

turbo360

Back to Top