“Does the File/FTP adapter support acknowledgments?” The shortes answer to this question is YES it does
but it’s not the answer but the explanation is what you probably expect.
First of all we need to have explain the difference between the transport and application acknowledgments:
– transport acknowledgments – they tell us that the message was transferred from the XI adapter
(successfully or with errors)
– application acknowledgments – they tell us that the message was processed by the receiver application
(again either successfully or with errors)
File adapter can only work with the transport acknowledgments so it cannot/should not be used
with application acknowledgments. The file adapter’s acknowledgments can be requested
if you’re using a BPM (integration process) so you cannot request them if you have a simple flow (except if your use proxies – see comment below)
in which you’re not using any integration process.
If you want to request an acknowledgment from the file adapter you can set it in the send step:
If everything will be ok – the file adapter will be able to connect with the ftp server
and start sending the file you will receive the positive transport acknowledgment:
Since this is “playing weblog” we can also try setting the application acknowledgment request
but as you see you’ll get AckRequestNotSupported (so once more one way to try
if the adapter supports any kind of acknowledgment is to try is on your test system)
The second question (maybe even more important then the first one) could be:
how to implement our business process to work with the acknowledgments ?
If we just set the acknowledgment request in the send step of our BPM
and this send step will be our last in the BPM then in case of any error
(like the invalid password – when the password will expire or any other) the BPM will not stop.
It will continue receiving negative acknowledgments till the number of retries will be reached.
Then the process will continue to run and it will finish only when you will manually restart
the message successfully. Is this a good idea ? Imagine what would happen if the password
would expire and no one would have a look at the SXMB_MONI for a whole day.
You could have thousands of running BPMs with the same error and since we know that
it’s not a good idea to have to many running BPMs (in terms of performance) maybe we can try something else.
If you wrap your send step (then one that sends the file) with an deadline branch and exception branch
and set the deadline branch to execute an exception after the time needed for adapter framework
to execute all retries then your BPM will finish. It will finish with a negative acknowledgment
so you’ll be able to sort the wrong messages but the BPM will be finished successfully
(as the exception branch will be reached).
The piece of your BPM can look like that:
Than if you see any negative confirmations you can investigate the error
and later you can go to the Messaging System and restart your messages.
but no need to hurry as your BPMs are not running anymore so they are not blocking the XI’s performance
for more have a look question:
from the file adapter FAQ note: 821267