Tell us what you REALLY think about adapter development!
This is an open forum for gripes, complaints, suggestions, recommendations, and any other input you want to provide from your experience with Microsoft documentation regarding adapter development. Let it all hang out! I am compiling a list of items to work on for this new calendar year regarding custom adapter development and would love to hear what you REALLY think!
Comments
- Anonymous
January 03, 2006
The comment has been removed - Anonymous
January 03, 2006
thx Satch. That is good input! Do you know of many folks out there that are developing w/o Adapter Framework? Did you actually attempt it and hit a wall? That is a great idea and definitely to do on the horizon. But for now I need to focus on the adapter framework as per higher powers :-) - Anonymous
January 03, 2006
The comment has been removed - Anonymous
January 04, 2006
The comment has been removed - Anonymous
January 04, 2006
<snip>But for now I need to focus on the adapter framework as per higher powers</snip>
I took this to mean that you were constrained. - Anonymous
January 11, 2006
The comment has been removed - Anonymous
January 12, 2006
Thx Lee. This is great feedback and lines up with what I have been hearing from a lot of folks including MS personnel. I hear you on the need for a deeper understanding of the framework's interaction with the messaging engine. Additionally you used the base adapter (since you modeled after http sample adapter) I assume which is a layer of abstraction over the adapter framework. Its interaction with the framework also needs to be documented more. After RTM, my goal will be to do this using the transactional adapter sample as a basis.
Any more specific input (such as interfaces or method calls you struggled with) would be greatly appreciated.
Thank you
Mike - Anonymous
January 12, 2006
We develop custom adapters on a reagular basis. What i would really like is the ability to customise the adapter properties UI with my own property pages. The file adapter has a custom UI for its properties so it would be good to open this up to adapter vendors. - Anonymous
January 18, 2006
The comment has been removed - Anonymous
January 23, 2006
I worked on BTS 2004 and wrote few custom adapters (file adapter with backup / archive functions). Also I was adding lots of custom properties (context) to each of the message that is being picked up by the different receive ports as well send thru the send ports.
This was necessiated because the information coming from third part applications does not provide enough context properties regarding the message and we need to fill this based on the receive port it picks up.
In previous version of BTS 2000/2002 there was a concept of envelope which can be attached to both incoming and outgoing messages at the channel level where you can create a schema and attach it to the channel and port and set the values and everytime a message passes thru that channel this custom property will also be part of the context.
Is there anything like this available in 2006.
This will be a real help. - Anonymous
January 23, 2006
Few suggestions on future adapter funcations which will allow IT to embrace the product without much custom work on adapters.
1.Major function that needs to be added to atleast file adapter is the capability of taking a backup to a different location before submitting to the BizTalk.
2. In all adapaters there should be a way to define additional properties thru XML schema and also custom property page to configure the property values. The values could be constants or variables from the incoming message or port properties for example (%datetime[Format]%, %ReceiveportName% etc - Anonymous
January 24, 2006
Nathan
Thanks for your input. I have passed it along to the product team.
I will get back to you on your envelope question.
thx
Mike - Anonymous
January 24, 2006
The comment has been removed - Anonymous
February 06, 2006
The comment has been removed - Anonymous
February 06, 2006
Hi Patrick
Be encouraged that the version of the BaseAdapter and the Adapter Framework upon which it is based for Pathfinder will be a much better solution for developers.
I'm not fully understanding your issue. Once I do I will also pass your input onto the BizTalk developers who worked on that framework. Are you saying you want the adapter to still process messages while BizTalks is shutting down to allow the adapter to complete any tansfer operations it is in the middle of? Kind of like a way to block BizTalk's shutdown process until the adapter finishes and cleans up properly?
Also for the clarification of our blog readers, can you summarize in a few sentences what you did to fix this? Insert a few snipets of code if that works for you.
Thank you for your feedback Patrick - Anonymous
February 07, 2006
well what i did was having an xml document with let's say 10 records in it.
Let's say every record is a Call to a stored procedure, so each document will do 10 database calls in one transaction.
And lets also suppose i do it with request/response. So once the document is received by the orchestration, it tries to send it to a Req/Resp port. Then it must wait for the operation to complete to get the result.
Then the orchestration will insert those same records in another database again, So the orchestration does about 3 roundtrips to the Sql Server but to different databases. ( Just a test Scenario )
If I put that system under a heavy load by dropping 1000 Xml files in a directory, my laptop would be busy quite a while.. Let's say 2 minutes of 99% processor usage.
If i tried to stop BizTalk via the management console i would get strange com errors in the eventlog and the Stop command would timeout.
You can download the SpxII adapter from GotDotnet and inspect the code to see how i solved the problem. With this new way of using the threads of BizTalk Stopping the adapter under the same stress would be a smooth task. The stop will take about 8 seconds and then BizTalk is really Stopped. - Anonymous
February 07, 2006
thx Patrick! Sounds like a clever solution to a somewhat common problem. Has anyone else had this and if so, what did you do to solve it? - Anonymous
February 07, 2006
It took me three month's of testing (in spare time) to get it like this..... - Anonymous
February 15, 2006
adapter development is like all BizTalk development...IT BLOWS - Anonymous
February 19, 2006
Hi
Last project we've done in Biztalk 2004 and we've used the Sample File Adapter and customized it, but not the Adapter Framework. But, we know about it. Why there is no support for a SQL Adapter which can support Other DB's also. Atleast in Adapter Framework if you provide a sample to use the .NET Data Providers, it'll be better.
Also, if there is sample for FTP adapter, it'll be better. We can plug our own 3rd party FTP client and use it also. We had a requirement to download the file from a FTP Server in our last project. But, FTP does not support locking of file, because of which partial files are downloaded.
What we did is modifed the File Adapter and did it. But, it took huge memory (we're newbies in BTS). So, we dropped that idea. Because, to solve the issue, what we've done is, we've used a 3rd party FTP Client, and issues a rename command from the adapter to the remote file. If it fail, then, the file is still not uploaded by the other application in the ftp server and we'll try to download once we're able to rename it.
With Regards,
Sankar,B
Wipro Technologies,
Chennai, India - Anonymous
February 20, 2006
Great stuff, Sankar. So you want a sample using a .Net Data Provider and an FTP adapter. I will pass this directly to the product team. Thanks for your feeback!
Mike - Anonymous
February 22, 2006
The comment has been removed - Anonymous
February 27, 2006
Adapter development lacks one basic thing... Samples are good, of course, but what about tutorials? I'd found a couple of nice documents about how to develop my own adapter, but I find it really hard to start, as I don't know how to :( I mean, I open the BaseAdapter for example, I see dozens of files and I just don't get how everything fits together. Same case with the different samples, many files and very few comments make everything quite confusing.
I'd read Biztalk help, "Writing Effective BizTalk Server Adapters" & "Microsoft Biztalk 2004 Adapters: A Developer’s Guide" yet I find myself nowhere closer to being able to start developing.
Another problem is that I hadn't found any documentation about changes between developing adapters for 2004 and 2006, so I don't know if what I end up writing based on 2004 information around the net will work on my 2006 Beta2 server.
Thanks a lot!
Leandro - Anonymous
February 27, 2006
The comment has been removed - Anonymous
March 15, 2006
Hi Mike,
Funny enough I am looking for exactly the same type of tutorial as Leandro! How is your documenting coming along?
Thanks,
George - Anonymous
March 15, 2006
It is coming along well. I plan to get the rough draft done by next Friday to pass it to the product team for tech review. thx for asking. - Anonymous
March 15, 2006
Leandro
You can get some info on the changes in adapters from 2004 to 2006 in the latest RC .chm help file for Pathfinder. Go to http://blogs.msdn.com/luke/archive/2006/02/03/524534.aspx
and download it. I have been meaning to start a new post with this link so now I have a reason to do so.
Once you download and extract, open the BTS2006.CHM file. Go to Getting Started What's New in BizTalk Server 2006 New Features in BizTalk Server 2006. Scroll down to the section entitled Empowerment for Developers and you'll see a heading under there of Enhancements in existing adapters. Although it is not in detail it highlights the differences for you.
** Is there anyone out there that could see the use for a detailed paper on the differences between the adapters released from 04 to 06? - Anonymous
March 20, 2006
Thanks everyone! I'm now into developing some adapters for testing based on the Socket Adapter & Adapter Wizard by Scott Woodgate.
I've some doubts obviusly, so here I go (Should I be posting this here? I'm not quite sure, if not, I'm sorry!!) ^^
About dynamic port binding... let me see if I understood this... You have 3 binding types, Direct, Now & Later, where does dynamic port binding fall? What I wanna do is the following: My adapter sends an XML to a server, but I may have the connection data in the XML. So I want the following to occur: If my XML contains the connection data then the adapter should send my message using the connection data from the XML, else it should use the Default Connection Data (Host / Port) which should be configurable properties of the Send Port. Any comments on this?
I'd also like to read Schemas from the adapter, actually I have 2 XSD that will never change but I should be able to read them with the Adapter Schema Wizard and I'm clueless on this point.
Thanks a lot!
Leandro - Anonymous
June 28, 2006
I have created AS400 Data Queue Adapter. This adapter read messages from a DQ and submit them in BTS. It is working good but I still have a problem. When I want to stop the host, it takes a long time and some messages lost.
How can I stop the host without any problems??? - Anonymous
June 29, 2006
Is this DQ adapter a transactional adapter? If not, do the messages only get removed from the DQ when the adapter receives a successful BatchComplete callback (either Submitting or suspending)? If a non-transactional adapter deletes messages from the external store, then submits them to BizTalk there’s always a possibility of data loss. The way around this with non-transactional is to wait for the successful BatchComplete callback before removing the data. Consider the FILE adapter: it waits until a message has either been successfully submitted or suspended (successfully) before it will ever delete the file from the disk. Otherwise you could run into the case where you delete the file, try to submit but BizTalk is shutting down, then the adapter cannot submit, suspend, or “un-delete” the message/file so it would be dropped. - Anonymous
June 29, 2006
Is this DQ adapter a transactional adapter? If not, do the messages only get removed from the DQ when the adapter receives a successful BatchComplete callback (either Submitting or suspending)? If a non-transactional adapter deletes messages from the external store, then submits them to BizTalk there’s always a possibility of data loss. The way around this with non-transactional is to wait for the successful BatchComplete callback before removing the data. Consider the FILE adapter: it waits until a message has either been successfully submitted or suspended (successfully) before it will ever delete the file from the disk. Otherwise you could run into the case where you delete the file, try to submit but BizTalk is shutting down, then the adapter cannot submit, suspend, or “un-delete” the message/file so it would be dropped. - Anonymous
June 30, 2006
Sami,
I had the same problems in the beginning with my adapter. (SPXII see GotDotnet). But i fixed that.
Have a look at the code of the SPX II cause i have solved it there. I don't know how I did it, but it had something to do with code generated from the Adapter Wizard.
The code in the wizard causes the behaviour you mentioned. Hard to stop and loss of messages.
See the SPX II code and see how i fixed it. - Anonymous
August 28, 2006
Sorry to post this here. I've been trying to develop a client adapter. I've used the wizard for 2006, and I'm very thankful. On a Windows 32-bit platform (Win2k3), everything works fine. The protocol I've been trying to implement is sound and functional. However, when we tried porting it on a 64-bit server, it's like the adapter is not even there. I've looked at the registry file (.reg) to see if all the guids and paths are correct. I've double-checked this in the registry itself, and it checks out. There's not even an event being fired up to say whether a dll is not found or something. (The host instance to which the orchestration, and effectively the adapter, is bound was up and started.)
Surprisingly, when I tried putting the adapter on a 32-bit host instance, it works! (But we really need to have it running on 64-bit.)
Has there been any other reported issue of any custom adapter not working on a 64-bit environment?
Thanks! - Anonymous
October 30, 2006
I worked on a custom adapter that communicate with a proprietary tcp/ip server and gets the message to BizTalk. I found the documentation is not very easy to follow and it's a challenging exercise since examples are scarce. I ran into the same problem that it takes a long time to terminate the host instance which hosts the adapter. Any comments or thoughts to fix this behavior?