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
- 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
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 available on GitHub
Microsoft | GitHub
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
Good questions!
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.
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
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
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.
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
I have posted details of the problem to SO here: http://stackoverflow.com/questions/28968785/biztalk-scheduled-task-adapter-v5-fails-unable-to-cast-object
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
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?
Hi Jeffb831,
There is available a new version of the adapter: 5.0.4 version that fixed some problems regarding the time scheduler processes.
Sandro,
Thanks for the quick response. I am using that version (5.0.4) and still having the problem.
Any other advice?
Thanks,
Jeff
Can you send me by email these binding configurations for the receive locations so that I can try it locally
Hi Sandro, Is it planned to release a “ServiceBus” task to publish a message in a ServiceBus Queue / Topics ?
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
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
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
You have to put the custom assembly in the GAC
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.
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.
Hello, on https://archive.codeplex.com/?p=biztalkscheduledtask codeplex
is missing MSI file for ScheduledTaskAdapter v5.0
Is it available for download?
I will add it this week on the GitHub project page: https://github.com/sandroasp/BizTalk-Scheduled-Task-Adapter at the moment only available for BizTalk Server 2016
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=;
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…