01-14-06 02:59 AM
Greetings all,
I now have a question about the behavior of the FTP receive adapter for
BizTalk 2004.
Since I had to switch to using this from the File receive adapter based
on issues we were having with that adapter, I have noticed that the FTP
adapter is doing odd things.
Summary:
If I have a file in my folder that the FTP receive location polls
the folder, according to the log, the FTP adapter:
1) Connects to the FTP Server
2) Gets the file
3) Quits.
The file is not deleted.
If I look in HAT, there are errors about the document not validating.
Ok, no problem, I have no issues with this, I am expecting this. I
submitted a garbage file to a pipeline with a flat file disassembler.
The file made it to BizTalk and that's all I really care about.
The question then is, why was the file not deleted from the FTP
folder I am receiving from? It seems to me that if the file was
submitted to the BizTalk MsgBox Database, then it should have been
deleted from the FTP folder I am pulling it from. As it is, the file is
not deleted, and the FTP adapter, on its next polling interval, will
reget and resubmit the file to BizTalk again. This leads to another
error in HAT.
The moment I change the pipeline on the FTP receive location to use
the passthru pipeline. On it's next polling interval, the FTP adapter
pick it up, submits it to BizTalk, and deletes the file.
The behavior where the file doesn't get deleted from the Receive
folder occurs under the following conditions:
1) If you have defined a 'temporary folder' on the FTP receive location
properties OR the FTP receive adapter properties (set via BizTalk Admin
Wizard)
2) An error occurs in the receiving pipeline.
My configuration is as follows:
1) I have defined a Receive port called "_FTP Receive Port"
2) In the "_FTP Receive Port", I have added a receive location "FTP
Receive Location", with the following settings:
a) connects to my local FTP Server
b) checks the folder FTPReceive for *.*
c) uses the temporary folder : C:\BizTalkWorkFolder
d) is configured to use the PassThru pipeline.
e) poll the folder every 10 seconds.
3) I have defined a send port "_FTP Send Port" which has a filtering
condition on "BTS.ReceivePortName" = "_FTP Receive Port". This just
writes whatever it receives to a folder on the local disk using the
passthru send pipeline.
4) Enlisted and started the above items.
When I dump the file onto my FTP Server in the receive folder, in the
case above, the file gets to the output location, no problems.
Now, if I unenlist my send port (which will cause an error cause no
matching subscriptions are found) and put the file in the receive
location. I get the expected error in HAT, however, the file is not
deleted from the FTP Location. As such, every 10 seconds, I get another
error about the subscription not found.
I can re-enlist my send port and change the receive pileline to my
flatfile disassembler pipeline, and resubmit the file. In this case, I
get the error in HAT, but the file isn't deleted.
From my understanding of the File receive adapter, it basically reads the
file, submits it to BizTalk and deletes it once it is successfully
written to the MsgBox Database, regardless of the outcome of the receive
pipeline operation. The FTP Adapter doesn't seem to do this, if the
receive pipeline can't process the file it is sent (it, generates an
error) it when the Temporary Folder is set. It doesn't delete the file
from the FTP Receive folder.
So, when people are talking about the 'guaranteed delivery' feature of
the FTP adapter, just what is meant by 'guaranteed delivery'?
Thoughts, comments?
Thanks in advance.
Craig..
[ Post a follow-up to this message ]
|